Árvore de páginas

01. DATOS GENERALES


Producto

TOTVS Backoffice

Línea de producto: 

Línea Protheus

Segmento:

Servicios

Módulo:SIGAFIN - FINANCIERO
Función:
RutinaNombre TécnicoFecha
RECEIPT.SERVICE.TLPPServicio para el guardado de los recibos28/01/2022
País:Todos
Ticket:N/A
Requisito/Story/Issue (informe el requisito vinculado):DMINA-14278


02. SITUACIÓN/REQUISITO

Se necesita crear un punto de entrada que permita al usuario incluir campos/columnas en la lista de visualización de los recibos.


03. SOLUCIÓN

Se crea el punto de entrada F998BRMCOL en la rutina RECEIPT.SERVICE.TLPP - Servicio para el guardado de los recibos, con el objetivo de que el usuario pueda incluir campos/columnas en la lista de visualización de los recibos, esto desde la opción de Buscar recibos.


  1. Crear la función de usuario F998BRMCOL para agregar columnas en el GRID de visualización de los recibos desde la opción de "Buscar recibos".
    - La rutina efectuará las validaciones correspondientes y debe retornar un arreglo con los campos y los valores, determinados por el usuario, para agregar en columnas a la lista de recibos.
  2. Dentro del modulo Financiero ejecutar la rutina TOTVS Recibo (Actualizaciones | Cuentas por cobrar).
  3. En la sección Buscar recibo, especifique los criterios de consulta.
  4. Al momento de aplicar el filtrado se ejecutará el punto de entrada F998BRMCOL.
  5. Haga clic en el ícono con la imagen de engrane que se encuentra a la derecha de los títulos de las columnas.
  6. En la lista de campos a visualizar serán agregados los definidos por el usuario a través del punto de entrada.
  7. Seleccione y deseleccione los campos requeridos, a continuación, confirme.
  8. El listado de recibos se visualizará con las columnas de acuerdo a los campos seleccionados.


04. INFORMACIÓN ADICIONAL

DescripciónActualizaciones
Punto de entrada:F998BRMCOL
Nombre del programa fuente:RECEIPT.SERVICE.TLPP
Parámetros recibidos:
NombreTipoDescripción
PARAMIXB[1]CSerie del recibo
PARAMIXB[2]CNúmero del recibo
PARAMIXB[3]CCliente
Respuesta:Arreglo de configuraciones para agregar a la lista de campos que se pueden visualizar en la lista de recibos.


NombreTipoDescripciónObligatorio
aRet[1]CTítulo de la columna que se desea agregar en la lista de recibos.Si
aRet[2]CValor del campo, de cualquier tabla en la DB vinculada a los recibos de cobro.Si
aRet[3]LMostrar marca de seleccionado en la lista de campos a visualizar: .T. = Sí, .F. = No.Si
aRet[4]C

Nombre para asignar al campo a visualizar, debe ser con estilo de escritura "camelCase".

Comienza con minúscula, puede tener mayúsculas intermedias, no permite espacios ni signos especiales.

Si

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


¡IMPORTANTE!

La presente solución aplica para versión 12.1.33 o superior, siempre y cuando se tengan las rutinas actualizadas a la fecha de la expedición del issue.


05. ASUNTOS RELACIONADOS

  • https://tdn.totvs.com/x/Zq97Jw