Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

02. DESCRIÇÃO

O ponto de entrada F050PERGUNT 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).

...

Aviso
titleImportante

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) .

...

Bloco de código
languagejava
themeMidnight
firstline1
titleF040BOT
linenumberstrue
#include "protheus.ch"
/*/{Protheus.doc} 
Ponto de entrada F050PERGUNTF50PERGUNT. 
Posibilita alterar perguntas em tempo de execução para rotina automática.
@type function F050PERGUNTF50PERGUNT
@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 wnPos      := 0
    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 ?"})
    For w := 1 To Len(aDados)
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[w], {|x|, alltrim(xAScan(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])  == "MostraInf.Ctas Lancno Contabrateio ?"  })
    If nPos > 0
        If aDados[nPos, 15] == 1 //Inf.Ctas no rateio | 1 - Sim, 2 - Não
            aDados[nPos > 0 ,15] := 2

        EndIf
    EndIf

    nPos := AScan(aDados,{|x|AllTrim(x[1])  == "Contabiliza on Line ?"  })
    If nPos > 0
        If aDados[nPos, 15] == 1 //MostraContabiliza lancamentoon contábilLine | 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[wnPos, 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
        EndIf     aDados[nPos,15] := 2

        EndIf
    EndIf
        
    nPos := aScanAScan(aDados[w], {|x|, alltrimAllTrim(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] := 2

== 1 //Mostra Rateio Excl. | 1 - Sim, 2 - Não
            EndIfaDados[nPos,15] := 2

        EndIf 

    EndIf

    nPos := aScanAScan(aDados[w], {|x|, alltrimAllTrim(x[1])  == "Gera RateioMov.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 > 0  := 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
    EndIf 

    If aDados[nPos,15] == 2 //Visão do Rastreamento  | 1 - Por Título | 2 - Por Processo
            aDados[nPos,15] := 1

        NextEndIf
  w  EndIf

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

...