terça-feira, 24 de janeiro de 2012

Delphi - ReportBuilder – Construindo um relatório com quebra de Grupo


Nesta matéria estarei abordando um pouco mais sobre este gerador de relatórios. Montarei um relatório com quebra de grupo utilizando a tabela Department da Base de Dados Employee geralmente encontrado na seguinte pasta:

C:\Arquivos de programas\Firebird\Firebird_1_5\examples

Para iniciarmos a criação de nosso relatório primeiramente abriremos o Delphi 7 para criação de nosso Formulário onde chamaremos o Relatório. Adicionaremos os componentes de conexão e de acesso aos dados. Coloque um SqlConnection e ligue-o ao Database Empoloyee. Insira um SqlDataset e em sua propriedade Sqlconnection coloque como Sqlconnection1, em seguida defina em CommandText a instrução SQL:

SELECT DEPT_NO, PHONE_NO, DEPARTMENT, LOCATION FROM DEPARTMENT
ORDER BY LOCATION

Insira um DatasetProvider e ligue-o ao SqlDataset pela propriedade DataSet e logo em seguida coloque um ClientDataset alterando sua propriedade ProviderName para DataSetProvider1. Coloque um DataSource e através da propriedade DataSet deixe como ClientDataSet1.

Insira em seu formulário os seguintes componentes do ReportBuilder: ppDBPipeline e ppReport e configure suas propriedades.

ppDBPipeline

DataSource = Datasource1
Name = ppDBDepartment

PPReport

DataPipeline = ppDBDepartment
DeviceType = Screen
Name = ppGrupo
PreviewFormSettings - WindowState = wsMaximized (teremos o relatório Maximizado)
                                   - ZoomSetting = zs100Percent (zoom de 100%)

Depois de configurado estes componentes Insira um Dbgrid para visualizarmos os registros e um Botão para chamarmos o relatório. O seu formulário deverá ficar parecido com o da Figura 01.

Figura 01. Formulário para chamar o relatório.  

Coloque o código abaixo no botão Visualizar, para assim podermos chamarmos nosso relatório.

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  ppGrupo.Print;
end;

Montando o Relatório

Dê um duplo clique sobre o componente ppGrupo para montarmos o relatório. Percebam que por padrão o ReportBuilder vem com as bandas Header, Detail e Footer, portanto iremos adicionar mais algumas, para isto clique no menu Report e adicione uma banda Title e logo em seguida uma Group. (veja Figura 02)

Figura 02. Adicionando uma banda do tipo Group.

No combobox Groups defina como DB.Department.LOCATION em seguida clique em Add. Pronto, criamos uma Banda do tipo Group Header e outra do tipo group Footer sendo agrupadas pelo campo LOCATION.

Na banda Title coloque um componente Label e outro Shape com as seguintes configurações:

Label1

Appearance - Color = clSilver
Text - Caption = Agrupamento por Localização
Font – Arial, Preto e tamanho 16

Shape1

Appearance - Brush - Color = clSilver
                    - Pen – Color = clSilver
                    - Shape = stRectangle

Na banda Header coloque 3 componentes Labels e um chamado Line.

Label2

Text - Caption = Dept_No
        - Font = Arial, Negrito e tamanho 10



Label3

Text - Caption = Department
        - Font = Arial, Negrito e tamanho 10

Label4

Text - Caption = Phone_No
        - Font = Arial, Negrito e tamanho 10

Line1

Appearance - Pen - Color = clSilver


Na Banda Group Header coloque um Dbtext, para podermos agrupar nosso relatório por LOCATION.

Dbtext1

Data - DataField = LOCATION
        - DataPipeline = DBDepartment
Text - Font = Arial, Negrito , Vermelho, Sublinhado e tamanho 10


Na banda Detail insira mais 3 Dbtexts.

Dbtext2

Data - DataField = DEPT_NO
        - DataPipeline = DBDepartment

Dbtext3

Data - DataField = DEPARTMENT
        - DataPipeline = DBDepartment

Dbtext4

Data - DataField = PHONE_NO
        - DataPipeline = DBDepartment

Na Group Footer, coloque um Label e um DbCalc.

Label5

Text - Caption = Total por Grupo:
Text - Font = Arial, Negrito , Vermelho, Sublinhado e tamanho 10


DbCalc

Calculations - DbCalcType = dcCount
Text - Font = Arial, Negrito , Vermelho, Sublinhado e tamanho 10

E por final colocaremos na banda Footer dois componentes do tipo SystemVariable e um Shape, para darmos um visual bacana em nosso relatório.

SystemVariable1

Appearance - Color = clSilver
                    - VarType = vtDateTime
Text - Font = Arial, Negrito e tamanho 10

SystemVariable2

Appearance - Color = clSilver
                    - VarType = vtPageSetDesc
Text - Font = Arial, Negrito e tamanho 10

Shape2

Appearance - Brush - Color = clSilver
                    - Pen – Color = clSilver
                    - Shape = stRectangle

Após configurar todos estes componentes, seu relatório deve estar parecido com o da  Figura 03.

Figura 03. Relatório Pronto.
           
Em seguida dê um Save All e execute o projeto. A Figura 04 mostrará nosso relatório em run-time.

Figura 04. Relatório em Run-time.

Conclusão

Nesta matéria vimos a facilidade para montar relatórios no ReportBuider, puderam perceber que com pouco esforço montamos um relatório com quebra de grupo. Espero que os senhores tenham gostado. Sucesso a todos e até a próxima.

Nenhum comentário:

Postar um comentário