Árvore de páginas


01. DADOS GERAIS

Produto:TOTVS Backoffice
Linha de Produto:

Linha Protheus ®

Módulo:Financeiro
Função:F50PERGUNT - Ponto de Entrada


02. DESCRIÇÃO

O ponto de entrada F50PERGUNT será executado na chamada de rotina automática do FINA050, possibilitando a alteração do array APERGUNTA, responsável pelas perguntas da rotina. (F12).

03. PARÂMETROS


ParâmetroTipoDescrição
aPerguntaArrayArray com as perguntas carregadas da rotina. 


04. PERGUNTAS


Importante

Ao utilizar o ponto de entrada, as perguntas devem ser passadas na ordem que consta no SX1. Os tipos padrões das variáveis não devem ser alterados, para não gerar inconsistência na rotina automática. 

OrdemPergunta TipoTamanhoCombo
01Mostra Lanc Contab ? N - Numérico11 - Sim |  2 - Não
02Contab.Tit.Provisor ?         N - Numérico11 - Sim |  2 - Não
03Inf.Ctas no rateio ?          N - Numérico11 - Sim |  2 - Não
04Contabiliza on Line ?         N - Numérico11 - Sim |  2 - Não
05Gerar Chq.p/Adiant. ?         N - Numérico11 - Sim |  2 - Não
06Rateia Valor ?                N - Numérico11 - Bruto | 2 - Líquido
07Aglutina Lançamento Contabil ?N - Numérico11 - Sim |  2 - Não
08Mostra Rateio Excl. ?         N - Numérico11 - Sim |  2 - Não
09Mov.Banc.sem Cheque ?         N - Numérico11 - Sim |  2 - Não
10Gera Rateio ?                 N - Numérico11 - Título | 2 - Título/Impostos
11Valores Acessórios Inclusão ? N - Numérico11 - Sim |  2 - Não
12Visão do Rastreamento ?       N - Numérico11 - Por Título / Por Processo


05. RETORNO


ParâmetroTipoDescrição

aPergunta

ArrayArray com as perguntas alteradas. (Não altere a ordem das perguntas, apenas o conteúdo dos parâmetros) .


06. EXEMPLO DE UTILIZAÇÃO


F040BOT
#include "protheus.ch"
/*/{Protheus.doc}
Ponto de entrada F50PERGUNT.
Posibilita alterar perguntas em tempo de execução para rotina automática.
@type function F50PERGUNT
@author TOTVS Matriz
@since 24/01/2022
@version P12
 
@param aPerguntas, array, dados das perguntas do SX1 - FIN050
 
@return aPerguntas, array, respostas alteradas pelo PE.
/*/
User Function F50PERGUNT()
    Local aArea  := GetArea()
    Local aDados := aClone(aPergunta) //Faço a clonagem do array atual para alterar.
    Local nPos   := 0
 
    //A estrutura do array é a mesma do SX1. Para manipular, procure a pergunta usando ASCAN()
    nPos := AScan(aDados,{|x|AllTrim(x[1])  == "Mostra Lanc Contab ?"})
    If nPos > 0
        If aDados[nPos, 15] == 1 //Mostra lancamento contábil | 1 - Sim, 2 - Não
            aDados[nPos,15] := 2

        EndIf
    EndIf
        
    nPos := AScan(aDados,{|x|AllTrim(x[1])  == "Contab.Tit.Provisor ?"  })
    If nPos > 0
        If aDados[nPos, 15] == 1 //Contab.Tit.Provisor | 1 - Sim, 2 - Não
            aDados[nPos,15] := 2

        EndIf
    EndIf

    nPos := AScan(aDados,{|x|AllTrim(x[1])  == "Inf.Ctas no rateio ?"  })
    If nPos > 0
        If aDados[nPos, 15] == 1 //Inf.Ctas no rateio | 1 - Sim, 2 - Não
            aDados[nPos,15] := 2

        EndIf
    EndIf

    nPos := AScan(aDados,{|x|AllTrim(x[1])  == "Contabiliza on Line ?"  })
    If nPos > 0
        If aDados[nPos, 15] == 1 //Contabiliza on Line | 1 - Sim, 2 - Não
            aDados[nPos,15] := 2

        EndIf
    EndIf


    nPos := AScan(aDados,{|x|AllTrim(x[1])  == "Gerar Chq.p/Adiant. ?"  })
    If nPos > 0
        If aDados[nPos, 15] == 1 //Gerar Chq.p/Adiant | 1 - Sim, 2 - Não
            aDados[nPos,15] := 2

        EndIf
    EndIf

    nPos := AScan(aDados,{|x|AllTrim(x[1]) == "Rateia Valor ?" })
    If nPos > 0
        If aDados[nPos, 15] == 1 //Rateia Valor | 1 - Bruto, 2 - Liquido
            aDados[nPos,15] := 2

        EndIf
    EndIf
        
    nPos := AScan(aDados,{|x|AllTrim(x[1])  == "Aglutina Lançamento Contabil ?"  })
    If nPos > 0
        If aDados[nPos,15] == 1 //Aglutina Lançamento Contabil | 1 - Sim, 2 - Não
            aDados[nPos,15] := 2

        EndIf
    EndIf

    nPos :=AScan(aDados,{|x|AllTrim(x[1])  == "Mostra Rateio Excl. ?"  })
    If nPos > 0
        If aDados[nPos,15] == 1 //Mostra Rateio Excl. | 1 - Sim, 2 - Não
            aDados[nPos,15] := 2

        EndIf
    EndIf

    nPos := AScan(aDados,{|x|AllTrim(x[1])  == "Mov.Banc.sem Cheque ?"  })
    If nPos > 0
        If aDados[nPos,15] == 1 //Mov.Banc.sem Cheque | 1 - Sim, 2 - Não
            aDados[nPos,15] := 2

        EndIf
    EndIf

    nPos := AScan(aDados,{|x|AllTrim(x[1])  == "Gera Rateio ?"  })
    If nPos > 0
        If aDados[nPos,15] == 2 //Gera Rateio ? | 1 - Titulo | 2 - Titulo/Impostos
            aDados[nPos,15] := 1

        EndIf
    EndIf

    nPos :=AScan(aDados,{|x|AllTrim(x[1])  == "Valores Acessórios Inclusão ?"  })
    If nPos > 0
        If aDados[nPos,15] == 2 //Valores Acessórios Inclusão | 1 - Sim | 2 - Não
            aDados[nPos,15] := 1

        EndIf
    EndIf

    nPos := AScan(aDados,{|x|AllTrim(x[1])  == "Visão do Rastreamento ?"  })
    If nPos > 0
        If aDados[nPos,15] == 2 //Visão do Rastreamento  | 1 - Por Título | 2 - Por Processo
            aDados[nPos,15] := 1

        EndIf
    EndIf

 
    //Retorno o array a Pergunta com as respostas alteradas.
    aPergunta := aDados
 
    RestArea(aArea)
Return aPergunta