Árvore de páginas


01. DADOS GERAIS

Linha de Produto:Microsiga Protheus®
Segmento:Backoffice
Módulo:Financeiro
Função:

FINA240 - Borderô de Pagamentos

Requisito/Story/Issue (informe o requisito relacionado) :DFINTES-16328


02. DESCRIÇÃO

A finalidade do ponto de entrada F240IND é permitir que a ordenação dos títulos em tela seja alterada.

O ponto de entrada F240IND é executado em dois pontos dentro da rotina FINA240 (Borderô de pagamentos), sendo elas:

  • Durante o carregamento da tela de marcação dos títulos para borderô (após informar os parâmetros iniciais);
  • Dentro do botão "Atualizar", sendo assim possível efetuar a troca do índice.


Obs. 1: somente os índices selecionados na tela de seleção de índices poderão ser utilizados para atualizar o browse de marcação de títulos. Durante a primeira execução do ponto de entrada (após a seleção manual de índices), caso seja retornado um índice que não tenha sido marcado manualmente o mesmo será adicionado aos índices da tela de marcação de títulos.

Obs. 2: caso o índice seja alfanumérico (exemplo: A, B, C), o retorno do ponto de entrada deve seguir a mesma regra da função "DBSetOrder", ou seja, o retorno deve ser numérico.


Exemplo: índice 1 e índice 2 marcados manualmente na tela seleção abaixo e índice 6 retornado através do ponto de entrada: os títulos serão ordenados pelo índice 6 e os três índices poderão ser utilizados na execução do ponto de entrada através do botão atualizar.

03. PARÂMETROS

Execução no carregamento da tela de seleção de títulos:

Nome

Tipo

Descrição

Conteúdo

paramIXB[1]

logical

lRefresh - se a execução é através do botão Atualizar ou não.

Falso
paramIXB[2]arrayaIndices - array vazio (apenas por compatibilidade. O mesmo estará preenchido na execução onde o lRefresh estiver como verdadeiro.{}


Execução através do botão "Atualizar":

Nome

Tipo

Descrição

Conteúdo

paramIXB[1]

logical

lRefresh - se a execução é através do botão Atualizar ou não.

Falso
paramIXB[2]arrayaIndices - Array (matriz) contendo os índices selecionados previamente na tela de seleção de índices.

1ª posição = Número do índice;

2ª posição = Descrição do índice conforme tabela SIX.

04. RETORNO

Nome

Tipo

Descrição

nIndex

Numérico

Número do índice que deverá reordenar os títulos apresentados para marcação.

05. EXEMPLO DE UTILIZAÇÃO

F240IND
#Include "TOTVS.CH"

/*/{Protheus.doc} F240IND
Ponto de entrada para manipulação de índice da tela de borderô (FINA240).

@version    P12
@since      10/09/2021
@return     numeric, índice a ser posicionado
@obs        Função utilizada nas rotinas 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] //somente é carregado na execução via botão Atualizar (quando lRefresh está como verdadeiro)

    //Escolha do indice inicial da tabela
    If !lRefresh
        If MsgYesNo("Desejar ordenar por Código do Fornecedor?", "F240IND - Alterar o Indice")
            nIndex := 6
        EndIf
    Else
        //Chamada via botão refresh da tabela de borderô - Permite a troca do índice atual
        //Sua lógica para seleção de índice - Exemplo utilizando List Box
        nIndex := U_SelIndex(aIndices)
    EndIf

Return nIndex

/*/{Protheus.doc} SelIndex
Rotina para seleção de índice no botão refresh da tela de seleção de borderô.

@version    P12
@since      10/09/2021
@param      aIndices array, array de índices que poderão ser selecionados
@return     numeric, indice a ser utilizado na tela de seleção 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 "Seleção 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

    //Caso cancelada a seleção, automaticamente seleciona o primeiro índice
    If nOpca == 2
        nSE2Index := 1
    EndIf

Return nSE2Index