cancel
Showing results for 
Search instead for 
Did you mean: 

Somar sub relatório e totalizar no principal

Former Member
0 Kudos

O sistema é o Crytal Reports para Visual Studio.

Tenho o relatório principal de financiamento bancário, e um sub relatório dos créditos bancários( um financiamento pode ter vários créditos bancários), funcionando perfeitamente.

Acontece que preciso somar o valor de cada sub relatório e totalizar no relatório principal.

Já tentei criar formula com Formula Fields com variáves do tipo Shared e global no sub relatório, mas não ficam disponibilizadas relatório principal.

Solicito Ajuda.

Carlos Almeida

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

O código do relatório principal

"select f.id, f.idcliente, f.contratocaixa, f.tipoescritura, f.incluirdespesa, f.saldodevedor, f.totalapagar, f.centrodecusto, f.banco, f.agencia,f.valordespesa, f.totalliberado, f.diferencafinanciamento, f.dataassinatura, c.nome FROM financiamento f inner join cliente c on f.idcliente = c.id"

Sub Relatório:

"SELECT * FROM creditobancario"

Código que carrega o rel. principal e sub rel.:

CR_RelFinGeral cr1 = new CR_RelFinGeral();

ReportDocument rdCrBanco;

cr1.SetDataSource(financiamento);

rdCrBanco = cr1.OpenSubreport("Cr_CrBco.rpt");

rdCrBanco.SetDataSource(credBanco);

cRViewerRelGeral.ReportSource = cr1;

Preciso somar o sub rel e totalizar no principal.

fbio_bilicki
Active Contributor
0 Kudos

Você pode fazer isso de dois jeitos.

1) colocar o total na SQL principal e arrastar o campo "TotalCreditoBancario" para o rodapé do relatório

- nesse caso, o registro será repetido em todas as linhas de dados e pode deixar o relatório lento.

select

    f.id,

    f.idcliente,

    f.contratocaixa,

    f.tipoescritura,

    f.incluirdespesa,

    f.saldodevedor,

    f.totalapagar,

    f.centrodecusto,

    f.banco,

    f.agencia,

    f.valordespesa,

    f.totalliberado,

    f.diferencafinanciamento,

    f.dataassinatura,

    c.nome,

    ( select sum(valor) FROM creditobancario ) as TotalCreditoBancario

FROM financiamento f

inner join cliente c on f.idcliente = c.id

2) adicionar um segundo comando no relatório principal, e também puxar o valor total para o rodapé.

ComandoPrincipal = seu sql

select f.id, f.idcliente, f.contratocaixa, f.tipoescritura, f.incluirdespesa, f.saldodevedor, f.totalapagar, f.centrodecusto, f.banco, f.agencia,f.valordespesa, f.totalliberado, f.diferencafinanciamento, f.dataassinatura, c.nome FROM financiamento f inner join cliente c on f.idcliente = c.id

SomaCreditos = select sum(valor) as TotalCreditoBancario FROM creditobancario

E arrastar o TotalCreditoBancario para o rodapé do relatório.

[]'s

Fabio.

fbio_bilicki
Active Contributor
0 Kudos

Bom dia Carlos,

tente somar no SQL do relatório principal os créditos bancários, imagino que facilite seu relatório.

Por exemplo: eu tenho uma consulta que soma todo o movimento do item no relatório principal, e quando chamo o subreport, mostra detalhado o movimento.

-- SQL do relatório principal, mostra somente total

SELECT

ROW_NUMBER() OVER (ORDER BY Sum(T0.[LineTotal]) DESC) as Seq

, T0.ItemCode

, T1.ItemName

, T1.InvntryUom

, sum(T0.[Quantity]) as Qtde

, sum(T0.[LineTotal]) as ValorTotal

FROM IGE1 T0

INNER JOIN OITM T1 ON T0.ItemCode = T1.ItemCode

INNER JOIN OIGE T2 ON T0.DocEntry = T2.DocEntry

WHERE (T2.[DocDate] >= {?DocDate} )

GROUP BY T0.[ItemCode], T1.[ItemName], T1.InvntryUom

ORDER BY Sum(T0.[LineTotal]) DESC

-- SQL do relatório analitico (passo o código e a data, para detalhar o item).

SELECT

   T0.DocEntry,

   T1.DocDate,

   T1.[Ref2],

   T0.ItemCode,

   T0.Dscription,

   T3.ItmsGrpNam,

   T2.InvntryUom,

   T0.Quantity as QtdeBaixa,

   T0.LineTotal

FROM IGE1 T0

INNER JOIN OIGE T1 ON T0.DocEntry = T1.DocEntry

INNER JOIN OITM T2 ON T0.ItemCode = T2.ItemCode

INNER JOIN OITB T3 ON T3.ItmsGrpCod = T2.ItmsGrpCod

WHERE T1.DocDate >= {?DocDate} and T0.ItemCode = {?Itemcode}

Se você puder postar o SQL que você usa no relatório e sub ajudaria.

[]'s

Fabio

SAP 8.82 PL13 (SAP 9.0 PL6 em testes).