Você está na página 1de 8

30/09/2016

RelatriocomAgrupamentonoQuickReport

Buscar

favorito(2)

marcarcomolido

tirardvidas

Relatrio com Agrupamento no


Quick Report
Veja neste artigo de Bruno Lichot como criar relatrios agrupados no
Quick Report.

(2) (1)

SalvecomunidadeDelphiana!

Olhaeudenovofalandoderelatrio,prometoqueoprximoassuntoserdiferente.Noms
passadopodemosdesfrutardaexcelentevisitadamaiorautoridadeemInterBasenoBrasilna
nossareuniodogrupodeusuriosDelphiRio,PauloSrgiodaPresence/Borland.Oqualgostaria
deagradecerprofundamenteavisita,apalestraeapoiosingularacomunidade.

http://www.devmedia.com.br/relatoriocomagrupamentonoquickreport/508

1/8

30/09/2016

RelatriocomAgrupamentonoQuickReport

Lembrandoquenestemsdefriasnossaagendaestrepletadeeventosdequalidade
comeandonodia13/07comareuniodo
DelphiRio(http://www.devmedia.com.br/ClubeDelphi/delphirio.asp),seguidopeloClubeDelphi
TechWeekend(http://www.devmedia.com.br/tw)eFireBirdDevelopers
Day(http://www.firebirddevelopersday.com.br).Nodeixemdeprestigiaroseventos,
aprenderemcomquefaz,trocarinformaes,idiaseprincipalmentedesfrutardeumaboa
diversocomoscolegaseamigosdeprofisso.

Continuemescrevendo,esepudersertilemalgumacoisa,sintamseavontadeemescrever,
passarumamensagem,meconvidarparaumalmoo,etc.Contemsemprecomigo!

Bom,passemosagoraaonossoartigodeRelatrios

RelatrioscomAgrupamentodeDados

EstetipoderelatriobaseadonaprojeodedadosrelacionadosemmaisdeumRecordSetde
registrosouno,pormfornecendoagrupamentoporumoumaisvaloresobtidosemnosso
sistemadeinformao.

Criemosumasituaobase,tendoasnossastabelasdosexemplosanterioresparanosauxiliarem
nestatarefa.

Odepartamentodevendasdaempresarequisitouumrelatrioondepossaseaveriguaroquanto
sevendeudecadaprodutonosmesesdeumdeterminadoano.Orelatriodeverapresentaros
BaixeoAPP

Login

DEVMEDIA
produtos,osmeseseototalvendidoemcadams.Deveapresentaroseuresultadoagrupado

porprodutoseparacadaprodutoosmeseseototalvendido.Oanoserdefinidopelousuriodo
relatrio.

FaremosusodastabelasdePedidos,ItenseProdutosapresentadasanteriormente.Lembrando
quenossoexemplodesenvolvidosobreInterBaseouFireBirdcomacessoemanipulaode
dadosemDBExpress.

http://www.devmedia.com.br/relatoriocomagrupamentonoquickreport/508

2/8

30/09/2016

RelatriocomAgrupamentonoQuickReport

InicieumanovaaplicaonoDelphi,assimcomonosexemplosanterioresadicioneumComboBox
paraescolhadoano,umbotoGerarRelatrioeumPanelparaconteroobjetoQuickRep.

Faamosaobtenodosdados:AdicioneumSqlConnectionefaaaconexocomobanco.
OprimeiroSQLDataSetaseradicionadoaoprojetoterafunodelistarosprodutos
vendidosnoanoqueforselecionadopelousurio.AltereapropriedadeNamepara
SQLProdutos,apropriedadeSQLConnectionaponteparaoseuobjetodeconexo
configuradoanteriormente.NapropriedadeCommandTextdefinaoseguintecomando:

selectdistinctprodutos.descricao

,produtos.id_produto

,extract(yearfrompedidos.dataped)asANO

frompedidos

,itens

,produtos

whereextract(yearfrompedidos.dataped)=:ANO

andpedidos.id_pedido=itens.id_pedido

anditens.id_produto=produtos.id_produto
DEVMEDIA

BaixeoAPP

Login

orderbyprodutos.descricao

EsteoDataSetMestreeproverosprodutosvendidosemumdeterminadoanoefaro
agrupamentodaamostragemcomorequisitado,peladescriodoproduto.Abraasua
propriedadeParamsedefinaapropriedadeDataTypedoparmetroANOcomoftString.

http://www.devmedia.com.br/relatoriocomagrupamentonoquickreport/508

3/8

30/09/2016

RelatriocomAgrupamentonoQuickReport

OprximoDataSetobterosmesesemqueoprodutofoivendidodoanoescolhido,etambm
exibirototaldesteprodutovendidonaquelemsesteDataSetestarrelacionadoaoDataSet
MasterSqlProdutosatravsdeumDataSourcecomofeitoanteriormente.Adicioneaoprojetoum
DataSource,altereasuapropriedadeNameparaDsProdutoseaponteasuapropriedadeDataSet
paraSQLProdutos.

AdicioneumSQLDataSet,altereasuapropriedadeNameparaSQLMesVendas,apontea
propriedadeSQLConnectionparaoseuobjetodeconexo,enapropriedadeDataSourceaponte
paraDsProdutosqueoDataSetMestredorelacionamento,emseguidadefinaapropriedade
CommandTextcomo:

selectextract(monthfrompedidos.dataped)asMES

,sum(itens.quantidade*itens.precovenda)asTOTAL

frompedidos

,itens

whereextract(yearfrompedidos.dataped)=:ANO

andpedidos.id_pedido=itens.id_pedido

anditens.id_produto=:ID_PRODUTO

groupbyextract(monthfrompedidos.dataped)
DEVMEDIA

BaixeoAPP

Login

orderbyextract(monthfrompedidos.dataped)

EsteDataSetexibirosmesesdevendadeumdeterminadoprodutoeototalvendidoemcada
ms,osparmetrosnocomandoreferenciados,soobtidosapartirdoSQLProdutos,aoqualest
relacionado.

http://www.devmedia.com.br/relatoriocomagrupamentonoquickreport/508

4/8

30/09/2016

RelatriocomAgrupamentonoQuickReport

ComoestescomponentessounidirecionaisutilizaremosDataSetProvidereClientDataSetpara
efetuarocacheamentoemanipulaodestesdados.AdicioneumDataSetProviderdapalheta
DataAccess,definasuapropriedadeNamecomoDspProdutoseaponteasuapropriedade
DataSetparaSQLProdutos.EstecomponentetornardisponveisosdadosdosSqlDataSet,que
relacionamosparaobterosdadosquepreencheroorelatrio.AdicioneumClientDataSetda
palhetaDataAccess,definasuapropriedadeNamecomoCdsProdutos,aponteasuapropriedade
ProviderNameparaDspProdutos,cliquecomobotodireitodomousesobreoCdsProdutose
escolhaaopoFetchParamsparaqueestepequeoparmetrodaconsultaexecutadapelo
SqlProdutoseporfimapliqueumduplocliquenoCdsProdutoseadicioneoscamposcomoobjeto
pressionandoCtrl+F.

PercebamqueestetrouxeoDataSetDetalhejrelacionado.Parafazermosusodele,adicioneum
outroClientDataSet,definaapropriedadeNamecomoCdsMesVenda,eapropriedade
DataSetFieldcomoCdsProdutosSQLMesVendaparafazermosusodoDataSetDetalhedo
relacionamento.

Faamosasconfiguraesdorelatrio.ApliqueumduplocliquenoobjetoQuickRep.

NabandaPageHeadercoloqueottulodorelatrioVendasMensaisdeProdutoseapliqueuma
linhainferior.

NabandaPageFooterdefinaaexibiodonmerodepginaecoloqueumalinhanaparte
superiordabandacomosefizessedivisoentreocontedodasbandas.
DEVMEDIA

BaixeoAPP

Login

AponteapropriedadeDataSetdoObjetoQuickRepparaoDataSetMestreCDSProdutos.
FaamosagoraaconfiguraodabandaDetail.UseobjetosQRDBTextparaexibirosdados
doCDSProdutos(DescricaoeAno).Desenheumretnguloparafazermosocabealhoda
tabelaondeapresentaremososmeseseostotaisvendidosemcadamsdoprodutoem
questo.

http://www.devmedia.com.br/relatoriocomagrupamentonoquickreport/508

5/8

30/09/2016

RelatriocomAgrupamentonoQuickReport

AdicioneaorelatrioumobjetoQRSubDetailparaexibirmososdadosdospedidos.Defina
suapropriedadeDataSetparaapontarparaoCDSMesVendaeaponteapropriedadeMaster
paraQuickRep1.AdicioneacontinuaodatabelainiciadanabandaDetailparaexibiros
dadosprovenientesdoCDSMesVenda(MeseTotalVendido)eusecomponentesQRDBText
comomostradoabaixo.
ApsaconfiguraodasbandasestamosprontosparaconfiguraroComboBoxdeescolha
dosanoseobotogerarrelatrio.
AbraapropriedadeItemsdoComboBoxeconfigure.
EmseguidadefinaocdigoabaixonoeventoonClickdobotoGerarRelatrio.

try

CdsProdutos.Params[0].AsString:=ComboBox1.Text

CdsProdutos.Open

CdsMesVenda.Open

QuickRep1.Preview

finally

CdsProdutos.Close
DEVMEDIA

BaixeoAPP

Login

end

EstecdigopassaoanocomoparmetroparaoDataSetMestre,abreosDataSetsemordem
hierrquica,executaorelatrioefechaosDataSets.

Faaosretoquesfinaisquedesejareexecuteaaplicaoparatestarmosorelatrio.
Edestaformapodemosfazeroagrupamentodasinformaesparaexibirnorelatrio.
http://www.devmedia.com.br/relatoriocomagrupamentonoquickreport/508

6/8

30/09/2016

RelatriocomAgrupamentonoQuickReport

Emaisumavez,estouasordensenoaguardodosemails.Nosencontramosnoseventos,no
deixemdeir.Ataprxima!

PublicadonoCanalDelphi

porBrunoLichot
Delphinaveia(!)

Ajudenosaevoluir:vocgostoudopost?

(2) (1)

Compartilhe:

Ficoucomalgumadvida?
Postaquisuadvidaoucomentrioquenossaequiperesponderomaisrpido
possvel.

Maisposts
DEVMEDIA

BaixeoAPP

Login

Artigo

Desenvolva aplicaes com MongoDB


Artigo

Tcnicas de debug no Delphi


Artigo

ListView: Listagem de dados dinmica em aplicaes mobile


Revista
http://www.devmedia.com.br/relatoriocomagrupamentonoquickreport/508

7/8

30/09/2016

RelatriocomAgrupamentonoQuickReport

Revista ClubeDelphi 169


Video aula

Web Services (Server) - Curso Desenvolvendo para Android


com Delphi - Aula 21
Listar mais contedo

Publique | Assine | Faleconosco

DevMedia
Curtir Pgina

123 mil curtidas

Seja o primeiro de seus amigos a curtir isso.

HospedagemwebporPorta80WebHosting

DEVMEDIA

http://www.devmedia.com.br/relatoriocomagrupamentonoquickreport/508

BaixeoAPP

Login

8/8