Home

Linha Microsiga Protheus

Árvore de páginas
Ir para o final dos metadados
Ir para o início dos metadados

Contabilização com histórico aglutinado

Na contabilização com histórico aglutinado, o sistema faz uma avaliação para saber qual é o histórico que ele vai utilizar.

Para essa avaliação, a rotina utiliza o parâmetro MV_AGLHIST (se aglutina os históricos ( default .F. )), se o parâmetro estiver setado como .T., a rotina irá considerar o histórico na regra de busca, caso contrario irá utilizar o primeiro histórico que ele encontrar.

Alem da regra de busca do histórico, a rotina faz uma avaliação para a utilização do histórico aglutinado, essa avaliação é feita com base na informação que o usuário cadastrou no lançamento padrão (CT5) no campos histórico aglutinado, se o mesmo estiver vazio, a rotina aglutina os históricos guardados nos arquivos de contra-prova (CTK), caso contrario, o mesmo utiliza o valor chumbado do campo (CT5), ignorando os históricos do arquivo de contra-prova.

A regra para a utilização do histórico aglutinado é a seguinte:

If !Empty(CT5->CT5_HAGLUT)                                                                                /// E O HISTORICO AGLUTINADO ESTIVER PREENCHIDO
#IFDEF TOP                                                                                                      /// caso for top connect
                                If TcSrvType() <> "AS/400"                                                       /// EM AMBIENTE TOP <> AS/400
                                               If Empty(TMP->CT2_HIST)                                        /// SE O HISTORICO DO TMP ESTIVER VAZIO
                                                              lGravaHAglut   := .T.                                     /// MONTA HISTORICO AGLUTINADO
                                                              lGravaHist         := .T.
                                               Else                                                                                      /// SE O HISTORICO DO TMP ESTIVER PREENCHIDO
                                                              lGravaHAglut   := .F.                                     /// GRAVA CONTINUAÇÕES DE HISTORICO DO CTK_HAGLUT/CTK_HIST (TOP)
                                                              lGravaHist         := .T.
                                               EndIf
                               Else
                #ENDIF
                                If lCTKHAGLUT                                                                               /// VARIAVEL DE VERIFICAÇÃO DO CAMPO CTK_HAGLUT
                                               lGravaHAglut   := .F.                                                     /// NÃO UTILIZA A AGLUTINAÇÃO DOS HISTORICOS
                                               lGravaHist         := .T.                                                     /// UTILIZA O HISTORICO NORMAL
                                Else                                                                                                      /// SENÃO
                                               lGravaHAglut   := .T.                                                     /// UTILIZA O HISTORICO AGLUTINADO
                                               lGravaHist         := .T.                                                     /// UTILIZA O HISTORICO NORMAL
                                EndIf
                #IFDEF TOP
                                EndIf
                #ENDIF
ElseIf lSomaLinha                                                                                                        /// SE NAO 1º REGISTRO AGLUTINACAO CODEBASE (TOP SEMPRE .T.)
                lGravaHist         := .T.
                lGravaHAglut   := .F.
EndIf

É recomendado que ao utilizar o campo de histórico aglutinado informado, não se utilize campos ou variáveis publicas do sistema, nestes casos, no momento da gravação, o campo ou a variável poderá estar desposicionada ou sem conteúdo, assim não gerando a informação desejada. Atentar ao fato que e m uma contabilização aglutinada o mesmo necessariamente não precisa estar posicionado no registro.