Gostaria de saber se tem como fazer um codigo em advpl em que, ao usuario colocar o pedido e o item, caso o pedido tenha residuos, aparecer uma mensagem na tela alertando que tem, e se tiver, alterar esse campo para vazio.
Gostaria de saber se tem como fazer um codigo em advpl em que, ao usuario colocar o pedido e o item, caso o pedido tenha residuos, aparecer uma mensagem na tela alertando que tem, e se tiver, alterar esse campo para vazio.
Fala, garoto!
Seguinte, pode usar o recurso de gatilhos no campo que você quer executar fazendo uma chamada ExecBlock("U_SUAFUNCAO",.f.,.f.). Nessa função você constrói a sua regra de negócio. Outra opção, utilizar um ponto de entrada na validação da linha (LINOK da vida) ou na validação completa (TUDOOK da vida). Da mesma forma, aqui você cria sua regra de negócio.
Espero ter ajudado!
Aqui esta um exemplo de algo parecido, espero que ajude.
#INCLUDE "TOTVS.ch"
#INCLUDE "rwmake.ch"
#INCLUDE "TBICONN.ch"
#INCLUDE "FWMVCDEF.CH"
User Function MT120OK()
Local nPosPrd := aScan(aHeader,{|x| AllTrim(x[2]) == 'C7_PRODUTO'}) //Seleciona o produto para a verificação ser por linha
Local nPosCC := aScan(aHeader,{|x| AllTrim(x[2]) == 'C7_CC'}) //campos a serem verificados
Local nPosOP := aScan(aHeader,{|x| AllTrim(x[2]) == 'C7_OP'})
Local lValido := .T.
Local nX := 0
For nX :=1 To Len( aCols )
If ( !aCols[nx][Len(aCols[nX])] .And. !Empty(aCols[nX][nPosPrd]) ) //verifica se a linha nao está vazia
If ( Empty(aCols[nX][nPosCC]) .And. Empty(aCols[nX][nPosOP]) ) //verifica se os campos estão vazios
lValido := .F.
MsgStop("Campos de OP e Centro de custo estão vazios!") //alerta para o usuario
Exit
EndIf
EndIf
Next nX
Return(lValido)