Olá pessoal.
Tenho uma tela de cadastro em MVC, porém preciso validar ao gravar a tela se os itens não estão repetidos nas linhas.
Alguém tem algum exemplo de como comparar entre linhas na tela?
É uma tela espécie lista de preço, onde tenho produto e lote máximo, posso ter o produto várias vezes mas não com o lote igual.
Boa tarde!
Para isso, faça o uso do método SetUniqueLine na construção do seu grid, informando quais campos devem ser avaliados para que não sejam repetidos.
Documentação: https://tdn.totvs.com/display/framework/FWFormGridModel
Exemplo:
oModel:AddFields('ModelMaster',,oStruct)
oModel:SetPrimaryKey({'ZTO_FILIAL','ZTO_CODIGO'})
oModel:GetModel('ModelMaster'):SetDescription('Cadastro Principal')
oModel:AddGrid('ModelGrid','ModelMaster',oStruGrid,,/*bPreGrid*/,/*bPreGrid*/,/*bProsGrid*/)
oModel:SetRelation('ModelGrid',{ {'ZRO_FILIAL','ZTO_FILIAL'},{'ZRO_CODIGO','ZTO_CODIGO'} }, ZRO->(IndexKey(1)) )
oModel:GetModel('ModelGrid'):SetUniqueLine( {'ZRO_COMPET'} ) // este campo não pode se repetir
oModel:GetModel('ModelGrid'):SetDescription('Verbas por Competência')
oModel:GetModel('ModelGrid'):SetOptional(.F.)
Valeu! Isso foi a solução do meu problema.