|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Fev 26, 2021 5:39 pm Assunto: |
|
|
Parece que o primeiro probema foi por falta de fechar o bloco
Código: | begin
if (:PNAOMOSTRARSALDO = 0) then
begin
TOTAL_GERAL = TOTAL_GERAL + DEPOSITO - PAGAMENTO;
end
else
TOTAL_GERAL = 0;
total_geral_credito = total_geral_credito + deposito;
total_geral_debito = total_geral_debito + pagamento;
end |
Ja o segundo problema acho que assim resolve no filtro mais essa condição
Código: | AND ( (UPPER(C.NOMEFANTASIA) LIKE :PCONDICAO) OR
' (UPPER(MC.FAVORECIDO) LIKE :PCONDICAO) or (mc.id_cliente is null) ) |
_________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Editado pela última vez por adriano_servitec em Sáb Fev 27, 2021 8:09 am, num total de 1 vez |
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sáb Fev 27, 2021 8:26 am Assunto: |
|
|
Será que é assim a forma correta?
Só deixei esse dois aqui
Código: | total_geral_credito = total_geral_credito + deposito;
total_geral_debito = total_geral_debito +- pagamento;
|
Código: | create or alter procedure SP_REL_MOVIMENTACAO (
PID_CONTA varchar(1025),
PDATA1 date,
PDATA2 date,
PSTATUS varchar(255),
PCONDICAO varchar(255),
PNAOMOSTRARSALDO integer,
PUSUARIO varchar(100))
returns (
ID_CONTA integer,
NOME_CONTA varchar(100) character set WIN1252 collate WIN_PTBR,
ID integer,
DATA date,
NUMERO varchar(20),
ID_CLIENTE integer,
FAVORECIDO varchar(100) character set WIN1252 collate WIN_PTBR,
ID_PLANCONTA integer,
NOME varchar(100) character set WIN1252 collate WIN_PTBR,
HISTORICO varchar(200) character set WIN1252 collate WIN_PTBR,
SALDO_ANT numeric(15,2),
DEPOSITO numeric(15,2),
PAGAMENTO numeric(15,2),
SALDO numeric(15,2),
TIPO integer,
STATUS integer,
ID_CCUSTO integer,
NOME_CCUSTO varchar(100) character set WIN1252 collate WIN_PTBR,
VALOR numeric(15,2),
D_C char(1),
TOTAL_GERAL numeric(15,2),
SALDO_POR_CONTA numeric(15,2),
TOTAL_GERAL_DEBITO numeric(15,2),
TOTAL_GERAL_CREDITO numeric(15,2))
as
declare variable ID_CONTA_ANT integer;
declare variable INICIO_CONTA char(1);
BEGIN
ID_CONTA_ANT = 0;
TOTAL_GERAL = 0;
total_geral_debito = 0;
total_geral_credito = 0;
FOR
SELECT
MC.ID_CONTA,
MC.ID,
MC.DATA,
MC.NUMERO,
MC.ID_CLIENTE,
CASE WHEN MC.FAVORECIDO IS NULL THEN
C.NOMEFANTASIA
ELSE
MC.FAVORECIDO
END,
MC.ID_PLANCONTA,
MC.ID_CCUSTO,
MC.HISTORICO,
MC.STATUS,
MC.TIPO,
SUM(MC.VALOR * CASE WHEN MC.TIPO IN (0, 3) THEN 1 ELSE 0 END),
SUM(MC.VALOR * CASE WHEN MC.TIPO IN (1, 2) THEN 1 ELSE 0 END),
SUM(MC.VALOR * CASE WHEN MC.TIPO IN (0, 3) THEN 1 ELSE -1 END),
IIF( MC.TIPO IN (1, 2), 'D', 'C')
FROM MOVCONTA MC
LEFT JOIN CLIENTE C ON C.ID = MC.ID_CLIENTE
INNER JOIN USUARIOCONTAS UC ON UC.CONTA_ID = MC.ID_CONTA
WHERE POSITION(cast(MC.ID_CONTA as varchar(255)) || ',', :PID_CONTA) > 0 AND
MC.Data <= : PDATA2
AND ( (UPPER(C.NOMEFANTASIA) LIKE :PCONDICAO) OR
(UPPER(MC.FAVORECIDO) LIKE :PCONDICAO) or (mc.id_cliente is null) )
AND UC.CD_USUARIO LIKE :PUSUARIO
GROUP BY 1,2,3,4,5,6,7,8,9,10,11
ORDER BY mc.id_conta, MC.DATA, MC.ID
INTO : ID_CONTA, : ID, : DATA, : NUMERO, : ID_CLIENTE, : FAVORECIDO,
: ID_PLANCONTA, : ID_CCUSTO,
: HISTORICO, : STATUS, : TIPO,
: DEPOSITO, : PAGAMENTO,
: VALOR, : D_C
DO BEGIN
IF (ID_CONTA <> ID_CONTA_ANT) THEN
BEGIN
ID_CONTA_ANT = ID_CONTA;
INICIO_CONTA = 'S';
SALDO = 0;
saldo_por_conta = 0;
END
if (:PNAOMOSTRARSALDO = 0) then
begin
SALDO_ANT = SALDO;
end
else
saldo_ant = 0;
IF (: STATUS <> 30) THEN
if (: data >= : pdata1 ) then
saldo_por_conta = saldo_por_conta + DEPOSITO - PAGAMENTO;
total_geral_credito = total_geral_credito + deposito;
total_geral_debito = total_geral_debito +- pagamento;
if (:PNAOMOSTRARSALDO = 0) then
begin
SALDO = SALDO + DEPOSITO - PAGAMENTO;
end
else
SALDO = 0;
IF (: DATA >= : PDATA1) THEN
BEGIN
IF (INICIO_CONTA = 'S') THEN
BEGIN
INICIO_CONTA = 'N';
TOTAL_GERAL = TOTAL_GERAL + SALDO;
END
ELSE
begin
if (:PNAOMOSTRARSALDO = 0) then
begin
TOTAL_GERAL = TOTAL_GERAL + DEPOSITO - PAGAMENTO;
end
else
TOTAL_GERAL = 0;
end
SELECT REPLACE (CT.NOME, ' ', ' ') AS NOME_CONTA
FROM CONTA CT
WHERE CT.ID = :ID_CONTA
INTO : NOME_CONTA;
SELECT PC.NOME
FROM PLANODECONTAS PC
WHERE PC.ID = :ID_PLANCONTA
INTO : NOME;
SELECT CC.NOME
FROM CENTRODECUSTO CC
WHERE CC.ID = :ID_CCUSTO
INTO : NOME_CCUSTO;
SUSPEND;
END
END
END |
_________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Seg Mar 01, 2021 10:15 am Assunto: |
|
|
Acho que talvez esteja faltando o If para ver se o status é diferente de 30:
Código: | IF (: STATUS <> 30) THEN
begin
if (: data >= : pdata1 ) then
saldo_por_conta = saldo_por_conta + DEPOSITO - PAGAMENTO;
total_geral_credito = total_geral_credito + deposito;
total_geral_debito = total_geral_debito + pagamento;
if (:PNAOMOSTRARSALDO = 0) then
begin
SALDO = SALDO + DEPOSITO - PAGAMENTO;
end
else
SALDO = 0;
end
IF (: DATA >= : PDATA1) THEN
BEGIN
IF (INICIO_CONTA = 'S') THEN
BEGIN
INICIO_CONTA = 'N';
TOTAL_GERAL = TOTAL_GERAL + SALDO;
END
ELSE
begin
if (:PNAOMOSTRARSALDO = 0) then
begin
IF (: STATUS <> 30) THEN
TOTAL_GERAL = TOTAL_GERAL + DEPOSITO - PAGAMENTO;
end
else
TOTAL_GERAL = 0;
end |
Espero que ajude |
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Seg Mar 01, 2021 2:44 pm Assunto: |
|
|
Boa tarde,
Fiz 2 lancamentos para este mes
Valor 5.000,00
e outro 400,00
Ai no SP chamei do periodo 01/03/2021 a 31/03/2021
E esta vindo 3X o valor
15.000,00
1.200
Sabe dizer o que aconteceu?
A SP
Código: | create or alter procedure XSP_REL_MOVIMENTACAO (
PID_CONTA varchar(1025),
PDATA1 date,
PDATA2 date,
PSTATUS varchar(255),
PCONDICAO varchar(255),
PNAOMOSTRARSALDO integer,
PUSUARIO varchar(100))
returns (
ID_CONTA integer,
NOME_CONTA varchar(100) character set WIN1252 collate WIN_PTBR,
ID integer,
DATA date,
NUMERO varchar(20),
ID_CLIENTE integer,
FAVORECIDO varchar(100) character set WIN1252 collate WIN_PTBR,
ID_PLANCONTA integer,
NOME varchar(100) character set WIN1252 collate WIN_PTBR,
HISTORICO varchar(200) character set WIN1252 collate WIN_PTBR,
SALDO_ANT numeric(15,2),
DEPOSITO numeric(15,2),
PAGAMENTO numeric(15,2),
SALDO numeric(15,2),
TIPO integer,
STATUS integer,
ID_CCUSTO integer,
NOME_CCUSTO varchar(100) character set WIN1252 collate WIN_PTBR,
VALOR numeric(15,2),
D_C char(1),
TOTAL_GERAL numeric(15,2),
SALDO_POR_CONTA numeric(15,2),
TOTAL_GERAL_DEBITO numeric(15,2),
TOTAL_GERAL_CREDITO numeric(15,2))
as
declare variable ID_CONTA_ANT integer;
declare variable INICIO_CONTA char(1);
BEGIN
ID_CONTA_ANT = 0;
TOTAL_GERAL = 0;
total_geral_debito = 0;
total_geral_credito = 0;
FOR
SELECT
MC.ID_CONTA,
MC.ID,
MC.DATA,
MC.NUMERO,
MC.ID_CLIENTE,
CASE WHEN MC.FAVORECIDO IS NULL THEN
C.NOMEFANTASIA
ELSE
MC.FAVORECIDO
END,
MC.ID_PLANCONTA,
MC.ID_CCUSTO,
MC.HISTORICO,
MC.STATUS,
MC.TIPO,
SUM(MC.VALOR * CASE WHEN MC.TIPO IN (0, 3) THEN 1 ELSE 0 END),
SUM(MC.VALOR * CASE WHEN MC.TIPO IN (1, 2) THEN 1 ELSE 0 END),
SUM(MC.VALOR * CASE WHEN MC.TIPO IN (0, 3) THEN 1 ELSE -1 END),
IIF( MC.TIPO IN (1, 2), 'D', 'C')
FROM MOVCONTA MC
LEFT JOIN CLIENTE C ON C.ID = MC.ID_CLIENTE
INNER JOIN USUARIOCONTAS UC ON UC.CONTA_ID = MC.ID_CONTA
WHERE POSITION(cast(MC.ID_CONTA as varchar(255)) || ',', :PID_CONTA) > 0 AND
MC.Data <= : PDATA2
AND ( (UPPER(C.NOMEFANTASIA) LIKE :PCONDICAO) OR
(UPPER(MC.FAVORECIDO) LIKE :PCONDICAO) or (mc.id_cliente is null) )
AND UC.CD_USUARIO LIKE :PUSUARIO
GROUP BY 1,2,3,4,5,6,7,8,9,10,11
ORDER BY mc.id_conta, MC.DATA, MC.ID
INTO : ID_CONTA, : ID, : DATA, : NUMERO, : ID_CLIENTE, : FAVORECIDO,
: ID_PLANCONTA, : ID_CCUSTO,
: HISTORICO, : STATUS, : TIPO,
: DEPOSITO, : PAGAMENTO,
: VALOR, : D_C
DO BEGIN
IF (ID_CONTA <> ID_CONTA_ANT) THEN
BEGIN
ID_CONTA_ANT = ID_CONTA;
INICIO_CONTA = 'S';
SALDO = 0;
saldo_por_conta = 0;
END
if (:PNAOMOSTRARSALDO = 0) then
begin
SALDO_ANT = SALDO;
end
else
saldo_ant = 0;
IF (: STATUS <> 30) THEN
BEGIN
if (: data >= : pdata1 ) then
saldo_por_conta = saldo_por_conta + DEPOSITO - PAGAMENTO;
total_geral_credito = total_geral_credito + deposito;
total_geral_debito = total_geral_debito +- pagamento;
if (:PNAOMOSTRARSALDO = 0) then
begin
SALDO = SALDO + DEPOSITO - PAGAMENTO;
end
else
SALDO = 0;
END
IF (: DATA >= : PDATA1) THEN
BEGIN
IF (INICIO_CONTA = 'S') THEN
BEGIN
INICIO_CONTA = 'N';
TOTAL_GERAL = TOTAL_GERAL + SALDO;
END
ELSE
begin
if (:PNAOMOSTRARSALDO = 0) then
begin
TOTAL_GERAL = TOTAL_GERAL + DEPOSITO - PAGAMENTO;
end
else
TOTAL_GERAL = 0;
end
SELECT REPLACE (CT.NOME, ' ', ' ') AS NOME_CONTA
FROM CONTA CT
WHERE CT.ID = :ID_CONTA
INTO : NOME_CONTA;
SELECT PC.NOME
FROM PLANODECONTAS PC
WHERE PC.ID = :ID_PLANCONTA
INTO : NOME;
SELECT CC.NOME
FROM CENTRODECUSTO CC
WHERE CC.ID = :ID_CCUSTO
INTO : NOME_CCUSTO;
SUSPEND;
END
END
END |
_________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Seg Mar 01, 2021 3:34 pm Assunto: |
|
|
O problema parece estar no select
Código: | SELECT mc.id_conta,
MC.id,
MC.data,
MC.numero,
MC.id_cliente,
CASE
WHEN MC.favorecido IS NULL THEN C.nomefantasia
ELSE MC.favorecido
END,
MC.id_planconta,
MC.id_ccusto,
MC.historico,
MC.status,
MC.tipo,
SUM(MC.valor * CASE
WHEN MC.tipo IN ( 0, 3 ) THEN 1
ELSE 0
END),
SUM(MC.valor * CASE
WHEN MC.tipo IN ( 1, 2 ) THEN 1
ELSE 0
END),
SUM(MC.valor * CASE
WHEN MC.tipo IN ( 0, 3 ) THEN 1
ELSE -1
END),
Iif(MC.tipo IN ( 1, 2 ), 'D', 'C')
FROM movconta MC
left join cliente C
ON C.id = MC.id_cliente
inner join conta CT
ON CT.id = MC.id_conta
inner join usuariocontas UC
ON UC.conta_id = CT.id
WHERE Position(Cast(MC.id_conta AS VARCHAR(255))
|| ',', :PID_CONTA) > 0
AND MC.data BETWEEN :pdata1 AND : PDATA2
AND ( ( Upper(C.nomefantasia) LIKE :PCONDICAO )
OR ( Upper(MC.favorecido) LIKE :PCONDICAO )
OR ( MC.id_cliente IS NULL ) )
AND UC.cd_usuario LIKE :PUSUARIO
GROUP BY 1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11
ORDER BY mc.id_conta,
MC.data,
MC.id |
Esta somando 3X o VALOR, ou seja o SUM esta triplicando o valor. Acho que não deve ter um sum nesse campos _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Seg Mar 01, 2021 3:47 pm Assunto: |
|
|
Assim parece dar certo os valores
Código: | create or alter procedure XSP_REL_MOVIMENTACAO (
PID_CONTA varchar(1025),
PDATA1 date,
PDATA2 date,
PSTATUS varchar(255),
PCONDICAO varchar(255),
PNAOMOSTRARSALDO integer,
PUSUARIO varchar(100))
returns (
ID_CONTA integer,
NOME_CONTA varchar(100) character set WIN1252 collate WIN_PTBR,
ID integer,
DATA date,
NUMERO varchar(20),
ID_CLIENTE integer,
FAVORECIDO varchar(100) character set WIN1252 collate WIN_PTBR,
ID_PLANCONTA integer,
NOME varchar(100) character set WIN1252 collate WIN_PTBR,
HISTORICO varchar(200) character set WIN1252 collate WIN_PTBR,
SALDO_ANT numeric(15,2),
DEPOSITO numeric(15,2),
PAGAMENTO numeric(15,2),
SALDO numeric(15,2),
TIPO integer,
STATUS integer,
ID_CCUSTO integer,
NOME_CCUSTO varchar(100) character set WIN1252 collate WIN_PTBR,
VALOR numeric(15,2),
D_C char(1),
TOTAL_GERAL numeric(15,2),
SALDO_POR_CONTA numeric(15,2),
TOTAL_GERAL_DEBITO numeric(15,2),
TOTAL_GERAL_CREDITO numeric(15,2))
as
declare variable ID_CONTA_ANT integer;
declare variable INICIO_CONTA char(1);
BEGIN
ID_CONTA_ANT = 0;
TOTAL_GERAL = 0;
total_geral_debito = 0;
total_geral_credito = 0;
FOR
SELECT
MC.ID_CONTA,
MC.ID,
MC.DATA,
MC.NUMERO,
MC.ID_CLIENTE,
CASE WHEN MC.FAVORECIDO IS NULL THEN
C.NOMEFANTASIA
ELSE
MC.FAVORECIDO
END,
MC.ID_PLANCONTA,
MC.ID_CCUSTO,
MC.HISTORICO,
MC.STATUS,
MC.TIPO,
MC.VALOR * CASE WHEN MC.TIPO IN (0, 3) THEN 1 ELSE 0 END,
MC.VALOR * CASE WHEN MC.TIPO IN (1, 2) THEN 1 ELSE 0 END,
MC.VALOR * CASE WHEN MC.TIPO IN (0, 3) THEN 1 ELSE -1 END,
IIF( MC.TIPO IN (1, 2), 'D', 'C')
FROM MOVCONTA MC
LEFT JOIN CLIENTE C ON C.ID = MC.ID_CLIENTE
INNER JOIN USUARIOCONTAS UC ON UC.CONTA_ID = MC.ID_CONTA
WHERE POSITION(cast(MC.ID_CONTA as varchar(255)) || ',', :PID_CONTA) > 0 AND
MC.DATA <= : PDATA2
AND ( (UPPER(C.NOMEFANTASIA) LIKE :PCONDICAO) OR
(UPPER(MC.FAVORECIDO) LIKE :PCONDICAO) or (mc.id_cliente is null) )
AND UC.CD_USUARIO LIKE :PUSUARIO
GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14
ORDER BY mc.id_conta, MC.DATA, MC.ID
INTO : ID_CONTA, : ID, : DATA, : NUMERO, : ID_CLIENTE, : FAVORECIDO,
: ID_PLANCONTA, : ID_CCUSTO,
: HISTORICO, : STATUS, : TIPO,
: DEPOSITO, : PAGAMENTO,
: VALOR, : D_C
DO BEGIN
IF (ID_CONTA <> ID_CONTA_ANT) THEN
BEGIN
ID_CONTA_ANT = ID_CONTA;
INICIO_CONTA = 'S';
SALDO = 0;
saldo_por_conta = 0;
END
if (:PNAOMOSTRARSALDO = 0) then
begin
SALDO_ANT = SALDO;
end
else
saldo_ant = 0;
IF (: STATUS <> 30) THEN
BEGIN
if (: data >= : pdata1 ) then
saldo_por_conta = saldo_por_conta + DEPOSITO - PAGAMENTO;
total_geral_credito = total_geral_credito + deposito;
total_geral_debito = total_geral_debito +- pagamento;
if (:PNAOMOSTRARSALDO = 0) then
begin
SALDO = SALDO + DEPOSITO - PAGAMENTO;
end
else
SALDO = 0;
END
IF (: DATA >= : PDATA1) THEN
BEGIN
IF (INICIO_CONTA = 'S') THEN
BEGIN
INICIO_CONTA = 'N';
TOTAL_GERAL = TOTAL_GERAL + SALDO;
END
ELSE
begin
if (:PNAOMOSTRARSALDO = 0) then
begin
TOTAL_GERAL = TOTAL_GERAL + DEPOSITO - PAGAMENTO;
end
else
TOTAL_GERAL = 0;
end
SELECT REPLACE (CT.NOME, ' ', ' ') AS NOME_CONTA
FROM CONTA CT
WHERE CT.ID = :ID_CONTA
INTO : NOME_CONTA;
SELECT PC.NOME
FROM PLANODECONTAS PC
WHERE PC.ID = :ID_PLANCONTA
INTO : NOME;
SELECT CC.NOME
FROM CENTRODECUSTO CC
WHERE CC.ID = :ID_CCUSTO
INTO : NOME_CCUSTO;
SUSPEND;
END
END
END |
_________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qua Mar 03, 2021 3:55 pm Assunto: |
|
|
Preciso de um total_geral_anterior ao filtro
Fiz assim
Código: | create or alter procedure XSP_REL_MOVBALANCETE (
PID_CONTA varchar(1025),
PDATA1 date,
PDATA2 date,
PSTATUS varchar(255),
PCONDICAO varchar(255),
PNAOMOSTRARSALDO integer,
PUSUARIO varchar(100))
returns (
ID_CONTA integer,
NOME_CONTA varchar(100) character set WIN1252 collate WIN_PTBR,
ID integer,
DATA date,
NUMERO varchar(20),
ID_CLIENTE integer,
FAVORECIDO varchar(100) character set WIN1252 collate WIN_PTBR,
ID_PLANCONTA integer,
NOME varchar(100) character set WIN1252 collate WIN_PTBR,
HISTORICO varchar(200) character set WIN1252 collate WIN_PTBR,
SALDO_ANT numeric(15,2),
DEPOSITO numeric(15,2),
PAGAMENTO numeric(15,2),
SALDO numeric(15,2),
TIPO integer,
STATUS integer,
ID_CCUSTO integer,
NOME_CCUSTO varchar(100) character set WIN1252 collate WIN_PTBR,
VALOR numeric(15,2),
NOME_TIPO_RECEITA_DESPESA varchar(100),
D_C char(1),
TOTAL_GERAL numeric(15,2),
SALDO_POR_PLANOCONTA numeric(15,2),
TOTAL_GERAL_DEBITO numeric(15,2),
TOTAL_GERAL_CREDITO numeric(15,2),
TOTAL_GERAL_ANTERIOR numeric(15,2))
as
declare variable ID_CONTA_ANT integer;
declare variable INICIO_PLANOCONTA char(1);
declare variable VID_PLANCONTA integer;
declare variable VNOME_TIPO_RECEITA_DESPESA varchar(100);
BEGIN
ID_CONTA_ANT = 0;
total_geral_debito = 0;
total_geral_credito = 0;
VID_PLANCONTA = 0;
vnome_tipo_receita_despesa = '';
FOR
SELECT
MC.ID_CONTA,
MC.ID,
MC.DATA,
MC.NUMERO,
MC.ID_CLIENTE,
CASE WHEN MC.FAVORECIDO IS NULL THEN
C.NOMEFANTASIA
ELSE
MC.FAVORECIDO
END,
MC.ID_PLANCONTA,
MC.ID_CCUSTO,
MC.HISTORICO,
MC.STATUS,
MC.TIPO,
CASE WHEN MC.TIPO IN (0, 3) THEN '< RECEITAS >'
WHEN MC.TIPO IN (1, 2) THEN '< DESPESAS >'
END AS NOME_TIPO_RECEITA_DESPESA,
MC.VALOR * CASE WHEN MC.TIPO IN (0, 3) THEN 1 ELSE 0 END,
MC.VALOR * CASE WHEN MC.TIPO IN (1, 2) THEN 1 ELSE 0 END,
MC.VALOR * CASE WHEN MC.TIPO IN (0, 3) THEN 1 ELSE -1 END,
IIF( MC.TIPO IN (1, 2), 'D', 'C')
FROM MOVCONTA MC
LEFT JOIN CLIENTE C ON C.ID = MC.ID_CLIENTE
LEFT JOIN USUARIOCONTAS UC ON UC.CONTA_ID = MC.ID_CONTA
WHERE POSITION(cast(MC.ID_CONTA as varchar(1025)) || ',', :PID_CONTA) > 0
AND MC.DATA <= : PDATA2
AND ( (UPPER(C.NOMEFANTASIA) LIKE :PCONDICAO) OR
(UPPER(MC.FAVORECIDO) LIKE :PCONDICAO) )
AND ((UC.CD_USUARIO LIKE :PUSUARIO) or (UC.cd_usuario IS NULL))
ORDER BY NOME_TIPO_RECEITA_DESPESA DESC, MC.ID_PLANCONTA, MC.Data, MC.ID
INTO : ID_CONTA, : ID, : DATA, : NUMERO, : ID_CLIENTE, : FAVORECIDO,
: ID_PLANCONTA, : ID_CCUSTO, : HISTORICO, : STATUS, : TIPO, : NOME_TIPO_RECEITA_DESPESA,
: DEPOSITO, : PAGAMENTO, : VALOR, : D_C
DO BEGIN
if (nome_tipo_receita_despesa <> vnome_tipo_receita_despesa) then
BEGIN
TOTAL_GERAL = 0;
vnome_tipo_receita_despesa = nome_tipo_receita_despesa;
END
if (id_planconta <> vid_planconta) then
BEGIN
INICIO_PLANOCONTA = 'S';
saldo_por_planoconta = 0;
SALDO = 0;
vid_planconta = id_planconta;
END
if (:PNAOMOSTRARSALDO = 0) then
begin
SALDO_ANT = SALDO;
end
else
saldo_ant = 0;
total_geral_anterior = total_geral;
IF (: STATUS <> 30) THEN
BEGIN
if (: data >= : pdata1 ) then
saldo_por_planoconta = saldo_por_planoconta + DEPOSITO - PAGAMENTO;
total_geral_credito = total_geral_credito + deposito;
total_geral_debito = total_geral_debito +- pagamento;
if (:PNAOMOSTRARSALDO = 0) then
begin
SALDO = SALDO + DEPOSITO - PAGAMENTO;
end
else
SALDO = 0;
END
IF (: DATA >= : PDATA1) THEN
BEGIN
IF (INICIO_PLANOCONTA = 'S') THEN
BEGIN
INICIO_PLANOCONTA = 'N';
TOTAL_GERAL = TOTAL_GERAL + SALDO;
END
ELSE
begin
if (:PNAOMOSTRARSALDO = 0) then
begin
TOTAL_GERAL = TOTAL_GERAL + DEPOSITO - PAGAMENTO;
end
else
TOTAL_GERAL = 0;
end
SELECT REPLACE (CT.NOME, ' ', ' ') AS NOME_CONTA
FROM CONTA CT
WHERE CT.ID = :ID_CONTA
INTO : NOME_CONTA;
SELECT PC.NOME
FROM PLANODECONTAS PC
WHERE PC.ID = :ID_PLANCONTA
INTO : NOME;
SELECT CC.NOME
FROM CENTRODECUSTO CC
WHERE CC.ID = :ID_CCUSTO
INTO : NOME_CCUSTO;
SUSPEND;
END
END
END |
Passando o valor aqui
total_geral_anterior = total_geral;
Mais não deu certo _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Mar 03, 2021 5:09 pm Assunto: |
|
|
Experimente a versão abaixo:
Código: | IF (INICIO_PLANOCONTA = 'S') THEN
BEGIN
INICIO_PLANOCONTA = 'N';
TOTAL_GERAL_ANTERIOR = TOTAL_GERAL_ANTERIOR + SALDO;
TOTAL_GERAL = TOTAL_GERAL + SALDO;
END
ELSE
begin
if (:PNAOMOSTRARSALDO = 0) then
begin
TOTAL_GERAL = TOTAL_GERAL + DEPOSITO - PAGAMENTO;
end
else
begin
TOTAL_GERAL_ANTERIOR = 0;
TOTAL_GERAL = 0;
end;
end |
Espero que ajude |
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qua Mar 03, 2021 5:32 pm Assunto: |
|
|
imex escreveu: | Experimente a versão abaixo:
Código: | IF (INICIO_PLANOCONTA = 'S') THEN
BEGIN
INICIO_PLANOCONTA = 'N';
TOTAL_GERAL_ANTERIOR = TOTAL_GERAL_ANTERIOR + SALDO;
TOTAL_GERAL = TOTAL_GERAL + SALDO;
END
ELSE
begin
if (:PNAOMOSTRARSALDO = 0) then
begin
TOTAL_GERAL = TOTAL_GERAL + DEPOSITO - PAGAMENTO;
end
else
begin
TOTAL_GERAL_ANTERIOR = 0;
TOTAL_GERAL = 0;
end;
end |
Espero que ajude |
Voce diz assim?
Código: | create or alter procedure XSP_REL_MOVBALANCETE (
PID_CONTA varchar(1025),
PDATA1 date,
PDATA2 date,
PSTATUS varchar(255),
PCONDICAO varchar(255),
PNAOMOSTRARSALDO integer,
PUSUARIO varchar(100))
returns (
ID_CONTA integer,
NOME_CONTA varchar(100) character set WIN1252 collate WIN_PTBR,
ID integer,
DATA date,
NUMERO varchar(20),
ID_CLIENTE integer,
FAVORECIDO varchar(100) character set WIN1252 collate WIN_PTBR,
ID_PLANCONTA integer,
NOME varchar(100) character set WIN1252 collate WIN_PTBR,
HISTORICO varchar(200) character set WIN1252 collate WIN_PTBR,
SALDO_ANT numeric(15,2),
DEPOSITO numeric(15,2),
PAGAMENTO numeric(15,2),
SALDO numeric(15,2),
TIPO integer,
STATUS integer,
ID_CCUSTO integer,
NOME_CCUSTO varchar(100) character set WIN1252 collate WIN_PTBR,
VALOR numeric(15,2),
NOME_TIPO_RECEITA_DESPESA varchar(100),
D_C char(1),
TOTAL_GERAL numeric(15,2),
SALDO_POR_PLANOCONTA numeric(15,2),
TOTAL_GERAL_DEBITO numeric(15,2),
TOTAL_GERAL_CREDITO numeric(15,2),
TOTAL_GERAL_ANTERIOR numeric(15,2))
as
declare variable ID_CONTA_ANT integer;
declare variable INICIO_PLANOCONTA char(1);
declare variable VID_PLANCONTA integer;
declare variable VNOME_TIPO_RECEITA_DESPESA varchar(100);
BEGIN
ID_CONTA_ANT = 0;
total_geral_debito = 0;
total_geral_credito = 0;
VID_PLANCONTA = 0;
vnome_tipo_receita_despesa = '';
FOR
SELECT
MC.ID_CONTA,
MC.ID,
MC.DATA,
MC.NUMERO,
MC.ID_CLIENTE,
CASE WHEN MC.FAVORECIDO IS NULL THEN
C.NOMEFANTASIA
ELSE
MC.FAVORECIDO
END,
MC.ID_PLANCONTA,
MC.ID_CCUSTO,
MC.HISTORICO,
MC.STATUS,
MC.TIPO,
CASE WHEN MC.TIPO IN (0, 3) THEN '< RECEITAS >'
WHEN MC.TIPO IN (1, 2) THEN '< DESPESAS >'
END AS NOME_TIPO_RECEITA_DESPESA,
MC.VALOR * CASE WHEN MC.TIPO IN (0, 3) THEN 1 ELSE 0 END,
MC.VALOR * CASE WHEN MC.TIPO IN (1, 2) THEN 1 ELSE 0 END,
MC.VALOR * CASE WHEN MC.TIPO IN (0, 3) THEN 1 ELSE -1 END,
IIF( MC.TIPO IN (1, 2), 'D', 'C')
FROM MOVCONTA MC
LEFT JOIN CLIENTE C ON C.ID = MC.ID_CLIENTE
LEFT JOIN USUARIOCONTAS UC ON UC.CONTA_ID = MC.ID_CONTA
WHERE POSITION(cast(MC.ID_CONTA as varchar(1025)) || ',', :PID_CONTA) > 0
AND MC.DATA <= : PDATA2
AND ( (UPPER(C.NOMEFANTASIA) LIKE :PCONDICAO) OR
(UPPER(MC.FAVORECIDO) LIKE :PCONDICAO) )
AND ((UC.CD_USUARIO LIKE :PUSUARIO) or (UC.cd_usuario IS NULL))
ORDER BY NOME_TIPO_RECEITA_DESPESA DESC, MC.ID_PLANCONTA, MC.Data, MC.ID
INTO : ID_CONTA, : ID, : DATA, : NUMERO, : ID_CLIENTE, : FAVORECIDO,
: ID_PLANCONTA, : ID_CCUSTO, : HISTORICO, : STATUS, : TIPO, : NOME_TIPO_RECEITA_DESPESA,
: DEPOSITO, : PAGAMENTO, : VALOR, : D_C
DO BEGIN
if (nome_tipo_receita_despesa <> vnome_tipo_receita_despesa) then
BEGIN
TOTAL_GERAL = 0;
vnome_tipo_receita_despesa = nome_tipo_receita_despesa;
END
if (id_planconta <> vid_planconta) then
BEGIN
INICIO_PLANOCONTA = 'S';
saldo_por_planoconta = 0;
SALDO = 0;
vid_planconta = id_planconta;
END
if (:PNAOMOSTRARSALDO = 0) then
begin
SALDO_ANT = SALDO;
end
else
saldo_ant = 0;
--TOTAL_GERAL_ANTERIOR = TOTAL_GERAL;
IF (: STATUS <> 30) THEN
BEGIN
if (: data >= : pdata1 ) then
saldo_por_planoconta = saldo_por_planoconta + DEPOSITO - PAGAMENTO;
total_geral_credito = total_geral_credito + deposito;
total_geral_debito = total_geral_debito +- pagamento;
if (:PNAOMOSTRARSALDO = 0) then
begin
SALDO = SALDO + DEPOSITO - PAGAMENTO;
end
else
SALDO = 0;
END
IF (: DATA >= : PDATA1) THEN
BEGIN
IF (INICIO_PLANOCONTA = 'S') THEN
BEGIN
INICIO_PLANOCONTA = 'N';
TOTAL_GERAL_ANTERIOR = TOTAL_GERAL_ANTERIOR + SALDO;
TOTAL_GERAL = TOTAL_GERAL + SALDO;
END
ELSE
begin
if (:PNAOMOSTRARSALDO = 0) then
begin
TOTAL_GERAL = TOTAL_GERAL + DEPOSITO - PAGAMENTO;
end
else
begin
TOTAL_GERAL_ANTERIOR = 0;
TOTAL_GERAL = 0;
end
end
SELECT REPLACE (CT.NOME, ' ', ' ') AS NOME_CONTA
FROM CONTA CT
WHERE CT.ID = :ID_CONTA
INTO : NOME_CONTA;
SELECT PC.NOME
FROM PLANODECONTAS PC
WHERE PC.ID = :ID_PLANCONTA
INTO : NOME;
SELECT CC.NOME
FROM CENTRODECUSTO CC
WHERE CC.ID = :ID_CCUSTO
INTO : NOME_CCUSTO;
SUSPEND;
END
END
END |
Se for ai vem NULL o campo _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qua Mar 03, 2021 5:44 pm Assunto: |
|
|
Faltou inicializar a variavel = 0
Mais deu diferença
Tenho nesse campo assim
113.388,16
98.268,07
14.148,68
225.804,91
Mais ele retornou
226.642,32
Como esta a SP
Código: | CREATE OR ALTER procedure XSP_REL_MOVBALANCETE (
PID_CONTA varchar(1025),
PDATA1 date,
PDATA2 date,
PSTATUS varchar(255),
PCONDICAO varchar(255),
PNAOMOSTRARSALDO integer,
PUSUARIO varchar(100))
returns (
ID_CONTA integer,
NOME_CONTA varchar(100) character set WIN1252 collate WIN_PTBR,
ID integer,
DATA date,
NUMERO varchar(20),
ID_CLIENTE integer,
FAVORECIDO varchar(100) character set WIN1252 collate WIN_PTBR,
ID_PLANCONTA integer,
NOME varchar(100) character set WIN1252 collate WIN_PTBR,
HISTORICO varchar(200) character set WIN1252 collate WIN_PTBR,
SALDO_ANT numeric(15,2),
DEPOSITO numeric(15,2),
PAGAMENTO numeric(15,2),
SALDO numeric(15,2),
TIPO integer,
STATUS integer,
ID_CCUSTO integer,
NOME_CCUSTO varchar(100) character set WIN1252 collate WIN_PTBR,
VALOR numeric(15,2),
NOME_TIPO_RECEITA_DESPESA varchar(100),
D_C char(1),
TOTAL_GERAL numeric(15,2),
SALDO_POR_PLANOCONTA numeric(15,2),
TOTAL_GERAL_DEBITO numeric(15,2),
TOTAL_GERAL_CREDITO numeric(15,2),
TOTAL_GERAL_ANTERIOR numeric(15,2))
as
declare variable ID_CONTA_ANT integer;
declare variable INICIO_PLANOCONTA char(1);
declare variable VID_PLANCONTA integer;
declare variable VNOME_TIPO_RECEITA_DESPESA varchar(100);
BEGIN
ID_CONTA_ANT = 0;
total_geral_debito = 0;
total_geral_credito = 0;
VID_PLANCONTA = 0;
vnome_tipo_receita_despesa = '';
FOR
SELECT
MC.ID_CONTA,
MC.ID,
MC.DATA,
MC.NUMERO,
MC.ID_CLIENTE,
CASE WHEN MC.FAVORECIDO IS NULL THEN
C.NOMEFANTASIA
ELSE
MC.FAVORECIDO
END,
MC.ID_PLANCONTA,
MC.ID_CCUSTO,
MC.HISTORICO,
MC.STATUS,
MC.TIPO,
CASE WHEN MC.TIPO IN (0, 3) THEN '< RECEITAS >'
WHEN MC.TIPO IN (1, 2) THEN '< DESPESAS >'
END AS NOME_TIPO_RECEITA_DESPESA,
MC.VALOR * CASE WHEN MC.TIPO IN (0, 3) THEN 1 ELSE 0 END,
MC.VALOR * CASE WHEN MC.TIPO IN (1, 2) THEN 1 ELSE 0 END,
MC.VALOR * CASE WHEN MC.TIPO IN (0, 3) THEN 1 ELSE -1 END,
IIF( MC.TIPO IN (1, 2), 'D', 'C')
FROM MOVCONTA MC
LEFT JOIN CLIENTE C ON C.ID = MC.ID_CLIENTE
LEFT JOIN USUARIOCONTAS UC ON UC.CONTA_ID = MC.ID_CONTA
WHERE POSITION(cast(MC.ID_CONTA as varchar(1025)) || ',', :PID_CONTA) > 0
AND MC.DATA <= : PDATA2
AND ( (UPPER(C.NOMEFANTASIA) LIKE :PCONDICAO) OR
(UPPER(MC.FAVORECIDO) LIKE :PCONDICAO) )
AND ((UC.CD_USUARIO LIKE :PUSUARIO) or (UC.cd_usuario IS NULL))
ORDER BY NOME_TIPO_RECEITA_DESPESA DESC, MC.ID_PLANCONTA, MC.Data, MC.ID
INTO : ID_CONTA, : ID, : DATA, : NUMERO, : ID_CLIENTE, : FAVORECIDO,
: ID_PLANCONTA, : ID_CCUSTO, : HISTORICO, : STATUS, : TIPO, : NOME_TIPO_RECEITA_DESPESA,
: DEPOSITO, : PAGAMENTO, : VALOR, : D_C
DO BEGIN
if (nome_tipo_receita_despesa <> vnome_tipo_receita_despesa) then
BEGIN
TOTAL_GERAL = 0;
TOTAL_GERAL_ANTERIOR = 0;
vnome_tipo_receita_despesa = nome_tipo_receita_despesa;
END
if (id_planconta <> vid_planconta) then
BEGIN
INICIO_PLANOCONTA = 'S';
saldo_por_planoconta = 0;
SALDO = 0;
vid_planconta = id_planconta;
END
if (:PNAOMOSTRARSALDO = 0) then
begin
SALDO_ANT = SALDO;
end
else
saldo_ant = 0;
IF (: STATUS <> 30) THEN
BEGIN
if (: data >= : pdata1 ) then
saldo_por_planoconta = saldo_por_planoconta + DEPOSITO - PAGAMENTO;
total_geral_credito = total_geral_credito + deposito;
total_geral_debito = total_geral_debito +- pagamento;
if (:PNAOMOSTRARSALDO = 0) then
begin
SALDO = SALDO + DEPOSITO - PAGAMENTO;
end
else
SALDO = 0;
END
IF (: DATA >= : PDATA1) THEN
BEGIN
IF (INICIO_PLANOCONTA = 'S') THEN
BEGIN
INICIO_PLANOCONTA = 'N';
TOTAL_GERAL_ANTERIOR = TOTAL_GERAL_ANTERIOR + SALDO;
TOTAL_GERAL = TOTAL_GERAL + SALDO;
END
ELSE
begin
if (:PNAOMOSTRARSALDO = 0) then
begin
TOTAL_GERAL = TOTAL_GERAL + DEPOSITO - PAGAMENTO;
end
else
begin
TOTAL_GERAL_ANTERIOR = 0;
TOTAL_GERAL = 0;
end
end
SELECT REPLACE (CT.NOME, ' ', ' ') AS NOME_CONTA
FROM CONTA CT
WHERE CT.ID = :ID_CONTA
INTO : NOME_CONTA;
SELECT PC.NOME
FROM PLANODECONTAS PC
WHERE PC.ID = :ID_PLANCONTA
INTO : NOME;
SELECT CC.NOME
FROM CENTRODECUSTO CC
WHERE CC.ID = :ID_CCUSTO
INTO : NOME_CCUSTO;
SUSPEND;
END
END
END |
_________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qua Mar 03, 2021 5:47 pm Assunto: |
|
|
adriano_servitec escreveu: | Faltou inicializar a variavel = 0
Mais deu diferença
Tenho nesse campo assim
113.388,16
98.268,07
14.148,68
225.804,91
Mais ele retornou
226.642,32
Como esta a SP
Código: | CREATE OR ALTER procedure XSP_REL_MOVBALANCETE (
PID_CONTA varchar(1025),
PDATA1 date,
PDATA2 date,
PSTATUS varchar(255),
PCONDICAO varchar(255),
PNAOMOSTRARSALDO integer,
PUSUARIO varchar(100))
returns (
ID_CONTA integer,
NOME_CONTA varchar(100) character set WIN1252 collate WIN_PTBR,
ID integer,
DATA date,
NUMERO varchar(20),
ID_CLIENTE integer,
FAVORECIDO varchar(100) character set WIN1252 collate WIN_PTBR,
ID_PLANCONTA integer,
NOME varchar(100) character set WIN1252 collate WIN_PTBR,
HISTORICO varchar(200) character set WIN1252 collate WIN_PTBR,
SALDO_ANT numeric(15,2),
DEPOSITO numeric(15,2),
PAGAMENTO numeric(15,2),
SALDO numeric(15,2),
TIPO integer,
STATUS integer,
ID_CCUSTO integer,
NOME_CCUSTO varchar(100) character set WIN1252 collate WIN_PTBR,
VALOR numeric(15,2),
NOME_TIPO_RECEITA_DESPESA varchar(100),
D_C char(1),
TOTAL_GERAL numeric(15,2),
SALDO_POR_PLANOCONTA numeric(15,2),
TOTAL_GERAL_DEBITO numeric(15,2),
TOTAL_GERAL_CREDITO numeric(15,2),
TOTAL_GERAL_ANTERIOR numeric(15,2))
as
declare variable ID_CONTA_ANT integer;
declare variable INICIO_PLANOCONTA char(1);
declare variable VID_PLANCONTA integer;
declare variable VNOME_TIPO_RECEITA_DESPESA varchar(100);
BEGIN
ID_CONTA_ANT = 0;
total_geral_debito = 0;
total_geral_credito = 0;
VID_PLANCONTA = 0;
vnome_tipo_receita_despesa = '';
FOR
SELECT
MC.ID_CONTA,
MC.ID,
MC.DATA,
MC.NUMERO,
MC.ID_CLIENTE,
CASE WHEN MC.FAVORECIDO IS NULL THEN
C.NOMEFANTASIA
ELSE
MC.FAVORECIDO
END,
MC.ID_PLANCONTA,
MC.ID_CCUSTO,
MC.HISTORICO,
MC.STATUS,
MC.TIPO,
CASE WHEN MC.TIPO IN (0, 3) THEN '< RECEITAS >'
WHEN MC.TIPO IN (1, 2) THEN '< DESPESAS >'
END AS NOME_TIPO_RECEITA_DESPESA,
MC.VALOR * CASE WHEN MC.TIPO IN (0, 3) THEN 1 ELSE 0 END,
MC.VALOR * CASE WHEN MC.TIPO IN (1, 2) THEN 1 ELSE 0 END,
MC.VALOR * CASE WHEN MC.TIPO IN (0, 3) THEN 1 ELSE -1 END,
IIF( MC.TIPO IN (1, 2), 'D', 'C')
FROM MOVCONTA MC
LEFT JOIN CLIENTE C ON C.ID = MC.ID_CLIENTE
LEFT JOIN USUARIOCONTAS UC ON UC.CONTA_ID = MC.ID_CONTA
WHERE POSITION(cast(MC.ID_CONTA as varchar(1025)) || ',', :PID_CONTA) > 0
AND MC.DATA <= : PDATA2
AND ( (UPPER(C.NOMEFANTASIA) LIKE :PCONDICAO) OR
(UPPER(MC.FAVORECIDO) LIKE :PCONDICAO) )
AND ((UC.CD_USUARIO LIKE :PUSUARIO) or (UC.cd_usuario IS NULL))
ORDER BY NOME_TIPO_RECEITA_DESPESA DESC, MC.ID_PLANCONTA, MC.Data, MC.ID
INTO : ID_CONTA, : ID, : DATA, : NUMERO, : ID_CLIENTE, : FAVORECIDO,
: ID_PLANCONTA, : ID_CCUSTO, : HISTORICO, : STATUS, : TIPO, : NOME_TIPO_RECEITA_DESPESA,
: DEPOSITO, : PAGAMENTO, : VALOR, : D_C
DO BEGIN
if (nome_tipo_receita_despesa <> vnome_tipo_receita_despesa) then
BEGIN
TOTAL_GERAL = 0;
TOTAL_GERAL_ANTERIOR = 0;
vnome_tipo_receita_despesa = nome_tipo_receita_despesa;
END
if (id_planconta <> vid_planconta) then
BEGIN
INICIO_PLANOCONTA = 'S';
saldo_por_planoconta = 0;
SALDO = 0;
vid_planconta = id_planconta;
END
if (:PNAOMOSTRARSALDO = 0) then
begin
SALDO_ANT = SALDO;
end
else
saldo_ant = 0;
IF (: STATUS <> 30) THEN
BEGIN
if (: data >= : pdata1 ) then
saldo_por_planoconta = saldo_por_planoconta + DEPOSITO - PAGAMENTO;
total_geral_credito = total_geral_credito + deposito;
total_geral_debito = total_geral_debito +- pagamento;
if (:PNAOMOSTRARSALDO = 0) then
begin
SALDO = SALDO + DEPOSITO - PAGAMENTO;
end
else
SALDO = 0;
END
IF (: DATA >= : PDATA1) THEN
BEGIN
IF (INICIO_PLANOCONTA = 'S') THEN
BEGIN
INICIO_PLANOCONTA = 'N';
TOTAL_GERAL_ANTERIOR = TOTAL_GERAL_ANTERIOR + SALDO;
TOTAL_GERAL = TOTAL_GERAL + SALDO;
END
ELSE
begin
if (:PNAOMOSTRARSALDO = 0) then
begin
TOTAL_GERAL = TOTAL_GERAL + DEPOSITO - PAGAMENTO;
end
else
begin
TOTAL_GERAL_ANTERIOR = 0;
TOTAL_GERAL = 0;
end
end
SELECT REPLACE (CT.NOME, ' ', ' ') AS NOME_CONTA
FROM CONTA CT
WHERE CT.ID = :ID_CONTA
INTO : NOME_CONTA;
SELECT PC.NOME
FROM PLANODECONTAS PC
WHERE PC.ID = :ID_PLANCONTA
INTO : NOME;
SELECT CC.NOME
FROM CENTRODECUSTO CC
WHERE CC.ID = :ID_CCUSTO
INTO : NOME_CCUSTO;
SUSPEND;
END
END
END |
|
Achei o problema Imex
tem que ser assim
Código: | TOTAL_GERAL_ANTERIOR = TOTAL_GERAL_ANTERIOR + saldo_ant; |
Resolvido amigo.
Obrigado _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|