Função: Obrigatório - Campo obrigatório

Avalia se foram digitados todos os campos obrigatórios de uma Enchoice.

Obrigatório - Campo obrigatório ( < aGets>, < aTela>, [ uPar3], [ lShow] ) --> lRet

NomeTipoDescriçãoObrigatórioReferência
aGetsVetorVariavel PRIVATE tratada pelo objeto Enchoice(), previamente definida no fonte. X
aTelaVetorVariavel PRIVATE tratada pelo objeto Enchoice(), previamente definida no fonte. X
uPar3QualquerNão utilizado.
lShowLógicoDetermina se exibirá o help caso algum campo obrigatório não tenha sido preenchido.Default é .T.
    lRet(logico)
  • Indica se todos os campos obrigatórios foram preenchidos.
#include "protheus.ch"User Function TstObrigat()Private cCadastro := "Atualizacao de dados do bem"Private aRotina := { {"Pesquisar" ,"AxPesqui" ,0,1} ,;			{"Visualizar" ,"AxVisual" ,0,2} ,;			{"Atualizar" ,"U_TObrigAtu" ,0,4}}Private cDelFunc := ".T."Private cString := "SA1"dbSelectArea("SA1")dbSetOrder(1)dbSelectArea(cString)mBrowse( 6,1,22,75,cString)ReturnUser Function TObrigAtu(cAlias,nReg,nOpc)Local aCpoEnch := {}Local aAlter := {}Local aButtons := {}Local cAliasE := cAliasLocal aAlterEnch := {}Local aPos := {015,000,400,600}Local nModelo :=1Local lF3 := .F.Local lMemoria := .T.Local lColumn := .F.Local caTela := ""Local lNoFolder := .F.Local lProperty := .F.Private oDlgPrivate oGetDPrivate oEnchPrivate aTELA[0][0] // Variáveis que serão atualizadas pela Enchoice()Private aGETS[0] // e utilizadas pela função OBRIGATORIO()DbSelectArea("SX3")DbSetOrder(1)DbSeek(cAliasE)//Campos da enchoice While !Eof() .And. SX3->X3_ARQUIVO == cAliasEIf !(SX3->X3_CAMPO $ "A1_FILIAL") .And. cNivel >= SX3->X3_NIVEL .And. X3Uso(SX3->X3_USADO)	AAdd(aCpoEnch,SX3->X3_CAMPO)EndIfDbSkip()End//Campos alteráveis da enchoice AADD(aAlterEnch,"A1_COD") AADD(aAlterEnch,"A1_LOJA")AADD(aAlterEnch,"A1_NOME") AADD(aAlterEnch,"A1_PESSOA") AADD(aAlterEnch,"A1_NREDUZ") AADD(aAlterEnch,"A1_END") AADD(aAlterEnch,"A1_TIPO")    //Montagem do DIALOG DEFINE MSDIALOG oDlg TITLE cCadastro FROM 000,000 TO 400,600 PIXELRegToMemory("SA1", .F.)oEnch := MsMGet():New(cAliasE, nReg, nOpc, /*aCRA*/, /*cLetra*/,;		/*cTexto*/, aCpoEnch,aPos,aAlterEnch, nModelo, /*nColMens*/,;		/*cMensagem*/, /*cTudoOk*/, oDlg, lF3, lMemoria, lColumn,;		caTela, lNoFolder, lProperty)ACTIVATE MSDIALOG oDlg CENTERED ON INIT EnchoiceBar(oDlg, {||IIF(TObrigGRV(aCpoEnch,aAlterEnch,nOpc),;	oDlg:End(),.F.)},; // Botão OK	{||oDlg:End()},,aButtons) // Botão CancelarRETURN//Validação da enchoice e gravação dos dadosStatic Function TObrigGRV(aCpos,aAlter,nOpc)Local aArea := GetArea()Local nX := 0IF !Obrigatorio(aGets,aTela) /*Valida o cabecalho*/      	//Para apresentar a mensagem neste teste, é necessário limpar o conteúdo de algum campo obrigatório	//como por exemplo o campo A1_END.	MsgAlert("É necessário informar o conteúdo de todos os campos obrigatorios antes da gravação")	Return .F.ENDIF// Atualizacao dos campos passiveis de alteracao no SN1RecLock("SA1",.F.)	For nX := 1 to Len(aAlter)		SA1->&(aAlter[nX]) := M->&(aAlter[nX])	Next nXMsUnLock()Return .T.
4GL Interop

  • Sem rótulos