Criei uma tela com 3 relacionamentos, posto de trabalho, recurso e escala. Preciso fazer a validação se a escala digitada do recurso específico não esta conflitando (repetindo) em outros postos de trabalho.
Para isso no pós-linha do grid neto (escala), estou varrendo todos os Grids e efetuando a validação, até ai tudo certo. O problema esta no momento de reposicionar os Grids nas linhas atuais, tentei utilizar o aSaveLines := FWSaveRows( ) e FWRestRows(aSaveLines) não funcionou, tentei utilizar o GoLine e Refresh em cada Grid porem também não funcionou.
O que eu percebi no debug é que o momento que executa o refresh a rotina fica em loop até derrubar o serviço, aparentemente o refresh da view executa o pós-linha, se eu executo os comandos (abaixo**) de goLine e refresh em tempo de execução na barra de comandos do Protheus e devolvo a transação a tela posiciona corretamente.
** oGridCNB:GoLine( nLinAtuCNB ) oView:Refresh('CNB_VIEW')
** oGridZ11:GoLine( nLinAtuZ11 ) oView:Refresh('Z11_VIEW')
** oGridZ12:GoLine( nLinAtuZ12 ) oView:Refresh('Z12_VIEW')
Será que o refresh não pode ser executado no pós-linha? Já olhei todos os outros tópicos relacionado a este assunto e nenhum resolveu meu problema. Segue em anexo meu fonte.
Bom dia Claudio, não seria possível fazer essa validação com o método SetUniqueLine do FWFormGridModel?
— Daniel Mendes 20 de Mar de 2020Acredito que não pois o Grid de escala tem data/hora de entrada e saída, a data e hora exatamente igual eu valido pelo SetUniqueLine({"Z12_DATAE","Z12_HORAE","Z12_DATAS","Z12_HORAS"}).
— Claudio Bozzi 20 de Mar de 2020