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.