f_Opcoes - Marcação de múltiplos valores
Autor: Eurai Criado: 16/09/2023 Atualizado: 13/08/2023Salve 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
Discussão (0)
Sem comentários ainda
Realize o LOGIN no site para poder comentar