Caros(as),
Alguem tem um exemplo de como checar duplicidade de itens na tabela pai x filho e travar com o validateform. Por exemplo selecionei dois itens com o codigo 01.001 ficando assim:
01.001 - Produto 1
01.001 - Produto 1
No validate form ele travar com a mensagem favor nao selecionar itens repeteidos.
Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.
Fluig Man, segue código que pode verificar a duplicidade do campo no pai x filho:
function validateForm(form){
var map = form.getCardData();
var it = map.keySet().iterator();
var campoParaValidarPaiFilho = [];
while (it.hasNext()) {
var campo = it.next();
var valorCampo = "" + form.getValue(campo);
//Colocar aqui o nome do campo do pai x filho que será verificado a duplicidade.
//Obs.: depois do nome do campo, precisa usar os três underline da definição de
//campos pai x filho
if (campo.indexOf('column1_1___') > -1) {
if(campoParaValidarPaiFilho.indexOf(valorCampo) > -1){
throw "Favor não selecionar itens repetidos";
}
campoParaValidarPaiFilho.push(valorCampo);
}
}
}
Pode ser no beforesend tambem. o ideal seria no validateform mas se e melhor no before podeser também.
Fluig Man, estou editando a resposta com o código que precisa, via validateForm. Qualquer dúvida é só falar! Lembrando que se a resposta lhe for útil, marque-a como correta, pode ser a dúvida de outros usuários.
Alef, não dar pra usar o getChildrenFromTable porque ele so percorre a tabela filha, o problema do getCarddata e pq e menos performatico ele percorre toda ficha.
Eu estava fazendo assim : var children = form.getChildrenFromTable(“tblMateriais”);
var jsonString = new org.json.JSONObject(children).toString();
filtrando o campo com valor duplicado. Mas enfim a sua solução funciona também. Vou colocar como solucionado.