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] | array | aIndices - 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] | array | aIndices - 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
#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