f_Opcoes - Marcação de múltiplos valores

f_Opcoes - Marcação de múltiplos valores
Author: Eurai
Inclusão: 11/08/2023
Alteração: 13/08/2023

Salve salve, blz?

 

Exemplo de uso da função f_opcoes, consulta na SX5, tabela 31.

 

 

 

 

 

	

//Classe tlpp com staticc. Static Method fOpcoesSX5_31()
//Executar >> UDESENV():fOpcoesSX5_31() 



/*/{Protheus.doc} fOpcoesSX5_31
Opcoes do SX5, 31

@type		method	
@author		Eurai Rapelli
@since 		2023.01.01
@example	UDESENV():fOpcoesSX5_31()
/*/
Method fOpcoesSX5_31() Class UDESENV
Local nXXCHAVE      := 1 as numeric
Local nI            := 0 as numeric

Local aDados        := {} as array

Local cQuery        := ''
Local cMVPar        := &(Alltrim(ReadVar())) as character
Local cMVRet        := Alltrim(ReadVar()) as character
Local cTitulo       := "Consulta" as character
Local cMVParDef     := "" as character
Local cRetorno      := "" as character
Local cDataTemp     := "" as character
Local cIgnora       := Replicate('*',nXXCHAVE) as character



If Select('QryUDSX5') > 0
    QryUDSX5->( dbCloseArea() )
Endif

cQuery :=  "SELECT "
cQuery +=  "    X5_CHAVE, X5_DESCRI "
cQuery +=  "FROM "
cQuery +=  RetSqlName('SX5') + " SX5 "
cQuery +=  "	WHERE "
cQuery +=  "		X5_FILIAL      = '" + xFilial('SX5') + "' "
cQuery +=  "		AND X5_TABELA  = '31' "
cQuery +=  "		AND SX5.D_E_L_E_T_ = ' ' "
MPSysOpenQuery(cQuery,'QryUDSX5')
Do While QryUDSX5->( !EOF() )

    cDataTemp   := SubStr( QryUDSX5->X5_CHAVE, 01, nXXCHAVE )
    cMVParDef   += cDataTemp
    aAdd( aDados, cDataTemp + " - " + AllTrim( QryUDSX5->X5_DESCRI ) )


    QryUDSX5->( dbSkip() )
EndDo
QryUDSX5->( dbCloseArea() )



If f_Opcoes( @cMVPar, cTitulo, aDados, cMVParDef, 12, 49, .F., nXXCHAVE, Len(aDados) )

    
    For nI := 1 To Len( cMVPar ) Step nXXCHAVE
        If At( SubStr(cMVPar,nI,nXXCHAVE), cIgnora ) == 0
            cRetorno  += SubStr(cMVPar,nI,nXXCHAVE) + ";"
        EndIf
    Next nI

    cRetorno  := Left( cRetorno, Len(cRetorno) -1 )
    &cMVRet   := cRetorno

Endif


Return( .T. )
                           

 

 

 

 

 

 

 

Gostou? Compartilhe com seus amigos e deixe um comentário! 😎

Um abraço, e até a próxima  

 

 

Esse conteúdo te ajudou? Ajude o canal com doação
Compartilhar
Comentários