Consultoria na Montagem de Relatóario com Gráficos

02/01/2009

Solicito consultoria em como proceder para fazer uma consulta parametrizada para gerar um relatório e um Grafico  onde o usuario devera informar um período e escolher o código de um cliente e um produto especifico numa DropDownlist e partindo destes dados gerar um relatório e um grafico com os resultados de um determinado produto, de um cliente no periodo determinado. select  cli.codcli, cli.nome, pr.codprod,pr.descricao, ped.mes(dataped), count(codprod)
from PEDIDOS PED
inner join CLIENTES CLI on CLI.codcli = PED.codcli
inner join ITENS IT on IT.numpedido = PED.numpedido
inner join PRODUTOS PR on PR.codprod = IT.codprod
where
cli.codcli = @codigo 
and ped.dataped between @dataini,@datafim
and pr.CODPROD = @codprod
group by cli.codcli, cli.nome, pr.codprod,pr.descricao, ped.mes(dataped)
order by ped.mes(dataped)
Exemplo do relatório e consequentemente os dados para o grafico de barra COD/NOME CLIENTE     COD/DESC PRODUTO        MES               Qtde
001 Cliente 1        100 PRODUTO 100           01               10
001 Cliente 1        100 PRODUTO 100           02  15           
001 Cliente 1        100 PRODUTO 100           03  20
001 Cliente 1        100 PRODUTO 100           04  30 
001 Cliente 1        100 PRODUTO 100           05  25 
001 Cliente 1        100 PRODUTO 100           06  20
001 Cliente 1        100 PRODUTO 100           07  40
001 Cliente 1        100 PRODUTO 100           08  15
001 Cliente 1        100 PRODUTO 100           09  20
001 Cliente 1        100 PRODUTO 100           10  30
001 Cliente 1        100 PRODUTO 100           11  45
001 Cliente 1        100 PRODUTO 100           12  50 Atte
Sérgio
Sergio Santos

Sergio Santos

Curtidas 0

Respostas

[devmedia .net]

[devmedia .net]

02/01/2009

Opa, blz Sérgio ?   Cara tem um curso completo sobre Report Viewer aqui na DevMedia..   Veja o módulo - Módulo II - Report Viewer do curso: https://www.devmedia.com.br/cursos/listcurso.asp?curso=70 Lembrando que o Report Viewer é mais interessante por ser mais simples e ser completo...   Caso não tenha acesso ao curso me fale..   Aguardo seu contato..   Grande abraço   Carlos Jr
GOSTEI 0
Sergio Santos

Sergio Santos

02/01/2009

Carlos   Já vi este video, mas ele não esclareceu a minha duvida. Vou trabalhar com 3 parametros e ainda preciso ter a opção de Imprimir o relatório ou gerar o gráfico, baseado na mesma consulta.   Continuo aguardando a sua ajuda!   []s Sérgio e Feliz Ano novo pra vc!
GOSTEI 0
[devmedia .net]

[devmedia .net]

02/01/2009

Caro Sérgio, essa curso explica exatamente o que você está precisando.. Como enviar parâmetros, como imprimir os relatórios que já é nativo do Report Viewer, gerar gráficos.. e etc...   Se ela não te atende, acho que não entendi sua dúvida... Poderia explicar melhor ?   No aguardo..   Abraços   Carlos Jr
GOSTEI 0
Sergio Santos

Sergio Santos

02/01/2009

Prezado Carlos Jr   Já vi o video do Luciano Pimenta e neste video ele utiliza os terriveis wizards.   Tomei trauma de wizards...rs.rs Segui o seu conselho.   A quetão é que para a miha consulta terei 4 parametros (Cod.Cliente, Cod. Produto, DataInicial e DataFinal), e preciso passar estes parametros para o comando SQL no ObjectSource.   No exemplo que ele utiliza, ele faz um passagem de parametro onde escolhe o tipo de controle (ControlID), que é um textBox e pega o seu conteudo, mas tudo isto via wizard.   No Exemplo dele, mesmo sendo wizard da maneira que ele faz eu não saberia passar as datas para a consulta. Acho que teria que trata-las antes, não sei.   Espero que tenha ficado mais claro.   Desde já agradeço a atenção! []s Sérgio      
GOSTEI 0
[devmedia .net]

[devmedia .net]

02/01/2009

Opa, blz Sérgio !? Agora sim entendi o que deseja, bom eu não vou lhe ensinar como adicionar o relatório pois isso a video aula ensina, vou direto aos parâmetros ok !?   Adição do relatório é simples, somente arrastar o relatório para uma página aspx  e montar o relatório da mesma maneira como mostrado, ok !?   Os parâmetros é o seguinte...
1 - Vamos adicionar primeiro nosso Report Viewer para visualização dos relatórios em sua página ASP.NET: 2 - Agora basta configurar o Report Viewer para exibir o relatório escolhido, passando os parâmetros solicitados por ele. Abaixo segue o código comentado para exeutar a tarefa:

//Informa o modo de execução do relatório (Local ou Remoto)
Relatorios.ProcessingMode = ProcessingMode.Remote; //Informar respectivamente as URLs do Servidor Report Service e do Relatório a ser executado
Relatorios.ServerReport.ReportServerUrl = new Uri(“http://servidorrelatorio/reportserver”);
Relatorios.ServerReport.ReportPath = “/Empresa/Sistema/Relatorio”;

//Vamos criar a atribuir valores para os parametros
ReportParameter[] reportParams = newReportParameter[2];
reportParams[0] = new Microsoft.Reporting.WebForms.ReportParameter(“@Parametro1″, “valor1″);
reportParams[1] = new Microsoft.Reporting.WebForms.ReportParameter(“@Parametro2″, “valor2″);

//Atribumos os parametros criados para o relatorio
Relatorios.ServerReport.SetParameters(reportParams);

//Desabilita o barra de parametros do Report viewer
Relatorios.ShowParameterPrompts = false;

//Atualiza o relatorio para exibição
Relatorios.ServerReport.Refresh();   Caso não tenha o ReportViewer instalado baixe aqui:
Download do ReportView:
http://msdn.microsoft.com/vstudio/express/vwd/download/default.aspx   Para geração dos gráficos funciona da mesma maneira, você arrasta o componente Chart para o relatório e passa os parâmetros da mesma maneirca como em um realtório e da mesma maneira que é exibido na video aula.   Segue abaixo um tutorial de como criar os gráficos... Gráfico de barras simples mostrando os Dez produtos mais caros. Para isso eu vou usar o banco de dados Northwind.mdf e a stored procedure : Ten Most Expensives Products. Crie um novo site web no menu File-> New Web Site, usando o template ASP .NEt Web Site, com o nome ReportGraph1; A seguir selecione a página Default.aspx e a coloque no modo Design. Agora a partir da ToolBox , guia Data, selecione e arraste para a página o componente ReportViewer; Na barra ReportViewer Tasks clique no link - Design a new report para iniciar a criação de um novo relatório; No menu Data, selecione Show Data Sources e a seguir clique no link - Add New Data Source - para incluir uma fonte de dados em nosso projeto; O assistente de configuração irá surgir; Na janela Choose your Data Connection , selecione uma conexão com o banco de dados Northwind.mdf e clique em Next>; Na próxima janela aceite nome padrão dado a string de conexão e clique no botão Next> deixando marcado a opção para salvar a string de conexão no web.config; Na janela Choose a Command Type marque a opção : Use existing stored procedures e clique no botão Next>; Na janela - Bind Commands to Existing Stored Procedures - caixa Select , escolha a stored procedure : Ten Most Expensive Products e clique em Next>; A seguir clique no botão Next>  e para encerrar em Finish; Ao término desta etapa você verá o dataset criado exibindo os campos - UnitPrice e TenMostExpensiveProducts, a ToolBox do Report e os arquivos do projeto conforme figura abaixo; Agora vamos arrastar o componente Chart da ToolBox e soltar no relatório. Você verá o componente exibindo um modelo gráfico. Na janela Data Sources selecione o campo UnitPrice e arraste e solte na seção - Drop data fields here; Na sequência arraste e solte o campo TenMostExpensiveProducts na seção - Drop category fields here;     Clique com o botão direito sobre o gráfico e selecione a opção: Properties; Será aberta a janela Chart Properties. Vamos efetuar as seguintes configurações: Na guia General : - Defina o nome do gráfico - netChart;
- Selecione a Pallete : Default;
- Informe o título do gráfico: Dez Produtos mais caros;
- Selecione o tipo de gráfico: Column Chart; Nota: Temos diversas opções de gráficos: Barras, Linhas,  Pizza, Área
Bolha, etc.  Na guia X Axis , informe o título do eixo x : Produtos   Na guia Y Axis, informe o título do eixo y : Preço (R$) Na guia Legend desmarque a opção Show Legend. Nas demais guias não vamos alterar nenhum valor. Agora faça alguns ajustes no tamanho do relatório e do componente ReportViewer na página Default.aspx. Selecione o formulário Web Default.aspx e no componente ReportViewer em Choose Report escolha o relatório que criamos chamado : report1.rdlc. Executando o projeto iremos obter a página Default.aspx exibindo o relatório: Vamos agora incrementar o nosso relatório. Que tal exibir na cor azul os produtos com preço acima de R$ 100 e os demais na cor vermelha ? Para isso vamos incluir uma fórmula no relatório da seguinte forma: Selecione o relatório report1.rdlc e clique com o botão direito do mouse sobre o mesmo; Selecione a guia Data e em Values clique no botão Edit; Na janela Edit Chart Value selecione a aba Appearance e clique no botão Series Style...; Na janela Style Properties clique na aba Fill; A seguir clique no botão Fx relacionado a propriedade Color; A seguir defina na janela Edit Expression a expressão abaixo para exibir em azul produtos com preço maior que 100 e o restante em vermelho; Executando novamente o projeto iremos obter a página Default.aspx exibindo o seguinte gráfico: Usar o Report Viewer para criar gráficos é muito simples e ainda podemos aplicar alguns recursos.   Sérgio, se mesmo assim não conseguir resolver o problema me avise que eu dou um jeito de explicar melhor. Estou aqui para resolver seu problema e te atender,  ok!?   Grande Abraço   Carlos Jr
GOSTEI 0
[devmedia .net]

[devmedia .net]

02/01/2009

Opa, blz ? Conseguiu resolver ? Aguardo um contato seu..   Abraços   Carlos Jr
GOSTEI 0
Sergio Santos

Sergio Santos

02/01/2009

#ID: 1675   Postado em: 1/7/2009 2:59:15 PM
Prezado Carlos  Algumas dúvidas: 1o) Existe alguma maneira de configurar o report Viewer para que o relatório já saia em modo Retrato (Horizontal) qdo for impresso?   2o) Existe alguma maneira de configurar as margens de um relatório?   Atte Sérgio
GOSTEI 0
[devmedia .net]

[devmedia .net]

02/01/2009

Opa, blz Sérgio.. ?   Para imprimir em Paisagem, é só ajustar o tamanho da página...  Abra o relatório no Report Designer, abra a janela de Propriedades (Properties), e inverta o valor das propriedades Interactive Size e Page Size. Se não estou enganado, o valor padrão é Largura (Width) "8.5", e Altura (Height) = "11", então é só inverter para Largura (Width) "11", e Altura (Height) = "8.5". 2) Para alterar as margens e o tamanho do papel no ReportView, eu conheço apenas em tempo de designer.   Minha sugestão: Para resolver o problema basta diminuir a largura "width" "body" do relatório.   Um exemplo: Para um relatório configurado para papel A4 (Menu Reports - Report Properties - "aba Layout") Tamanho da página Largura: 21 cm Altura: 29,7 cm  Com margens: Esquerda  2 cm
Direita 2 cm  Largura "real" do relatório "designer" item "body" Largura = Largura da página - Margem Esquerda - Margem Direita     Abraços
Carlos Jr
GOSTEI 0
Sergio Santos

Sergio Santos

02/01/2009

Carlos   Existe alguma maneira de passar estes parametros para a configuraão da impressora via ReportViewer?   []s Sérgio
GOSTEI 0
[devmedia .net]

[devmedia .net]

02/01/2009

Opa, Blz .. Infelizmente não tem como fazer isso de maneira automática, pois as configurações de impressões dependem diretamente do software das impressoras, e são elas que calculam a área de impressão, portatno deve ser feito no momento da impressão, ow, configurar cada relatório da maneira que deseja que saia, mas isso é no momento de designer.   Abraços   Carlos Jr
GOSTEI 0
POSTAR