Línea de producto: | Microsiga Protheus® |
|---|---|
Segmento: | Backoffice |
Módulo: | Financiero |
Función: | FINA240 - Borderó de pagos |
Requisito/Story/Issue (informe el requisito relacionado) : | DFINTES-16328 |
La finalidad del punto de entrada F240IND es permitir que se modifique el orden de los títulos en la pantalla.
El punto de entrada F240IND se ejecuta en dos puntos dentro de la rutina FINA240 (Borderó de pagos), siendo estas:
Obs. 1: solamente los índices seleccionados en la pantalla de selección de índices podrán utilizarse para actualizar el browse de registro de títulos. Durante la primera ejecución del punto de entrada (después de la selección manual de índices), si se devolviera un índice que no haya registrado manualmente este se incluirá a los índices de la pantalla de registro de títulos.
Obs. 2: si el índice fuera alfanumérico (ejemplo: A, B, C), la devolución del punto de entrada debe seguir la misma regla de la función "DBSetOrder", es decir, la devolución debe ser numérica.
Ejemplo: índice 1 e índice 2 registrados manualmente en la pantalla siguiente selección e índice 6 devuelto por medio del punto de entrada: los títulos se ordenarán por el índice 6 y los tres índices podrán utilizarse en la ejecución del punto de entrada por medio de la opción actualizar.
Ejecución en la activación de la pantalla de selección de títulos:
Nombre | Tipo | Descripción | Contenido |
paramIXB[1] | logical | lRefresh - si la ejecución fuera por medio de la opción Actualizar o no. | Falso |
paramIXB[2] | array | aIndices - array vacío (solamente por compatibilidad. Este estará completado en le ejecución donde el lRefresh estuviera como verdadero. | {} |
Ejecución por medio de la opción "Actualizar":
Nombre | Tipo | Descripción | Contenido |
paramIXB[1] | logical | lRefresh - si la ejecución fuera por medio de la opción Actualizar o no. | Falso |
paramIXB[2] | array | aIndices - Array (matriz) con los índices seleccionados previamente en la pantalla de selección de índices. | 1ª posición = Número del índice. 2ª posición = Descripción del índice de acuerdo con la tabla SIX. |
Nombre | Tipo | Descripción |
nIndex | Numérico | Número del índice que debe reordenar los títulos mostrados para registro. |
#Include "TOTVS.CH"
/*/{Protheus.doc} F240IND
Punto de entrada para manejo de índice de la pantalla de borderó (FINA240).
@version P12
@since 10/09/2021
@return numeric, índice que será marcado
@obs Función utilizada en las rutinas FINA240
/*/
User Function F240IND() As Numeric
Local aIndices As Array
Local lRefresh As Logical
Local nIndex As Numeric
nIndex := 1
lRefresh := paramIXB[1]
aIndices := paramIXB[2] //solamente se activa en la ejecución vía opción Actualizar (cuando lRefresh está como verdadero)
//Selección del indice inicial de la tabla
If !lRefresh
If MsgYesNo("¿Desea ordenar por Código del proveedor?", "F240IND - Modificar el índice")
nIndex := 6
EndIf
Else
//Activación vía opción refresh de la tabla de borderó - Permite el cambio del índice actual
//Su lógica para selección de índice - Ejemplo utilizando List Box
nIndex := U_SelIndex(aIndices)
EndIf
Return nIndex
/*/{Protheus.doc} SelIndex
Rutina para selección de índice en la opción refresh de la pantalla de selección de borderó.
@version P12
@since 10/09/2021
@param aIndices array, array de índices que podrán seleccionarse
@return numeric, índice que se utilizará en la pantalla de selección de borderó
/*/
User Function SelIndex(aIndices As Array) As Numeric
Local nVar As Numeric
Local nOpca As Numeric
Local nSE2Index As Numeric
Local oList As Object
Local oDlg As Object
nOpca := 2
DEFINE MSDIALOG oDlg TITLE "Selección de índice" From 9, 0 To 32, 74 OF oMainWnd
@0.5, 0.3 TO 12.2, 32.2 LABEL "Índices" OF oDlg
@2.3, 3.0 Say OemToAnsi(" ")
@1.0, 0.7 LISTBOX oList VAR nVar Fields HEADER "Índice" SIZE 250, 150 NOSCROLL ON DBLCLICK (nSE2Index := aIndices[oList:nAt][1], nOpca := 1, oDlg:End())
oList:SetArray(aIndices)
oList:bLine := {|| {aIndices[oList:nAt][2]}}
DEFINE SBUTTON FROM 10.0, 260 TYPE 1 ACTION (nOpca := 1, nSE2Index := aIndices[oList:nAt][1], oDlg:End()) ENABLE OF oDlg
DEFINE SBUTTON FROM 22.5, 260 TYPE 2 ACTION oDlg:End() ENABLE OF oDlg
ACTIVATE MSDIALOG oDlg CENTERED
//Si se anulara la selección, automáticamente selecciona el primer índice
If nOpca == 2
nSE2Index := 1
EndIf
Return nSE2Index