Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
titleEjemplo de código
#INCLUDE "Totvs.ch"
 
User Function F887FPG()
    Local cUser     := PARAMIXB[1]      //Parámetro en el cual se obtiene el nombre del usuario logueado
    Local cUseriD   := PARAMIXB[2]      //Parámetro en el cual se obtiene el ID del usuario logueado
    Local cWhere    := PARAMIXB[3]      //Where del Query que se utiliza para obtener los títulos en Panel General
    Local cAlias    := getNextAlias()    
    Local aSAQS     := {} As Array 
    Local cCobrador := "" As Character
    Local qryFields := "" As Character
	Local qryWhere  := "" As Character
    Local nX        := 0  As Numeric
    Local cAuxWhere := "" As Character


    //Definimos los campos a retornar en la instrucción SQL
	qryFields := "AQ_COD,AQ_NOME"
    //Definimos la condición, en este caso de que el código del campo usuario sea igual al ID del usuario logueado
	qryWhere  := " AQ_CODUSR ='"+ cUseriD +"' "
    //Definimos la estructura de la intrucción SQL a ejecutar
	query := "SELECT "+ qryFields +" FROM "+ retSqlName("SAQ") +" WHERE "+ qryWhere
    //Ejecutamos la intrucción
	query := changeQuery(query)

    mpSysOpenQuery(query, cAlias)
	(cAlias)->(DbGoTop())
	While (cAlias)->(!Eof())
        IF aScan(aSAQS,(cAlias)->AQ_COD) == 0 //Instrucción para no repetir cobradores en el array
            aadd(aSAQS,(cAlias)->AQ_COD)      //Agrega en un array los cobradores asociados con el cliente logueado  
        ENDIF
        (cAlias)->(dbSkip())
	ENDDO
    (cAlias)->(dbCloseArea())

    //Preparamos la cadena que se retornara con los cobradores 
    IF !VAZIO(aSAQS)
        FOR nX := 1 To LEN(aSAQS)
			cCobrador += " E1_COBRAD =" + aSAQS[nX]
            IF nX < LEN(aSAQS)
               cCobrador += " OR "
            ENDIF
		NEXT
    ELSE
    //Opcional (En caso de que no tenga cobradores asociados) si no se informa mostrará todos los títulos
        cCobrador := "E1_COBRAD = 'ZZZZZ'" 
    ENDIF

    cAuxWhere := cWhere +' AND ( '+cCobrador+' )'

Return cAuxWhere

...