Histórico da Página
Manipula saldo por entidades
Características do Requisito
Linha de Produto: | Protheus | ||||||||
Segmento: | Serviços | ||||||||
Módulo: | Contabilidade Gerencial | ||||||||
Rotina: |
| ||||||||
Ponto de Entrada: | CTBSldLP | ||||||||
Chamados relacionados | TSZRJJ | ||||||||
País(es): | Todos | ||||||||
Banco(s) de Dados: | Todos | ||||||||
Sistema(s) operacional(is): | Todos | ||||||||
Versões/Release: | 11.80 |
Ponto de Entrada
Descrição: | O ponto de entrada CTBSldLP permite que o sistema enxergue a data da última e penúltima apuração mesmo se o parâmetro Posição Ant. L/P esteja com o conteúdo em Sim. | ||||||||
Eventos: | Geração de relatorio Balancete Comparativo de Movim. de Contas x 12 Colunas | ||||||||
Programa Fonte: | CTBXSAL.PRW | ||||||||
Função: | CTBSldLP() | ||||||||
Retorno: |
|
Exemplo Versao Protheus 11
#include 'Protheus.ch'
#include 'rwmake.ch'
User Function CTBSldLP()
Local lImpAntLP := PARAMIXB[1]
Local dDataLP := PARAMIXB[2]
Local aMeses := PARAMIXB[3]
Local lAcum := PARAMIXB[4]
Local cMoeda := PARAMIXB[5]
Local cTpSaldo := PARAMIXB[6]
Local nOpc := PARAMIXB[7]
Local cQuery := ''
Local nColunas := 0
Local lREL12Mes := ((Alltrim(FunName()) == 'CTBR265') .Or. (Alltrim(FunName()) == 'ABCTR265'))
Local lRel6Mes := ((Alltrim(FunName()) == 'CTBR260') .Or. (Alltrim(FunName()) == 'ABCTR260'))
Local nMes := 0
//-----------------------------------------------------------------------------------------------------------------------------------------//
Exemplo Protheus Versão 11
//-----------------------------------------------------------------------------------------------------------------------------------------//
#include 'Protheus.ch'
#include 'rwmake.ch'
User Function CTBSldLP()
Local lImpAntLP := PARAMIXB[1]
Local dDataLP := PARAMIXB[2]
Local aMeses := PARAMIXB[3]
Local lAcum := PARAMIXB[4]
Local cMoeda := PARAMIXB[5]
Local cTpSaldo := PARAMIXB[6]
Local nOpc := PARAMIXB[7]
Local cQuery := ''
Local nColunas := 0
Local lREL12Mes := ((Alltrim(FunName()) == 'CTBR265') .Or. (Alltrim(FunName()) == 'ABCTR265'))
Local lRel6Mes := ((Alltrim(FunName()) == 'CTBR260') .Or. (Alltrim(FunName()) == 'ABCTR260'))
Local nMes := 0
If nOpc == 1
If lREL12Mes .And. !lImpAntLP // só para comparativo 12 meses
For nColunas := 1 to Len(aMeses)
cQuery += " (SELECT SUM(CT7_CREDIT) - SUM(CT7_DEBITO) "
cQuery += " FROM "+RetSqlName("CT7")+" CT7 "
cQuery += " WHERE CT7.CT7_FILIAL = '"+xFilial("CT7")+"' "
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "
cQuery += " AND CT7_MOEDA = '"+cMoeda+"' "
cQuery += " AND CT7_TPSALD = '"+cTpSaldo+"' "
If lAcum .and. nColunas <> 12 /// SE FOR ACUMULADO, A PRIMEIRA COLUNA TERA O SALDO ATE O FINAL DO PERIODO
cQuery += " AND CT7_DATA <= '"+DTOS(aMeses[nColunas][3])+"' "
ElseIf lAcum .and. (nColunas == 12) /// SE FOR ACUMULADO, A PRIMEIRA COLUNA TERA O SALDO ATE O FINAL DO PERIODO
cQuery += " AND ( "
cQuery += " (CT7_DATA <= '"+DTOS(aMeses[nColunas][3]-1)+"') "
cQuery += " OR "
cQuery += " (CT7_DATA = '"+DTOS(aMeses[nColunas][3])+"' AND "+IIF(!lImpAntLP, "CT7_LP <> 'Z'", "") + " ) "
cQuery += " ) "
Else /// AS DEMAIS COLUNAS SEMPRE SOMAM O MOVIMENTO NO PERIODO. (CALCULO NO RELATORIO)
cQuery += " AND CT7_DATA BETWEEN '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "
If !lImpAntLP .and. nColunas == 12
cQuery += " AND CT7_LP <> 'Z' "
EndIf
Endif
If lImpAntLP .and. (dDataLP >= aMeses[nColunas][2])
cQuery += " AND CT7_LP <> 'Z' "
Endif
cQuery += " AND CT7.D_E_L_E_T_ = ' ') COLUNA"+Str(nColunas,Iif(nColunas>9,2,1))+" "
If nColunas <> Len(aMeses)
cQuery += ", "
EndIf
Next
Elseif lRel6Mes .And. !lImpAntLP // só para comparativo 6 meses
For nColunas := 1 to Len(aMeses)
nMes := MonthIf nOpc == 1
If lREL12Mes .And. !lImpAntLP // só para comparativo 12 meses
For nColunas := 1 to Len(aMeses)
cQuery += " (SELECT SUM(CT7_CREDIT) - SUM(CT7_DEBITO) "
cQuery += " FROM "+RetSqlName("CT7")+" CT7 "
cQuery += " WHERE CT7.CT7_FILIAL = '"+xFilial("CT7")+"' "
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "
cQuery += " AND CT7_MOEDA = '"+cMoeda+"' "
cQuery += " AND CT7_TPSALD = '"+cTpSaldo+"' "
If lAcum .and. nColunas <> 12 /// SE FOR ACUMULADO, A PRIMEIRA COLUNA TERA O SALDO ATE O FINAL DO PERIODO
cQuery += " AND CT7_DATA <= '"+DTOS(aMeses[nColunas][3])+"' "
ElseIf lAcum .and. (nColunas == 12) /// SE FOR ACUMULADO, A PRIMEIRA COLUNA TERA O SALDO ATE O FINAL DO PERIODO
cQuery += " AND ( "
cQuery += " (CT7_DATA <= '"+DTOS(aMeses[nColunas][3]-1)+"') "
cQuery += " OR "
cQuery += " (CT7_DATA = '"+DTOS(aMeses[nColunas][3])+"' AND "+IIF(!lImpAntLP, "CT7_LP <> 'Z'", "") + " ) "
cQuery += " ) "
Else /// AS DEMAIS COLUNAS SEMPRE SOMAM O MOVIMENTO NO PERIODO. (CALCULO NO RELATORIO)
cQuery += " AND CT7_DATA BETWEEN '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "
If !lImpAntLP .and. nColunas == 12
cQuery += " AND CT7_LP <> 'Z' "
EndIf
Endif
If lImpAntLP .and. (dDataLP >= aMeses[nColunas][2])
cQuery += " AND CT7_LP <> 'Z' "
Endif
cQuery += " AND CT7.D_E_L_E_T_ = ' ') COLUNA"+Str(nColunas,Iif(nColunas>9,2,1))+" "
If nColunas <> Len(aMeses)
cQuery += ", "
EndIf
Next
Elseif lRel6Mes .And. !lImpAntLP // só para comparativo 6 meses
For nColunas := 1 to Len(aMeses)
nMes := Month(aMeses[nColunas][3])
cQuery += " (SELECT SUM(CT7_CREDIT) - SUM(CT7_DEBITO) "
cQuery += " FROM "+RetSqlName("CT7")+" CT7 "
cQuery += " WHERE CT7.CT7_FILIAL = '"+xFilial("CT7")+"' "
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "
cQuery += " AND CT7_MOEDA = '"+cMoeda+"' "
cQuery += " AND CT7_TPSALD = '"+cTpSaldo+"' "
If lAcum .and. nMes <> 12 /// SE FOR ACUMULADO, A PRIMEIRA COLUNA TERA O SALDO ATE O FINAL DO PERIODO
cQuery += " AND CT7_DATA <= '"+DTOS(aMeses[nColunas][3])
cQuery +"' "
ElseIf lAcum .and. (nMes == 12) /// SE FOR ACUMULADO, A PRIMEIRA COLUNA TERA O SALDO ATE O FINAL DO PERIODO= " (SELECT SUM(CT7_CREDIT) - SUM(CT7_DEBITO) "
cQuery += " FROM " AND ( +RetSqlName("CT7")+" CT7 "
cQuery += " (WHERE CT7.CT7_DATA <FILIAL = '"+DTOS(aMeses[nColunas][3]-1)+"') xFilial("CT7")+"' "
cQuery += " OR AND ARQ.CT1_CONTA = CT7_CONTA "
cQuery += " (AND CT7_DATA MOEDA = '"+DTOS(aMeses[nColunas][3])cMoeda+"' AND "+IIF(!lImpAntLP, "CT7_LP <> 'Z'", "") + " ) "
cQuery += " ) "
Else /// AS DEMAIS COLUNAS SEMPRE SOMAM O MOVIMENTO NO PERIODO. (CALCULO NO RELATORIO)
cQuery += " AND CT7_TPSALD = '"+cTpSaldo+"' "
If lAcum .and. nMes <> 12 /// SE FOR ACUMULADO, A PRIMEIRA COLUNA TERA O SALDO ATE O FINAL DO PERIODO
cQuery += " AND CT7_DATA BETWEEN <= '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "
If !lImpAntLP
ElseIf lAcum .and. nColunas (nMes == 12) /// SE FOR ACUMULADO, A PRIMEIRA COLUNA TERA O SALDO ATE O FINAL DO PERIODO
cQuery += " AND ( "
cQuery += " (CT7_LP <> 'Z' "
EndIf
Endif
If lImpAntLP .and. (dDataLP >= DATA <= '"+DTOS(aMeses[nColunas][23]-1)+"') "
cQuery += " AND CT7_LP <> 'Z' "
EndifOR "
cQuery += " AND (CT7.D_E_L_E_T_ = ' ') COLUNA"+Str(nColunas,Iif(nColunas>9,2,1))+" "
If nColunas <> Len(aMeses)
cQuery += ", "
EndIf
Next
Else
For nColunas := 1 to Len(aMeses_DATA = '"+DTOS(aMeses[nColunas][3])+"' AND "+IIF(!lImpAntLP, "CT7_LP <> 'Z'", "") + " ) "
cQuery += " ) "
Else /// AS DEMAIS COLUNAS SEMPRE SOMAM O MOVIMENTO NO PERIODO. (CALCULO NO RELATORIO)
cQuery += " (SELECT SUM(CT7_CREDIT) - SUM(CT7_DEBITO) "
cQuery += " FROM "+RetSqlName("CT7")+" CT7 "
cQuery += " WHERE CT7.CT7_FILIAL = '"+xFilial("CT7"AND CT7_DATA BETWEEN '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "
If !lImpAntLP .and. nColunas == 12
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "
LP <> 'Z' "
EndIf
Endif
If lImpAntLP .and. (dDataLP >= aMeses[nColunas][2])
cQuery += " AND CT7_MOEDA = '"+cMoeda+"LP <> 'Z' "
Endif
cQuery += " AND CT7_TPSALD = '"+cTpSaldo+"' "
If lAcum //.and. nColunas == 1/// SE FOR ACUMULADO, A PRIMEIRA COLUNA TERA O SALDO ATE O FINAL DO PERIODO
cQuery += " AND CT7_DATA <= '"+DTOS(aMeses[nColunas][3])+"' "
Else /// AS DEMAIS COLUNAS SEMPRE SOMAM O MOVIMENTO NO PERIODO. (CALCULO NO RELATORIO)
cQuery += " AND CT7_DATA BETWEEN '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "
Endif
If lImpAntLP .and. dDataLP >= aMeses[nColunas][2]
cQuery += " AND CT7_LP <> 'Z' "
Endif
cQuery += " AND CT7.D_E_L_E_T_ = ' ') COLUNA"+Str(nColunas,Iif(nColunas>9,2,1))+" "
If nColunas <> Len(aMeses)
cQuery += ", "
EndIf
Next
EndifElseif nOpc == 2 /// Trecho para o passo "considera valor zerado"cQuery += U_VlrZero(lImpAntLP,dDataLP,aMeses,lAcum,cMoeda,cTpSaldo)
Endif
Return cQuery
User Function VlrZero(lImpAntLP,dDataLP,aMeses,lAcum,cMoeda,cTpSaldo)Local cQuery := ''
Local nColunas := 0
Local lREL12Mes := ((Alltrim(FunName()) == 'CTBR265') .Or. (Alltrim(FunName()) == 'ABCTR265'))
Local lRel6Mes := ((Alltrim(FunName()) == 'CTBR260') .Or. (Alltrim(FunName()) == 'ABCTR260'))
Local nMes := 0
If lREL12Mes .And. !lImpAntLP // só para comparativo 12 meses
cQuery += " AND ( "
For nColunas := 1 to .D_E_L_E_T_ = ' ') COLUNA"+Str(nColunas,Iif(nColunas>9,2,1))+" "
If nColunas <> Len(aMeses)
cQuery += ", "
EndIf
Next
Else
For nColunas := 1 to Len(aMeses)
cQuery += " (SELECT SUM(CT7_CREDIT) - SUM(CT7_DEBITO) "
cQuery += " FROM "+RetSqlName("CT7")+" CT7 "
cQuery += " WHERE CT7.CT7_FILIAL = '"+xFilial("CT7")+"' "
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "
cQuery += " AND CT7_MOEDA = '"+cMoeda+"' "
cQuery += " AND CT7_TPSALD = '"+cTpSaldo+"' "
If lAcum //.and. nColunas == 1/// SE FOR ACUMULADO, A PRIMEIRA COLUNA TERA O SALDO ATE O FINAL DO PERIODO
cQuery += " AND CT7_DATA <= '"+DTOS(aMeses[nColunas][3])+"' "
Else /// AS DEMAIS COLUNAS SEMPRE SOMAM O MOVIMENTO NO PERIODO. (CALCULO NO RELATORIO)
cQuery += " AND CT7_DATA BETWEEN '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "
Endif
If lImpAntLP .and. dDataLP >= aMeses[nColunas][2]
cQuery += " AND CT7_LP <> 'Z' "
Endif
cQuery += " AND CT7.D_E_L_E_T_ = ' ') COLUNA"+Str(nColunas,Iif(nColunas>9,2,1))+" "
If nColunas <> Len(aMeses)
cQuery += " (SELECT ROUND(SUM(CT7_CREDIT),2) - ROUND(SUM(CT7_DEBITO),2) "
cQuery += " FROM "+RetSqlName("CT7")+" CT7 , "
EndIf
Next
Endif
Elseif nOpc == 2 /// Trecho para o passo "considera valor zerado"
cQuery += " WHERE CT7.CT7_FILIAL = '"+xFilial("CT7")+"' "
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "
cQuery += " AND CT7_MOEDA = '"+cMoeda+"' "
cQuery += " AND CT7_TPSALD = '"+cTpSaldo+"' "If lAcum .and. nColunas <> 12 /// SE FOR ACUMULADO, A PRIMEIRA COLUNA TERA O SALDO ATE O FINAL DO PERIODOU_VlrZero(lImpAntLP,dDataLP,aMeses,lAcum,cMoeda,cTpSaldo)
Endif
Return cQuery
User Function VlrZero(lImpAntLP,dDataLP,aMeses,lAcum,cMoeda,cTpSaldo)
Local cQuery := ''
Local nColunas := 0
Local lREL12Mes := ((Alltrim(FunName()) == 'CTBR265') .Or. (Alltrim(FunName()) == 'ABCTR265'))
Local lRel6Mes := ((Alltrim(FunName()) == 'CTBR260') .Or. (Alltrim(FunName()) == 'ABCTR260'))
Local nMes := 0
If lREL12Mes .And. !lImpAntLP // só para comparativo 12 meses
cQuery += " AND CT7_DATA <= '"+DTOS(aMeses[nColunas][3])+"' "
ElseIf lAcum .and. (nColunas == 12) /// SE FOR ACUMULADO, A PRIMEIRA COLUNA TERA O SALDO ATE O FINAL DO PERIODO
cQuery += " AND ( "
For nColunas := 1 to Len(aMeses)
cQuery += " (CT7_DATA <= '"+DTOS(aMeses[nColunas][3]-1)+"'SELECT ROUND(SUM(CT7_CREDIT),2) - ROUND(SUM(CT7_DEBITO),2) "
cQuery += " OR " FROM "+RetSqlName("CT7")+" CT7 "
cQuery += " (WHERE CT7.CT7_DATA FILIAL = '"+DTOS(aMeses[nColunas][3]xFilial("CT7")+"' AND "+IIF(!lImpAntLP, "CT7_LP <> 'Z'", "") + " ) "
cQuery += " ) "
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "
cQuery += " AND CT7_MOEDA = '"+cMoeda+"' "
Else /// AS DEMAIS COLUNAS SEMPRE SOMAM O MOVIMENTO NO PERIODO. (CALCULO NO RELATORIO)
cQuery += " AND CT7_DATA BETWEEN TPSALD = '"+cTpSaldo+"' "
If lAcum .and. nColunas <> 12 /// SE FOR ACUMULADO, A PRIMEIRA COLUNA TERA O SALDO ATE O FINAL DO PERIODO
cQuery += " AND CT7_DATA <= DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "
If !lImpAntLP
ElseIf lAcum .and. (nColunas == 12
cQuery += " AND CT7_LP <> 'Z' "
EndIf
EndifIf lImpAntLP .and. dDataLP >= ) /// SE FOR ACUMULADO, A PRIMEIRA COLUNA TERA O SALDO ATE O FINAL DO PERIODO
cQuery += " AND ( "
cQuery += " (CT7_DATA <= '"+DTOS(aMeses[nColunas][2]3]-1)+"') "
cQuery += " AND CT7_LP <> 'Z' "
EndifOR "
cQuery += " AND (CT7.D_E_L_E_T_ = ' ') <> 0 "
If nColunas <> Len(aMeses)
cQuery += " OR "
EndIf
Next
cQuery += " ) "
Elseif lRel6Mes .And. !lImpAntLP // só para comparativo 6 meses
_DATA = '"+DTOS(aMeses[nColunas][3])+"' AND "+IIF(!lImpAntLP, "CT7_LP <> 'Z'", "") + " ) "
cQuery += " ) "
Else /// AS DEMAIS COLUNAS SEMPRE SOMAM O MOVIMENTO NO PERIODO. (CALCULO NO RELATORIO)
cQuery += " AND CT7_DATA BETWEEN '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "
If !lImpAntLP .and. nColunas == 12For nColunas := 1 to Len(aMeses)
nMes := Month(aMeses[nColunas][3])
cQuery += " (SELECT SUM(CT7_CREDIT) - SUM(CT7_DEBITO) "
cQuery += " FROM "+RetSqlName("CT7")+" CT7 "
cQuery += " WHERE CT7.CT7_FILIAL = '"+xFilial("CT7")+"' "
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "
cQuery += " AND CT7_LP <> 'Z' "
EndIf
Endif
If lImpAntLP .and. dDataLP >= aMeses[nColunas][2]
MOEDA = '"+cMoeda+"' "
cQuery += " AND CT7_TPSALD = '"+cTpSaldo+"' "
If lAcum .and. nMes <> 12 /// SE FOR ACUMULADO, A PRIMEIRA COLUNA TERA O SALDO ATE O FINAL DO PERIODOLP <> 'Z' "
Endif
cQuery += " AND CT7_DATA <= '"+DTOS(aMeses[nColunas][3])+"' "
ElseIf lAcum .and. (nMes == 12) /// SE FOR ACUMULADO, A PRIMEIRA COLUNA TERA O SALDO ATE O FINAL DO PERIODO.D_E_L_E_T_ = ' ') <> 0 "
If nColunas <> Len(aMeses)
cQuery += " OR "
EndIf
Next
cQuery += " ) "
Elseif lRel6Mes .And. !lImpAntLP // só para comparativo 6 meses
For nColunas := 1 to Len(aMeses)
nMes := Month AND ( "
cQuery += " (CT7_DATA <= '"+DTOS(aMeses[nColunas][3]-1)
cQuery +"'= " (SELECT SUM(CT7_CREDIT) - SUM(CT7_DEBITO) "
cQuery += " OR " FROM "+RetSqlName("CT7")+" CT7 "
cQuery += " (WHERE CT7.CT7_DATA FILIAL = '"+DTOS(aMeses[nColunas][3]xFilial("CT7")+"' "
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "+IIF(!lImpAntLP, "CT7_LP <> 'Z'", "") + " )
cQuery += " AND CT7_MOEDA = '"+cMoeda+"' "
cQuery += " ) "Else /// AS DEMAIS COLUNAS SEMPRE SOMAM O MOVIMENTO NO PERIODO. (CALCULO NO RELATORIO)AND CT7_TPSALD = '"+cTpSaldo+"' "
If lAcum .and. nMes <> 12 /// SE FOR ACUMULADO, A PRIMEIRA COLUNA TERA O SALDO ATE O FINAL DO PERIODO
cQuery += " AND CT7_DATA BETWEEN <= '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "
If !lImpAntLP
ElseIf lAcum .and. nColunas (nMes == 12) /// SE FOR ACUMULADO, A PRIMEIRA COLUNA TERA O SALDO ATE O FINAL DO PERIODO
cQuery += " AND ( "
cQuery += " (CT7_LP <> 'Z' "
EndIf
Endif
If lImpAntLP .and. (dDataLP >= DATA <= '"+DTOS(aMeses[nColunas][23]-1)
cQuery += " AND CT7_LP <> 'Z' "
Endif') "
cQuery += " OR "
cQuery += " AND (CT7.D_E_L_E_T_ _DATA = ' ') <> 0 "
If nColunas <> Len(aMeses)
cQuery += " OR "
EndIf
NextcQuery += " AND ( "
For nColunas := 1 to Len(aMeses)
cQuery += " (SELECT ROUND(SUM(CT7_CREDIT),2) - ROUND(SUM(CT7_DEBITO),2) "+DTOS(aMeses[nColunas][3])+"' AND "+IIF(!lImpAntLP, "CT7_LP <> 'Z'", "") + " ) "
cQuery += " FROM "+RetSqlName( " CT7" ) "
Else /// AS DEMAIS COLUNAS SEMPRE SOMAM O MOVIMENTO NO PERIODO. (CALCULO NO RELATORIO)
cQuery += " AND CT7_DATA BETWEEN '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3]+" CT7 "
cQuery += " WHERE CT7.CT7_FILIAL = '"+xFilial("CT7")+"' "
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "
If !lImpAntLP .and. nColunas == 12
cQuery += " AND CT7_MOEDA = '"+cMoeda+"' "LP <> 'Z' "
EndIf
Endif
If lImpAntLP .and. (dDataLP >= aMeses[nColunas][2])
cQuery += " AND CT7_TPSALD = '"+cTpSaldo+"LP <> 'Z' "
If lAcum Endif
cQuery += " AND CT7_DATA <= '"+DTOS(aMeses[nColunas][3])+"' "
Else.D_E_L_E_T_ = ' ') <> 0 "
If nColunas <> Len(aMeses)
cQuery += " OR "
EndIf
Next
cQuery += " AND CT7_DATA BETWEEN '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "
EndIf
If lImpAntLP .and. dDataLP >= aMeses[nColunas][2]( "
For nColunas := 1 to Len(aMeses)
cQuery += " (SELECT ROUND(SUM(CT7_CREDIT),2) - ROUND(SUM(CT7_DEBITO),2) "
cQuery += " FROM "+RetSqlName("CT7")+" CT7 "
cQuery += " WHERE CT7.CT7_FILIAL = '"+xFilial("CT7")+"' "
cQuery += " AND ARQ.CT1_CONTA = CT7_LP <> 'Z' "
EndifCONTA "
cQuery += " AND CT7.D_E_L_E_T_ = ' ') <> 0 "
If nColunas <> Len(aMeses)
cQuery += " OR "
EndIf
Next
cQuery += " ) _MOEDA = '"+cMoeda+"' "
cQuery += " AND CT7_TPSALD = '"+cTpSaldo+"' "
If lAcum
cQuery += " AND CT7_DATA <= '"+DTOS(aMeses[nColunas][3])+"' "
Else
cQuery += " AND ( "
For nColunas := 1 to Len(aMeses)
cQuery += " (SELECT ROUND(SUM(CT7_CREDIT),2) - ROUND(SUM(CT7_DEBITO),2) "
cQuery += " FROM "+RetSqlName("CT7")+" CT7 "
cQuery += " WHERE CT7.CT7_FILIAL = '"+xFilial("CT7")+"' "CT7_DATA BETWEEN '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "
EndIf
If lImpAntLP .and. dDataLP >= aMeses[nColunas][2]
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "LP <> 'Z' "
Endif
cQuery += " AND CT7_MOEDA = '"+cMoeda+"' ".D_E_L_E_T_ = ' ') <> 0 "
If nColunas <> Len(aMeses)
cQuery += " OR "
EndIf
Next
cQuery += " ) "
Else AND CT7_TPSALD = '"+cTpSaldo+"' "
If lAcum
cQuery += " AND CT7_DATA <= '"+DTOS(aMeses[nColunas][3])+"' "
Else
( "
For nColunas := 1 to Len(aMeses)
cQuery += " AND CT7_DATA BETWEEN '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "
EndIf
If lImpAntLP .and. dDataLP >= aMeses[nColunas][2](SELECT ROUND(SUM(CT7_CREDIT),2) - ROUND(SUM(CT7_DEBITO),2) "
cQuery += " FROM "+RetSqlName("CT7")+" CT7 "
cQuery += " WHERE CT7.CT7_FILIAL = '"+xFilial("CT7")+"' "
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "
cQuery += " AND CT7_LP <> 'ZMOEDA = '"+cMoeda+"' "
Endif
cQuery += " AND CT7.D_E_L_E_T_ = ' ') <> 0 "
If nColunas <> Len(aMeses)
cQuery += " OR "//dd-mm-yyyy
EndIf
Next
cQuery += " ) "
EndifReturn cQuery_TPSALD = '"+cTpSaldo+"' "
If lAcum
cQuery += " AND CT7_DATA <= '"+DTOS(aMeses[nColunas][3])+"' "
Else
cQuery += " AND CT7_DATA BETWEEN '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "
EndIf
If lImpAntLP .and. dDataLP >= aMeses[nColunas][2]
cQuery += " AND CT7_LP <> 'Z' "
Endif
cQuery += " AND CT7.D_E_L_E_T_ = ' ') <> 0 "
If nColunas <> Len(aMeses)
cQuery += " OR "
EndIf
Next
cQuery += " ) "
Endif
Return cQuery
//-----------------------------------------------------------------------------------------------------------------------------------------//
Exemplo Protheus Versao 12
//-----------------------------------------------------------------------------------------------------------------------------------------//