Gerando relatórios com Stimulsoft Reports (WPF)

                Os relatórios são de grande importância em um sistema seja ele de pequeno, médio ou de grande porte. A maioria dos usuários de computador que utilizam sistemas de informática necessitam de alguma informação dos resultados lançados em seus programas. Neste artigo veremos um pequeno exemplo de gerador de relatórios para WPF.

                Para este artigo utilizaremos a IDE gratuita da Microsoft Visual C# 2010 Express:


 E o gerador de relatórios Stimulsoft Reports (WPF) disponível para download no site: http://www.stimulsoft.com/Downloads.aspx, veja:

Para esse projeto adiciona-se uma nova classe, clique com o botão direito do mouse sobre o projeto e criado e adicione uma nova classe chamada Produto,  e adicione o seguinte código:

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace wpfRelatorios

{

    public class Produto

    {

        private long id;

        private string descricao;

        private decimal preco;

 

        public long Id

        {

            get { return id; }

            set { id = value; }

        }

 

        public string Descricao

        {

            get { return descricao; }

            set { descricao = value; }

        }

 

        public decimal Preco

        {

            get { return preco; }

            set { preco = value; }

        }

 

    }

}

Agora vamos adicionar os assemblys do gerador de relatórios ao projeto, para isso clique com o botão direito do mouse sobre o projeto e escolha a opção Add Reference, e escolha os seguintes assemblys: Stimulsoft.Base, Stimulsoft.Report e Stimulsoft.Report.Wpf. Estes assemblys se encontram na pasta onde você extraiu os arquivos do gerador de relatórios, veja:

Abra o formulário criado pelo projeto  (MainWindow.xaml) e adicione um botão e mude o texto dele para “Criar relatório”, veja:

Adicione os namespaces: Stimulsoft.Report.Wpf e Stimulsoft.Report, veja como ficou com os namespaces adicionados:

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Shapes;

using Stimulsoft.Report.Wpf;

using Stimulsoft.Report;

using System.Data;

 

                De um duplo clique no botão e adicione o seguinte código:

 

Produto prod = new Produto();

           

StiReport report = new StiReport();

report.RegData("Produto", prod);

report.DesignWithWpf();

 

                Execute o projeto e clique no botão, com isso o gerador de relatórios será acionado passando a ele como parâmetro o objeto prod, assim o gerador cria automaticamente uma referência a este objeto, veja a tela do gerador:


 

Observe que temo o nome DEMO no relatório isso acontece porque estamos com uma versão apenas de demonstração, veja que no canto inferior direito nos temos três guias, a guia Properties onde aparecem as propriedades do objeto selecionado no relatório, a guia Dictionary onde ficam os dados e a guia report tree onde podemos ver os objetos dos relatórios em cascata.

                Escolha a guia Dictionary e expanda a opção Data Sources, veja que temos opção Produto, pois passamos como referência para o relatório um objeto produto, vamos utilizar este data source Produto para criarmos o nosso relatório.

                Vamos adicionar o título do nosso relatório para isso clique em pequeno botão logo abaixo do pincel no canto esquerdo da tela e escolha a opção Header, veja:

Agora clique com o mouse sobre o relatório que uma banda será criada, veja:

Adicione um objeto text a banda criada e escreva na propriedade text do mesmo o seguinte texto:  Relatório de produtos.

Objeto Text.

                Veja como ficou o título:

Ótimo mas ainda falta criarmos uma nova banda para adicionarmos a descrição dos campos que serão impressos, clique novamente no botão responsável por adicionar as bandas e escolha a opção Collumn Header, veja:



                Adicione esta banda ao relatório:

                Agora basta adicionar um objeto text para cada campo do relatório e adicionar o texto correspondente, veja como fica:


                Agora precisamos apenas adicionar a banda onde os dados serão exibidos, adicione uma banda do tipo data, veja:


                Depois de adicionar a banda nova, selecione-a e em seguida procure a propriedade DataSource:



                Clique no botão com três pontos que irá aparecer os Data Sources disponíveis, escolha a opção produto conforme a figura a abaixo:

Pronto agora nossa banda de dados está ligado ao datasource basta agora arrastar os campos para esta banda, para isso escolha a guia Dictionary e expanda o Data Sourcers até ficar desta maneira:

                Observe que os campos do objeto produto apareceram, são eles Id, Descricao e Preco, ou seja, são as propriedades do nossa classe Produto. Agora é muito simples basta fixar o botão esquerdo do mouse sobre o campo desejado e arrastar para a banda de dados, veja como ficou nosso relatório:



                Neste momento nosso relatório ficou pronto, vamos salvá-lo na raiz do computador apenas para ficar mais fácil sua referência, clique no botão salvar e salve no diretório C:\ com o nome de rptProdutos e em seguida feche o gerador e volte ao projeto:


                Volte ao projeto e adicione um botão com seguinte texto “Exibir relatório”, veja:



                Dê um duplo clique no botão exibir relatório e adicione o seguinte código:

            List<Produto> lstProdutos = new List<Produto>

            {

                new Produto{Id = 1, Descricao="ARROZ", Preco=7.75M},

                new Produto{Id = 2, Descricao="FEIJÃO", Preco=4.84M},

                new Produto{Id = 3, Descricao="MACARRÃO", Preco=3.24M},

                new Produto{Id = 4, Descricao="FARINHA", Preco=2.48M},

                new Produto{Id = 5, Descricao="OLEO", Preco=2.57M},

                new Produto{Id = 6, Descricao="MAIONESE", Preco=3.99M},

            };

 

            StiReport report = new StiReport();

            report.RegData("Produto", lstProdutos);

            report.Load(@"C:\rptProdutos.mrt");

            report.ShowWithWpf();

               

Com isso passamos uma lista de Produtos para o relatório, execute o projeto e veja o resultado:

                Ainda podemos mudar o visual para o estilo Office, basta trocar alinha report.ShowWithWpf(); por report.ShowWithWpfRibbonGUI();, veja o resultado:



                Observe que o visual ficou diferente.

                Aproveite e conheça as propriedades de cada componente como Fonte, Cor, Alinhamento e etc.

                Paramos por aqui, vou criar novos artigos sobre este excelente gerador de relatórios, apresentando pontos importantes como totalização e agrupamento de dados.

                Até a próxima.