Á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 cQryFields := "" As Character
    Local cQryWhere  := "" As Character
    Local cQuery    := "" As Character
    Local nX        := 0  As Numeric
    Local cAuxWhere := "" As Character
 
 
    //Definimos los campos a retornar en la instrucción SQL
    cQryFields := "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
    cQryWhere  := " AQ_CODUSR ='"+ cUseriD +"' "
    //Definimos la estructura de la intrucción SQL a ejecutar
    querycQuery := "SELECT "+ cQryFields +" FROM "+ retSqlName("SAQ") +" WHERE "+ cQryWhere
    //Ejecutamos la intrucción
    querycQuery := changeQuery(querycQuery)
 
    mpSysOpenQuery(querycQuery, 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)
        cCobrador := "E1_COBRAD = ''"
    ENDIF
 
    cAuxWhere := cWhere +' AND ( '+cCobrador+' )'
 
Return cAuxWhere

...