Boa tarde senhores, Preciso fazer esse procedimento: Quando um produto é adicionado no pedido de venda, faz uma verificação no campo B1_RASTRO do produto, Se o B1_RASTRO = 'L', Deixa o campo obrigatório C6_LOTECTL para a digitação.
Pesquisando Vi que uma forma de fazer isso é, fazendo a seguinte função dentro do X3_WHEN no campo C6_LOTECTL.
Iif(aCols[n,aScan(aHeader,{|x| AllTrim(x[2]) == "B1_RASTRO"})]$'L',.f.,.t.)
estou fazendo um prw e estou chamando ele dentro o campo c6_produto.
COMO POSSO PROSSEGUIR?
Consegui fazer funcionar , mas quando eu coloco o codigo do produto ele já avisa, não deixa ir para o outro campo
Você pode utilizar o ponto de entrada M410LIOK que é acionado na validação de linha e fazer sua validação de obrigatoriedade.
Outra coisa... para buscar valor na grid você pode utilizar a função GDFieldGet, sendo que B1_RASTRO vai ter que fazer um posicione
User Function M410LIOK()
If INCLUI .OR. ALTERA
If POSICIONE("SB1",1,xFilial("SB1")+GDFIELDGET("C6_PRODUTO"),"B1_RASTRO")=="L" .AND. Empty(GDFIELDGET("C6_LOTECTL"))
//Msg aqui
Return .F.
EndIf
EndIf
Return .T.