Retorno em select

Pessoal, boa tarde!

Tenho esse campo(Produto) no formulário, ao qual pego os valores em um dataset Customizado: Screenshot_5.jpg

Porém ele não abre com os valores contidos no dataset, quando eu coloco um alert nele sempre me retorna o primeiro valor que está no dataset

Esse dataset possui duas constraints, como colocaria indicaria o filtro nesse select no html?


<select class="filtro form-control" onclick="retProd();" name="codProd" id="codProd" dataset="dsConsultaProdSC5" datasetkey="PRODUTO" datasetvalue="PRODUTO"></select>

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

@Quemuel,

Não é possível adicionar filtro utilizando o .

Se você utilizar o Zoom, conseguirá adicionar filtro. (http://tdn.totvs.com/pages/releaseview.action?pageId=75270483#DesenvolvimentodeFormul%C3%A1rios-Zoom)

Caso queira utilizar o com filtro, você terá que carregar dinamicamente utilizando o javascript.

Segue abaixo função no javascript e em anexo o dataset: (só não entendi a função que você chama displaymodal)


function retProd() {

    var linha     = "";//$("#A1_CGC").val().replace(/[^a-z0-9\s]/gi, '');
    var categoria = "2";//$("#A1_VEND").val();

    var c1 = DatasetFactory.createConstraint("linha",linha, linha, ConstraintType.MUST);
    var c2 = DatasetFactory.createConstraint("categoria",categoria, categoria, ConstraintType.MUST);
    //displaymodal(c1+"ZZ"+c2);
    var constraints   = new Array(c1,c2);
    var returnFields = new Array("PRODUTO", "UM");

    var produtos = DatasetFactory.getDataset("dsConsultaProdSC5", returnFields, constraints, null);
    /*
    var produto     = produtos.values[0]["PRODUTO"];
    var um         = produtos.values[0]["UM"];

    displaymodal(produto+"-"+um);
    */
    /**
    var index = combo.id.substring(combo.id.indexOf('___') + 3);
    $('#um___' + index).val(um);*/
    //$('#DescProd___' + index).val(descricaoProduto);
    //displaymodal(produto+"-"+um);

    var html = '<option value=""> - </option>';
    $.map(produtos.values, function(value, index) {
        html += '<option value="' + value.PRODUTO + '">' + value.PRODUTO + '</option>';
    });

    $('#DescProd___' + index).html(html);
}

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Obrigado @Gabriel, irei tentar!

@Gabriel, adicionei dois anexos. Do meu dataset e da função no select. Dessa maneira pode dar certo?

Atualizei a minha resposta

@Gabriel, funcionou 100%. o Displaymodal só utilizava como um log pra mim, agora irei retirar. Só mais uma pergunta coloquei valores fixos nas váriaveis linha e categoria, como faço pra pegar o valor de um campo em tabela paixfilho?

Em que momento você chama essa função?

@Gabriel, eu adicionei uma nova imagem. Chamo a funçao quando imputo o valor no campo Linha e no campo Categoria onchange="retProd();"

No campo você chama assim:

onchange="retProd(this);"

Segue exemplo abaixo uma parte da função:


function retProd(campo) {
	var id  = $(campo).attr("id").split("___");
  var seq = id[1]; // aqui você pega a referencia do Pai e Filho
  
  // Dai ficaria assim
	var html = '<option value=""> - </option>';
	$.map(produtos.values, function(value, index) {
		html += '<option value="' + value.PRODUTO + '">' + value.PRODUTO + '</option>';
	});
	
	$('#DescProd___' + seq).html(html);
  
}

@Gabriel, olhamos no log aqui do Protheus a primeira vez sempre está pegando esses dois campos vazio, depois pega os valores, porém quando me retorna os valores retorna como se as opções escolhidas fossem vazias!

Enviei meu formulário e custom.js em anexo! construir as contraints atraves do campos ´categoria´ e ´linha´ da table paixfilho

Gabriel adicionamos alguns log’s aqui e verificamos que mesmo com os valores fixos var linha = ""; var categoria = "2"; no custom no dataset ele está sempre recebendo vazio nas contraints

Acho que é porque as colunas no Dataset estão com letras maiúsculas, a constraint tem que passar em maiúsculo também.

coloquei tudo maiúsculo e minúsculo, tmb não deu!