Boa tarde, alguem poderia me ajudar. estou fazendo uma consulta para saber se foi alterado algum produto . Na consulta do while , ele nao funciona da forma que eu gostaria, gostaria que ele fizesse a consulta,deu true, ele voltasse para a rotina, mas ele fica só repetindo o msg e não volta para a rotina. Criei 2 campos e estou usando esse codigo.
INCLUDE "protheus.ch"
User Function A010TOK() Local aArea := GetArea() Local aAreaB1 := SB1->(GetArea()) Local lRet := .T.
//Se for inclusão //If INCLUI // MsgInfo("Estou em uma inclusão!", "Atenção") //EndIf
//Se for alteração If ALTERA
DO WHILE B1_CUSTOM = '1' .AND. M->B1_VALID = 01 MSGAlert("Produto Alterado !!") MsgAlert("Favor preencher o campo 'Alterações' na aba 'Outros'!") B1_VALID++ RestArea(aAreaB1) RestArea(aArea)
Return lRet
ElseIf M->B1_VALID = 02 MsgInfo("Favor preencher o campo 'Alterações' na aba 'Outros'!","Este Produto sofreu alterações !") //DO WHILE B1_CUSTOM = '1' MsgAlert("Favor preencher o campo 'Alterações' na aba 'Outros'!")
lRet := MSGRETRYCANCEL("Deseja mesmo alterar este produto ?","Atenção") //BREAK //Enddo B1_VALID++ RestArea(aAreaB1) RestArea(aArea) //Endif Return lRet
ElseIf M->B1_VALID >= 03 MsgAlert("Favor preencher o campo 'Alterações' na aba 'Outros'!","Este Produto sofreu alterações !") //WHILE B1_CUSTOM = '1' MsgAlert("Favor preencher o campo 'Alterações' na aba 'Outros'!") // Enddo lRet := MSGRETRYCANCEL("Para Mudanças neste campo, Por Favor preencha o campo alterações !!") //B1_VALID++ //RestArea(aAreaB1) //RestArea(aArea) //Endif //Return lRet
ElseIf M->B1_CUSTOM != '' MsgAlert("o campo alterações ta vazio ") lRet := MsgYesNo("nao deixa o custom vazio ") //RestArea(aAreaB1) //RestArea(aArea) //Endif //Return lRet
//Endif MsgInfo("Estou em uma alteração!", "Atenção") EndIf
//Se for cópia //If lCopia // MsgInfo("Estou em uma cópia!", "Atenção") //EndIf ENDDO
lRet := MsgYesNo("Deseja continuar", "Atenção")
RestArea(aAreaB1) RestArea(aArea) Return lRet