Possuo uma tela com um relacionamento Pai + Filho + Neto onde no ultimo submodelo (neto) preciso criar uma validação de forma que não seja incluído o mesmo código caso ele já exista em algum outro filho.
Vou deixar a imagem da tela e explicar em cima dela:
A entidade clientes seria o modelo Pai, equipamentos seria o Filho e Seriais, o Neto.
Um Cliente pode possuir diversos Equipamentos, e estes, por sua vez, vários Seriais.
A questão é que um segundo Cliente, pode possuir os mesmos equipamentos do primeiro cliente entretanto com diferentes seriais.
Dessa forma a minha necessidade é: Preciso validar em tempo de execução sempre que manipulado um serial, se o mesmo já não esta vinculado a um outro cliente e equipamento.
Pessoal, a imagem ficou cortada no corpo da pergunta.. pra ver completa, cliquem no link no final ou abram ela sozinha numa nova guia
— Marcos Felipe Rezende Xavier 22 de Oct de 2020Bom dia Marcos, o método FWFORMGRIDMODEL():SetUniqueLine() não atenderia esta demanda? https://tdn.totvs.com/display/framework/FWFormGridModel#SetUniqueLine Teria que ver se o serial digitado não está presente em digitações anteriores, daí talvez seria necessário criar na validação do próprio campo mesmo, varrer nos itens dos models e fazer um select no banco, para validar tanto digitações anteriores quanto as que estão em memória. Para adicionar validação no campo: https://tdn.totvs.com/display/framework/FWFormModelStruct#SetProperty - MODEL_FIELD_VALID
— Leandro Francisco Silveira 23 de Oct de 2020Então Leandro, o SetUniqueLine olha apenas o modelo filtrado, quando passo pra segunda linha do filho, nos netos dele, não são validados os netos do primeiro filho. Quanto ao valid, fizemos assim mesmo.. mas foi muito muito trabalhoso. Queria saber se existia algum método ou alguma forma de varrer os netos sem filtro pelo pai... pelo visto a única forma eh na mão mesmo.
— Marcos Felipe Rezende Xavier 23 de Oct de 2020