Validando se um campo é obrigatório com a função CpoObrigat – Maratona AdvPL e TL++ 097

Nesse vídeo demonstraremos em como verificar se um campo do dicionário (na SX3) é obrigatório utilizando a função CpoObrigat.

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe097
Verifica se um campo é obrigatório no Protheus
@type Function
@author Atilio
@since 11/12/2022
@obs 
    Função CpoObrigat
    Parâmetros
        + Nome do campo
    Retorno
        + .T. se o campo for obrigatório ou .F. se não

    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe097()
    Local aArea     := FWGetArea()
    Local cCampo    := "B1_DESC"

    //Testa se o campo é obrigatório
    If CpoObrigat(cCampo)
        FWAlertSuccess("O campo é obrigatório", "Teste CpoObrigat")
    Else
        FWAlertError("O campo não é obrigatório", "Teste CpoObrigat")
    EndIf

    FWRestArea(aArea)
Return

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

4 Responses

  1. Elias Felipe disse:

    Boa noite Daniel a função acima nao funcionou muito bem em um web-Service Rest
    mas função X3Obrigat(cCampo) para mim funcionou perfeitamente!

  2. Luan Menezes disse:

    Para funcionar o campo que estar como USADO e OBRIGATÓRIO.

    • Bom dia Luan, tudo joia?

      Opa, obrigado pela contribuição.

      Ah sim, faz realmente sentido. Pois se o campo não tiver marcado como usado, ele nem vai aparecer na tela, se ele não aparecer na tela, por consequência não tem como ser obrigatório.

      Obrigado mais uma vez pelo adendo.

      Tenha um ótimo e abençoado fim de semana.

      Um forte abraço.

Deixe uma resposta

Terminal de Informação