|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qui Mar 11, 2021 5:21 pm Assunto: |
|
|
Experimente acrescentar um Cast:
Código: | (EXTRACT(YEAR FROM data) - cast(:panoini as integer)) * 12 +
EXTRACT(MONTH FROM data) - cast(:pmesini as integer) as Coluna, |
Mas acho que com a query na aplicação ou SP não será necessário acrescentar esses Casts.
Espero que ajude |
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
Voltar ao Topo |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Mar 12, 2021 10:25 am Assunto: |
|
|
Segue uma sugestão para testes:
Código: | create or alter procedure Minha_SP (
PMESINI integer,
PANOINI integer,
PDATAINI date,
PDATAFIM date)
returns (
TIPO integer,
PLANO_CONTAS varchar(100),
COLUNA0 decimal(18, 2),
COLUNA1 decimal(18, 2),
COLUNA2 decimal(18, 2),
COLUNA3 decimal(18, 2),
COLUNA4 decimal(18, 2),
COLUNA5 decimal(18, 2),
COLUNA6 decimal(18, 2),
COLUNA7 decimal(18, 2),
COLUNA8 decimal(18, 2),
COLUNA9 decimal(18, 2),
COLUNA10 decimal(18, 2),
COLUNA11 decimal(18, 2),
SOMA_COLUNA decimal(18, 2)
as
declare variable ANT_TIPO integer;
declare variable REG_TIPO integer;
declare variable REG_PLANO_CONTAS varchar(100);
declare variable REG_COLUNA0 decimal(18, 2);
declare variable TOT_COLUNA0 decimal(18, 2);
declare variable GER_COLUNA0 decimal(18, 2);
begin
TIPO_ANT = -1;
GER_COLUNA0 = 0;
WITH CTE_COL AS
(
SELECT
tipo,
id_planconta,
(EXTRACT(YEAR FROM data) - :panoini) * 12 + EXTRACT(MONTH FROM data) - :pmesini as Coluna,
SUM(valor) as valor
FROM movconta
WHERE
data between :pdataini AND :pdatafim AND
TIPO IN (0, 1)
GROUP BY
1, 2, 3
)
FOR
SELECT
a.tipo,
b.nome AS plano_contas,
SUM(IIF(a.Coluna = 0, a.valor, 0)) AS COLUNA0
FROM CTE_COL A
INNER JOIN planodecontas b ON b.id = A.id_planconta
group BY 1, 2
order by tipo, plano_contas
INTO :REG_TIPO, :REG_PLANO_CONTAS, :REG_COLUNA0
DO BEGIN
IF (REG_TIPO <> ANT_TIPO) THEN
BEGIN
IF (ANT_TIPO <> -1) THEN
BEGIN
TIPO = ANT_TIPO;
PLANO_CONTAS = 'TOTAL TIPO';
COLUNA0 = TOT_COLUNA0;
SUSPEND;
END;
GER_COLUNA0 = GER_COLUNA0 + TOT_COLUNA0;
TOT_COLUNA0 = 0;
ANT_TIPO = TIPO;
END
TOT_COLUNA0 = TOT_COLUNA0 + REG_COLUNA0;
TIPO = REG_TIPO;
PLANO_CONTAS = REG_PLANO_CONTAS;
COLUNA0 = REG_COLUNA0;
SUSPEND;
END
GER_COLUNA0 = GER_COLUNA0 + TOT_COLUNA0;
TIPO = ANT_TIPO;
PLANO_CONTAS = 'TOTAL TIPO';
COLUNA0 = TOT_COLUNA0;
SUSPEND;
TIPO = NULL;
PLANO_CONTAS = 'TOTAL GERAL';
COLUNA0 = GER_COLUNA0;
SUSPEND;
end^ |
Coloquei as variáveis REG, TOT e GER apenas para a primeira coluna, é só acrescentar e repetir o código para as demais colunas.
Acredito que a partir dessa sugestão seja possível fazer as adaptações para alcançar o resultado esperado.
Espero que ajude |
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Mar 12, 2021 11:02 am Assunto: |
|
|
imex escreveu: | Segue uma sugestão para testes:
Código: | create or alter procedure Minha_SP (
PMESINI integer,
PANOINI integer,
PDATAINI date,
PDATAFIM date)
returns (
TIPO integer,
PLANO_CONTAS varchar(100),
COLUNA0 decimal(18, 2),
COLUNA1 decimal(18, 2),
COLUNA2 decimal(18, 2),
COLUNA3 decimal(18, 2),
COLUNA4 decimal(18, 2),
COLUNA5 decimal(18, 2),
COLUNA6 decimal(18, 2),
COLUNA7 decimal(18, 2),
COLUNA8 decimal(18, 2),
COLUNA9 decimal(18, 2),
COLUNA10 decimal(18, 2),
COLUNA11 decimal(18, 2),
SOMA_COLUNA decimal(18, 2)
as
declare variable ANT_TIPO integer;
declare variable REG_TIPO integer;
declare variable REG_PLANO_CONTAS varchar(100);
declare variable REG_COLUNA0 decimal(18, 2);
declare variable TOT_COLUNA0 decimal(18, 2);
declare variable GER_COLUNA0 decimal(18, 2);
begin
TIPO_ANT = -1;
GER_COLUNA0 = 0;
WITH CTE_COL AS
(
SELECT
tipo,
id_planconta,
(EXTRACT(YEAR FROM data) - :panoini) * 12 + EXTRACT(MONTH FROM data) - :pmesini as Coluna,
SUM(valor) as valor
FROM movconta
WHERE
data between :pdataini AND :pdatafim AND
TIPO IN (0, 1)
GROUP BY
1, 2, 3
)
FOR
SELECT
a.tipo,
b.nome AS plano_contas,
SUM(IIF(a.Coluna = 0, a.valor, 0)) AS COLUNA0
FROM CTE_COL A
INNER JOIN planodecontas b ON b.id = A.id_planconta
group BY 1, 2
order by tipo, plano_contas
INTO :REG_TIPO, :REG_PLANO_CONTAS, :REG_COLUNA0
DO BEGIN
IF (REG_TIPO <> ANT_TIPO) THEN
BEGIN
IF (ANT_TIPO <> -1) THEN
BEGIN
TIPO = ANT_TIPO;
PLANO_CONTAS = 'TOTAL TIPO';
COLUNA0 = TOT_COLUNA0;
SUSPEND;
END;
GER_COLUNA0 = GER_COLUNA0 + TOT_COLUNA0;
TOT_COLUNA0 = 0;
ANT_TIPO = TIPO;
END
TOT_COLUNA0 = TOT_COLUNA0 + REG_COLUNA0;
TIPO = REG_TIPO;
PLANO_CONTAS = REG_PLANO_CONTAS;
COLUNA0 = REG_COLUNA0;
SUSPEND;
END
GER_COLUNA0 = GER_COLUNA0 + TOT_COLUNA0;
TIPO = ANT_TIPO;
PLANO_CONTAS = 'TOTAL TIPO';
COLUNA0 = TOT_COLUNA0;
SUSPEND;
TIPO = NULL;
PLANO_CONTAS = 'TOTAL GERAL';
COLUNA0 = GER_COLUNA0;
SUSPEND;
end^ |
Coloquei as variáveis REG, TOT e GER apenas para a primeira coluna, é só acrescentar e repetir o código para as demais colunas.
Acredito que a partir dessa sugestão seja possível fazer as adaptações para alcançar o resultado esperado.
Espero que ajude |
Bom dia Imex,
Sabe porque esta dando problema no FOR do select?
Tentei rodar mais não deu certo
Código: | SQL error code = -104.
Token unknown - line 51, column 3.
FOR. |
_________________ 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: Sex Mar 12, 2021 11:19 am Assunto: |
|
|
Bom dia,
Experimente colocar somente o For antes do With para ver se funciona.
Espero que ajude |
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Mar 12, 2021 11:27 am Assunto: |
|
|
imex escreveu: | Bom dia,
Experimente colocar somente o For antes do With para ver se funciona.
Espero que ajude |
No primeiro momento rodou tive que colocar uma variavel TIPO_ANT também para compilar.
Mais não me trouxe o TOTAL_LINHA, TOTAL_TIPO E TOTAL_GERAL .
Código: | CREATE OR ALTER procedure MINHA_SP (
PMESINI integer,
PANOINI integer,
PDATAINI date,
PDATAFIM date)
returns (
TIPO integer,
TIPO_ANT integer,
PLANO_CONTAS varchar(100),
COLUNA0 decimal(18,2),
COLUNA1 decimal(18,2),
COLUNA2 decimal(18,2),
COLUNA3 decimal(18,2),
COLUNA4 decimal(18,2),
COLUNA5 decimal(18,2),
COLUNA6 decimal(18,2),
COLUNA7 decimal(18,2),
COLUNA8 decimal(18,2),
COLUNA9 decimal(18,2),
COLUNA10 decimal(18,2),
COLUNA11 decimal(18,2),
SOMA_COLUNA decimal(18,2))
as
declare variable ANT_TIPO integer;
declare variable REG_TIPO integer;
declare variable REG_PLANO_CONTAS varchar(100);
declare variable REG_COLUNA0 decimal(18,2);
declare variable TOT_COLUNA0 decimal(18,2);
declare variable GER_COLUNA0 decimal(18,2);
begin
TIPO_ANT = -1;
GER_COLUNA0 = 0;
FOR
WITH CTE_COL AS
(
SELECT
tipo,
id_planconta,
(EXTRACT(YEAR FROM data) - :panoini) * 12 + EXTRACT(MONTH FROM data) - :pmesini as Coluna,
SUM(valor) as valor
FROM movconta
WHERE
data between :pdataini AND :pdatafim AND
TIPO IN (0, 1)
GROUP BY
1, 2, 3
)
SELECT
a.tipo,
b.nome AS plano_contas,
SUM(IIF(a.Coluna = 0, a.valor, 0)) AS COLUNA0
FROM CTE_COL A
INNER JOIN planodecontas b ON b.id = A.id_planconta
group BY 1, 2
order by tipo, plano_contas
INTO :REG_TIPO, :REG_PLANO_CONTAS, :REG_COLUNA0
DO BEGIN
IF (REG_TIPO <> ANT_TIPO) THEN
BEGIN
IF (ANT_TIPO <> -1) THEN
BEGIN
TIPO = ANT_TIPO;
PLANO_CONTAS = 'TOTAL TIPO';
COLUNA0 = TOT_COLUNA0;
SUSPEND;
END
GER_COLUNA0 = GER_COLUNA0 + TOT_COLUNA0;
TOT_COLUNA0 = 0;
ANT_TIPO = TIPO;
END
TOT_COLUNA0 = TOT_COLUNA0 + REG_COLUNA0;
TIPO = REG_TIPO;
PLANO_CONTAS = REG_PLANO_CONTAS;
COLUNA0 = REG_COLUNA0;
SUSPEND;
END
GER_COLUNA0 = GER_COLUNA0 + TOT_COLUNA0;
TIPO = ANT_TIPO;
PLANO_CONTAS = 'TOTAL TIPO';
COLUNA0 = TOT_COLUNA0;
SUSPEND;
TIPO = NULL;
PLANO_CONTAS = 'TOTAL GERAL';
COLUNA0 = GER_COLUNA0;
SUSPEND;
end |
Sei que é apenas da primeira coluna que foi feito, mais não somou.
outra coisa Imex, preciso separar o TIPO = 0 DO TIPO = 1
Qye são campo
0 - RECEITAS
1 - DESPESA
DEPOIS O TOTAL GERAL. _________________ 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: Sex Mar 12, 2021 2:09 pm Assunto: |
|
|
Boa tarde Imex,
Montei aqui a SP
Código: | CREATE OR ALTER procedure MINHA_SP (
PMESINI integer,
PANOINI integer,
PDATAINI date,
PDATAFIM date)
returns (
TIPO integer,
TIPO_ANT integer,
PLANO_CONTAS varchar(100),
COLUNA0 decimal(18,2),
COLUNA1 decimal(18,2),
COLUNA2 decimal(18,2),
COLUNA3 decimal(18,2),
COLUNA4 decimal(18,2),
COLUNA5 decimal(18,2),
COLUNA6 decimal(18,2),
COLUNA7 decimal(18,2),
COLUNA8 decimal(18,2),
COLUNA9 decimal(18,2),
COLUNA10 decimal(18,2),
COLUNA11 decimal(18,2),
SOMA_COLUNA decimal(18,2))
as
declare variable ANT_TIPO integer;
declare variable REG_TIPO integer;
declare variable REG_PLANO_CONTAS varchar(100);
declare variable REG_COLUNA0 numeric(15,2);
declare variable TOT_COLUNA0 numeric(15,2);
declare variable GER_COLUNA0 numeric(15,2);
declare variable REG_COLUNA1 numeric(15,2);
declare variable TOT_COLUNA1 numeric(15,2);
declare variable GER_COLUNA1 numeric(15,2);
declare variable REG_COLUNA2 numeric(15,2);
declare variable TOT_COLUNA2 numeric(15,2);
declare variable GER_COLUNA2 numeric(15,2);
declare variable REG_COLUNA3 numeric(15,2);
declare variable TOT_COLUNA3 numeric(15,2);
declare variable GER_COLUNA3 numeric(15,2);
declare variable REG_COLUNA4 numeric(15,2);
declare variable TOT_COLUNA4 numeric(15,2);
declare variable GER_COLUNA4 numeric(15,2);
declare variable REG_COLUNA5 numeric(15,2);
declare variable TOT_COLUNA5 numeric(15,2);
declare variable GER_COLUNA5 numeric(15,2);
declare variable REG_COLUNA6 numeric(15,2);
declare variable TOT_COLUNA6 numeric(15,2);
declare variable GER_COLUNA6 numeric(15,2);
declare variable REG_COLUNA7 numeric(15,2);
declare variable TOT_COLUNA7 numeric(15,2);
declare variable GER_COLUNA7 numeric(15,2);
declare variable REG_COLUNA8 numeric(15,2);
declare variable TOT_COLUNA8 numeric(15,2);
declare variable GER_COLUNA8 numeric(15,2);
declare variable REG_COLUNA9 numeric(15,2);
declare variable TOT_COLUNA9 numeric(15,2);
declare variable GER_COLUNA9 numeric(15,2);
declare variable REG_COLUNA10 numeric(15,2);
declare variable TOT_COLUNA10 numeric(15,2);
declare variable GER_COLUNA10 numeric(15,2);
declare variable REG_COLUNA11 numeric(15,2);
declare variable TOT_COLUNA11 numeric(15,2);
declare variable GER_COLUNA11 numeric(15,2);
begin
TIPO_ANT = -1;
GER_COLUNA0 = 0;
GER_COLUNA1 = 0;
GER_COLUNA2 = 0;
GER_COLUNA3 = 0;
GER_COLUNA4 = 0;
GER_COLUNA5 = 0;
GER_COLUNA6 = 0;
GER_COLUNA7 = 0;
GER_COLUNA8 = 0;
GER_COLUNA9 = 0;
GER_COLUNA10 = 0;
GER_COLUNA11 = 0;
FOR
WITH CTE_COL AS
(
SELECT
tipo,
id_planconta,
(EXTRACT(YEAR FROM data) - :panoini) * 12 + EXTRACT(MONTH FROM data) - :pmesini as Coluna,
SUM(valor) as valor
FROM movconta
WHERE
data between :pdataini AND :pdatafim AND
TIPO IN (0, 1)
GROUP BY
1, 2, 3
)
SELECT
a.tipo,
b.nome AS plano_contas,
SUM(IIF(a.Coluna = 0, a.valor, 0)) AS COLUNA0,
SUM(IIF(a.Coluna = 1, a.valor, 0)) AS COLUNA1,
SUM(IIF(a.Coluna = 2, a.valor, 0)) AS COLUNA2,
SUM(IIF(a.Coluna = 3, a.valor, 0)) AS COLUNA3,
SUM(IIF(a.Coluna = 4, a.valor, 0)) AS COLUNA4,
SUM(IIF(a.Coluna = 5, a.valor, 0)) AS COLUNA5,
SUM(IIF(a.Coluna = 6, a.valor, 0)) AS COLUNA6,
SUM(IIF(a.Coluna = 7, a.valor, 0)) AS COLUNA7,
SUM(IIF(a.Coluna = 8, a.valor, 0)) AS COLUNA8,
SUM(IIF(a.Coluna = 9, a.valor, 0)) AS COLUNA9,
SUM(IIF(a.Coluna = 10, a.valor, 0)) AS COLUNA10,
SUM(IIF(a.Coluna = 11, a.valor, 0)) AS COLUNA11,
SUM(A.VALOR) AS SOMA_COLUNA
FROM CTE_COL A
INNER JOIN planodecontas b ON b.id = A.id_planconta
group BY 1, 2
order by tipo, plano_contas
INTO :REG_TIPO, :REG_PLANO_CONTAS, :REG_COLUNA0, :reg_coluna1,
:REG_COLUNA2, :reg_coluna3,
:REG_COLUNA4, :reg_coluna5,
:REG_COLUNA6, :reg_coluna7,
:REG_COLUNA8, :reg_coluna9,
:REG_COLUNA10, :reg_coluna11,
:soma_coluna
DO BEGIN
IF (REG_TIPO <> ANT_TIPO) THEN
BEGIN
IF (ANT_TIPO <> -1) THEN
BEGIN
TIPO = ANT_TIPO;
PLANO_CONTAS = 'TOTAL TIPO';
COLUNA0 = TOT_COLUNA0;
coluna1 = tot_coluna1;
COLUNA2 = TOT_COLUNA2;
coluna3 = tot_coluna3;
COLUNA4 = TOT_COLUNA4;
coluna5 = tot_coluna5;
COLUNA6 = TOT_COLUNA6;
coluna7 = tot_coluna7;
COLUNA8 = TOT_COLUNA8;
coluna9 = tot_coluna9;
COLUNA10 = TOT_COLUNA10;
coluna11 = tot_coluna11;
SUSPEND;
END
GER_COLUNA0 = GER_COLUNA0 + TOT_COLUNA0;
GER_COLUNA1 = GER_COLUNA1 + TOT_COLUNA1;
GER_COLUNA2 = GER_COLUNA2 + TOT_COLUNA2;
GER_COLUNA3 = GER_COLUNA3 + TOT_COLUNA3;
GER_COLUNA4 = GER_COLUNA4 + TOT_COLUNA4;
GER_COLUNA5 = GER_COLUNA5 + TOT_COLUNA5;
GER_COLUNA6 = GER_COLUNA6 + TOT_COLUNA6;
GER_COLUNA7 = GER_COLUNA7 + TOT_COLUNA7;
GER_COLUNA8 = GER_COLUNA8 + TOT_COLUNA8;
GER_COLUNA9 = GER_COLUNA9 + TOT_COLUNA9;
GER_COLUNA10 = GER_COLUNA10 + TOT_COLUNA10;
GER_COLUNA11 = GER_COLUNA11 + TOT_COLUNA11;
TOT_COLUNA0 = 0;
TOT_COLUNA1 = 0;
TOT_COLUNA2 = 0;
TOT_COLUNA3 = 0;
TOT_COLUNA4 = 0;
TOT_COLUNA5 = 0;
TOT_COLUNA6 = 0;
TOT_COLUNA7 = 0;
TOT_COLUNA8 = 0;
TOT_COLUNA9 = 0;
TOT_COLUNA10 = 0;
TOT_COLUNA11 = 0;
ANT_TIPO = TIPO;
END
TOT_COLUNA0 = TOT_COLUNA0 + REG_COLUNA0;
TOT_COLUNA1 = tot_coluna1 + reg_coluna1;
TOT_COLUNA2 = TOT_COLUNA2 + REG_COLUNA2;
TOT_COLUNA3 = tot_coluna3 + reg_coluna3;
TOT_COLUNA4 = TOT_COLUNA4 + REG_COLUNA4;
TOT_COLUNA5 = tot_coluna5 + reg_coluna5;
TOT_COLUNA6 = TOT_COLUNA6 + REG_COLUNA6;
TOT_COLUNA7 = tot_coluna7 + reg_coluna7;
TOT_COLUNA8 = TOT_COLUNA8 + REG_COLUNA8;
TOT_COLUNA9 = tot_coluna9 + reg_coluna9;
TOT_COLUNA10 = TOT_COLUNA10 + REG_COLUNA10;
TOT_COLUNA11 = tot_coluna11 + reg_coluna11;
TIPO = REG_TIPO;
PLANO_CONTAS = REG_PLANO_CONTAS;
COLUNA0 = REG_COLUNA0;
coluna1 = reg_coluna1;
COLUNA2 = REG_COLUNA2;
coluna3 = reg_coluna3;
COLUNA4 = REG_COLUNA4;
coluna5 = reg_coluna5;
COLUNA6 = REG_COLUNA6;
coluna7 = reg_coluna7;
COLUNA8 = REG_COLUNA8;
coluna9 = reg_coluna9;
COLUNA10 = REG_COLUNA10;
coluna11 = reg_coluna11;
SUSPEND;
END
GER_COLUNA0 = GER_COLUNA0 + TOT_COLUNA0;
ger_coluna1 = ger_coluna1 + tot_coluna1;
GER_COLUNA2 = GER_COLUNA2 + TOT_COLUNA2;
ger_coluna3 = ger_coluna3 + tot_coluna3;
GER_COLUNA4 = GER_COLUNA4 + TOT_COLUNA4;
ger_coluna5 = ger_coluna5 + tot_coluna5;
GER_COLUNA6 = GER_COLUNA6 + TOT_COLUNA6;
ger_coluna7 = ger_coluna7 + tot_coluna7;
GER_COLUNA8 = GER_COLUNA8 + TOT_COLUNA8;
ger_coluna9 = ger_coluna9 + tot_coluna9;
GER_COLUNA10 = GER_COLUNA10 + TOT_COLUNA10;
ger_coluna11 = ger_coluna11 + tot_coluna11;
TIPO = ANT_TIPO;
PLANO_CONTAS = 'TOTAL TIPO';
COLUNA0 = TOT_COLUNA0;
coluna1 = tot_coluna1;
COLUNA2 = TOT_COLUNA2;
coluna3 = tot_coluna3;
COLUNA4 = TOT_COLUNA4;
coluna5 = tot_coluna5;
COLUNA6 = TOT_COLUNA6;
coluna7 = tot_coluna7;
COLUNA8 = TOT_COLUNA8;
coluna9 = tot_coluna9;
COLUNA10 = TOT_COLUNA10;
coluna11 = tot_coluna11;
SUSPEND;
TIPO = NULL;
PLANO_CONTAS = 'TOTAL GERAL';
COLUNA0 = GER_COLUNA0;
coluna1 = ger_coluna1;
COLUNA2 = GER_COLUNA2;
coluna3 = GER_coluna3;
COLUNA4 = GER_COLUNA4;
coluna5 = GER_coluna5;
COLUNA6 = GER_COLUNA6;
coluna7 = GER_coluna7;
COLUNA8 = GER_COLUNA8;
coluna9 = GER_coluna9;
COLUNA10 = GER_COLUNA10;
coluna11 = GER_coluna11;
SUSPEND;
end |
Parece que esta somando corretamente as colunas, mais...
Preciso separar a soma da receita das despesas
O campo TOTAL_TIPO e TOTAL_GERAL não somou ficaram null
Só que como disse o TOTAL_TIPO deve ser o TIPO 0 (Receitas) TIPO 1 (Despesas)
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 |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Mar 12, 2021 2:24 pm Assunto: |
|
|
Boa tarde,
Esse TIPO_ANT não deve existir, remova ele do Returns, e a primeira linha depois do primeiro Begin deve ser ANT_TIPO:
E altere a linha onde está
para
Código: | ANT_TIPO = REG_TIPO; |
Espero que ajude |
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Mar 12, 2021 2:31 pm Assunto: |
|
|
imex escreveu: | Boa tarde,
Esse TIPO_ANT não deve existir, remova ele do Returns, e a primeira linha depois do primeiro Begin deve ser ANT_TIPO:
E altere a linha onde está
para
Código: | ANT_TIPO = REG_TIPO; |
Espero que ajude |
Boa tarde Imex, o problema do das somas do TIPO foi resolvido, mais o TOTAL_GERAL não esta somando ainda
Aproveitando da situação...
Tem como na primeira linha aparecer RECEITAS
No resumo das receitas antes criar uma linha em branco
Depois o resumo da receita
pular mais uma linha
E na primeira linha proxima aparecer DESPESA
e no resumo da DESPESAS pular uma linha antes
depois pular outra linha para trazer o total geral
Pois assim fica muito junto e dificil de ver
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 |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Mar 12, 2021 3:47 pm Assunto: |
|
|
Experimente colocar as somas dos totais gerais dentro do If como está no trecho abaixo:
Código: | IF (ANT_TIPO <> -1) THEN
BEGIN
TIPO = ANT_TIPO;
PLANO_CONTAS = 'TOTAL TIPO';
COLUNA0 = TOT_COLUNA0;
coluna1 = tot_coluna1;
COLUNA2 = TOT_COLUNA2;
coluna3 = tot_coluna3;
COLUNA4 = TOT_COLUNA4;
coluna5 = tot_coluna5;
COLUNA6 = TOT_COLUNA6;
coluna7 = tot_coluna7;
COLUNA8 = TOT_COLUNA8;
coluna9 = tot_coluna9;
COLUNA10 = TOT_COLUNA10;
coluna11 = tot_coluna11;
SUSPEND;
GER_COLUNA0 = GER_COLUNA0 + TOT_COLUNA0;
GER_COLUNA1 = GER_COLUNA1 + TOT_COLUNA1;
GER_COLUNA2 = GER_COLUNA2 + TOT_COLUNA2;
GER_COLUNA3 = GER_COLUNA3 + TOT_COLUNA3;
GER_COLUNA4 = GER_COLUNA4 + TOT_COLUNA4;
GER_COLUNA5 = GER_COLUNA5 + TOT_COLUNA5;
GER_COLUNA6 = GER_COLUNA6 + TOT_COLUNA6;
GER_COLUNA7 = GER_COLUNA7 + TOT_COLUNA7;
GER_COLUNA8 = GER_COLUNA8 + TOT_COLUNA8;
GER_COLUNA9 = GER_COLUNA9 + TOT_COLUNA9;
GER_COLUNA10 = GER_COLUNA10 + TOT_COLUNA10;
GER_COLUNA11 = GER_COLUNA11 + TOT_COLUNA11;
END |
Sobre essas linhas adicionais, para acrescentar uma linha no resultado você tem que acrescentar um Suspend, preenchendo antes os parâmetros do Returns com os valores que devem ser retornados na linha em questão.
Espero que ajude |
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Mar 12, 2021 3:52 pm Assunto: |
|
|
imex escreveu: | Experimente colocar as somas dos totais gerais dentro do If como está no trecho abaixo:
Código: | IF (ANT_TIPO <> -1) THEN
BEGIN
TIPO = ANT_TIPO;
PLANO_CONTAS = 'TOTAL TIPO';
COLUNA0 = TOT_COLUNA0;
coluna1 = tot_coluna1;
COLUNA2 = TOT_COLUNA2;
coluna3 = tot_coluna3;
COLUNA4 = TOT_COLUNA4;
coluna5 = tot_coluna5;
COLUNA6 = TOT_COLUNA6;
coluna7 = tot_coluna7;
COLUNA8 = TOT_COLUNA8;
coluna9 = tot_coluna9;
COLUNA10 = TOT_COLUNA10;
coluna11 = tot_coluna11;
SUSPEND;
GER_COLUNA0 = GER_COLUNA0 + TOT_COLUNA0;
GER_COLUNA1 = GER_COLUNA1 + TOT_COLUNA1;
GER_COLUNA2 = GER_COLUNA2 + TOT_COLUNA2;
GER_COLUNA3 = GER_COLUNA3 + TOT_COLUNA3;
GER_COLUNA4 = GER_COLUNA4 + TOT_COLUNA4;
GER_COLUNA5 = GER_COLUNA5 + TOT_COLUNA5;
GER_COLUNA6 = GER_COLUNA6 + TOT_COLUNA6;
GER_COLUNA7 = GER_COLUNA7 + TOT_COLUNA7;
GER_COLUNA8 = GER_COLUNA8 + TOT_COLUNA8;
GER_COLUNA9 = GER_COLUNA9 + TOT_COLUNA9;
GER_COLUNA10 = GER_COLUNA10 + TOT_COLUNA10;
GER_COLUNA11 = GER_COLUNA11 + TOT_COLUNA11;
END |
Sobre essas linhas adicionais, para acrescentar uma linha no resultado você tem que acrescentar um Suspend, preenchendo antes os parâmetros do Returns com os valores que devem ser retornados na linha em questão.
Espero que ajude |
Sobre a soma TOTAL da certo assim, porém acho que tenho que negativar a parte DESPESA, pq ele esta somando todos e deve somar total receita - total despesa _________________ 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: Sex Mar 12, 2021 4:33 pm Assunto: |
|
|
Para soma geral coloquei assim
Código: |
IF (ant_tipo = 0) THEN
begin
TOT_COLUNA0 = TOT_COLUNA0 + REG_COLUNA0;
TOT_COLUNA1 = tot_coluna1 + reg_coluna1;
TOT_COLUNA2 = TOT_COLUNA2 + REG_COLUNA2;
TOT_COLUNA3 = tot_coluna3 + reg_coluna3;
TOT_COLUNA4 = TOT_COLUNA4 + REG_COLUNA4;
TOT_COLUNA5 = tot_coluna5 + reg_coluna5;
TOT_COLUNA6 = TOT_COLUNA6 + REG_COLUNA6;
TOT_COLUNA7 = tot_coluna7 + reg_coluna7;
TOT_COLUNA8 = TOT_COLUNA8 + REG_COLUNA8;
TOT_COLUNA9 = tot_coluna9 + reg_coluna9;
TOT_COLUNA10 = TOT_COLUNA10 + REG_COLUNA10;
TOT_COLUNA11 = tot_coluna11 + reg_coluna11;
end
else
begin
TOT_COLUNA0 = TOT_COLUNA0 - REG_COLUNA0;
TOT_COLUNA1 = tot_coluna1 - reg_coluna1;
TOT_COLUNA2 = TOT_COLUNA2 - REG_COLUNA2;
TOT_COLUNA3 = tot_coluna3 - reg_coluna3;
TOT_COLUNA4 = TOT_COLUNA4 - REG_COLUNA4;
TOT_COLUNA5 = tot_coluna5 - reg_coluna5;
TOT_COLUNA6 = TOT_COLUNA6 - REG_COLUNA6;
TOT_COLUNA7 = tot_coluna7 - reg_coluna7;
TOT_COLUNA8 = TOT_COLUNA8 - REG_COLUNA8;
TOT_COLUNA9 = tot_coluna9 - reg_coluna9;
TOT_COLUNA10 = TOT_COLUNA10 - REG_COLUNA10;
TOT_COLUNA11 = tot_coluna11 - reg_coluna11;
end
|
Sobre esse aqui, não entendi como fazer Imex
Citação: | Sobre essas linhas adicionais, para acrescentar uma linha no resultado você tem que acrescentar um Suspend, preenchendo antes os parâmetros do Returns com os valores que devem ser retornados na linha em questão. |
_________________ 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: Sex Mar 12, 2021 4:53 pm Assunto: |
|
|
Comece acrescentando um Suspend onde já existe um para os totais e confira o resultado que acho que fica mais fácil de entender.
Cada Suspend acrescenta uma linha a mais no resultado. |
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|