Tempo aproximado para leitura: 00:05:00 min
Duda
¿Cúal es la función del punto de entrada F998BRMCOL?
Ambiente
Cross Segmento - TOTVS Backoffice (Linea Protheus) MI - Financiero (SIGAFIN) - Todas las versiones
Solución
Tiene el objetivo de que el usuario pueda indicar columnas que se desean incluir en el GRID de visualización de los recibos desde la opción de "Buscar recibos"
Ejemplo
#Include 'Protheus.ch'
User Function F998BRMCOL Local aCampos := {}
Local cSerie := Paramixb[1]
Local cReceipt := Paramixb[2]
Local cClient := Paramixb[3]
Local cQueryFields As Character
Local cQueryWhere As Character
Local cAlias As Character
Local cQuery As Character
Local nCont As Numeric
Local aAux As Array
cAlias := GetNextAlias()
//En el arreglo de aCampos se agregan los campos a visualizar
//aCampos[1] -> Campo se desea visualizar
//aCampos[2] -> Título que se desea asignar a este campo para que lo visualice el cliente, ya sea fijo o que se obtenga de la SX3
//aCampos[3] -> .T. si se desea que este marcado por default y .F. si se desea que no este marcado por default en el GRID
//aCampos[4] -> Nombre de variable par ael campo, con formato camelCase; ejemplo "valorUnit", en vez de Valor Unitario
aCampos := {{"FJT_VERSAO","VERSION",.T.,"version"},{"FJT_DTDIGI",GetSx3Cache("FJT_DTDIGI","X3_TITULO"),.T.,"dataDigit"}}
//Se forman las condicionales de la consulta
cQueryWhere := " FJT_FILIAL = '"+xFilial("FJT")+"' AND FJT_SERIE = '"+cSerie+"' AND FJT_RECIBO = '"+cReceipt+"' AND FJT_CLIENT = '"+cClient+"' "
//Se estructura la parte de los campos a obtener
cQueryFields := " SELECT "
For nCont := 1 to LEN(aCampos)
cQueryFields += " "+aCampos[nCont][1]+" "
If nCont != LEN(aCampos)
cQueryFields += ","
EndIf
Next nCont
//Se estructura todo el query
cQuery := cQueryFields + " FROM " + RetSqlName("FJT") + " WHERE " + cQueryWhere
cQuery := ChangeQuery(cQuery)
MPSysOpenQuery(cQuery, cAlias)
aAux := {}
//Se asignan los campos deseados al arreglo a retornar
WHILE (cAlias)->(!EOF())
AADD( aAux,{aCampos[1][2],(cAlias)->FJT_VERSAO,aCampos[1][3],aCampos[1][4]})
AADD( aAux,{aCampos[2][2],(cAlias)->FJT_DTDIGI,aCampos[2][3],aCampos[2][4]})
(cAlias)->(DbSkip())
END
Return aAux
0 Comentarios