Pessoal, boa tarde!
Tenho esse campo(Produto) no formulário, ao qual pego os valores em um dataset Customizado:
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>
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);
}
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!