01. DATOS GENERALES


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

02. DESCRIPCIÓN

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:

  • Durante la carga de la pantalla de registro de los títulos para borderó (después de informar los parámetros iniciales).
  • Dentro de la opción "Actualizar", es posible efectuar el cambio del índice.


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.

03. PARÁMETROS

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.

04. DEVOLUCIÓN

Nombre

Tipo

Descripción

nIndex

Numérico

Número del índice que debe reordenar los títulos mostrados para registro.

05. EJEMPLO DE UTILIZACIÓN

F240IND
#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