Fórum Relatórios no VS.NET #6513
05/06/2009
Amigos,
Literalmente estou apanhando,
Conheço pouco sobre os relatórios no Visual Studio e o pouco que conheço foram em vídeo Aulas Apresentadas,
Sei que existe o REPORT VIEW, REPORT SERVICE, cRYSTAL rEPORT E OUTROS,
Bom,
Oque eu preciso,
Criar um Formulário que Tenha uma opção de se escolher o relatório que é solicitado e apresetnar na tela.
Vejam
Criei o Formulário. Acrescentei um TReeview e um Report View.
Os relatórios ( a princío estão Prontos)
Minha Dúvida é,
Report View:
É necessário um Dataset para cadas relatório? Se necessário isto não ocupa um espaço maior em memória?
Criei um Data Set a acrescentei 2 Views do Sql Server prontas com os dados do meu relatório, mas ele sempre dá problemas de CONSTRAINTS, ChAVE ÚNICA.
Alguem pode me dar um exemplo de uma aplicação (simples) mas pronta.
Obs. Quanto a Formatação e criação do Report não há necessidade de uma explicação mais detalhada.
Grato peka ajuda
Posts
Fernando, tudo bom?
O ReportViewer é somente um visualizador facilitador, um controle que o Visual Studio te fornece para atachar seus Relatorios, sejam eles feitos usando o ReportingService ou Crystal.
Faça cada relatorio separado, ou seja, um arquivo .rdbl para cada uma, com um datasource para cada, não se preocupe com espaço e memoria.
Depois é so lincar o relatorio ao reportviewer de acordo com o que foi escolhido no menu TreeView.
Não tenho um aplicação ja pronta para lhe fornecer, mas caso seja necessário posso montar uma usando o NorthWind da MS, vc tem ele ai?
Abraços
Att
Luiz Maia
Ola Luiz,
Tenho o NorthWind sim
e sinceramente te paço gentileza preparar algo para que eu possa vizualizar de uma forma melhor,
estou "apanhando" muito com isto e sinceramente prefiro voltar do começo para melhor esclarecimentos,
Fico no aguardo,
Abraços
Ola Fernando,
Fiz a aplicação toda aqui pra vc, ok?
Caso esteja usando o VB ao inves do C#, basta transcrever o codigo, sem problemas.
Repare que no TreeView eu passo o Codigo do Relatorio por parametro para cada chamada a Pagina pela URL, assim no PageLoad ou monto o Relatorio que quero de acordo com o que foi escolhido no menu treeview.
http://video.devmedia.com.br/naoexclusivo/LuizMaia/Consultoria/reports_fernando.zip
Espero ter ajudado, e desculpe a demora.
Abraços
Att
Luiz Maia
Obrigado,
Vou testar e respondo em Breve
Grato
OK Fernando, aguardo seu retorno.
Abraços
Att
Luiz Maia
Ola Fernando,
Como esta indo com os relatorios? Deu tudo certo?
Aguardo resposta ok.
Abraços
Att
Luiz Maia
Ola Fernando,
Como não obtivemos retorno de sua soliticitação, estamos procedendo com o fechamento do chamado. Caso a dúvida ainda persista você pode reabrí-lo.
Estamos a sua disposição para qualquer dúvida.
Abraços
Att
Luiz Maia
Pode porfavor enviar o código parar abertura dos relatórios mas em
Windows Forms
ou seja
NÂO EM ASP.NET..
Grato
Ola Fernando,
Windows Forms ou ASP.net, a estrutura é a mesma.
É so você alterar de C# para VB. O intuito do sistema "Tira dúvidas", como proprio nome já diz, é somente tirar duvidas, citar uma direção e uma solução. Não inclui fazer codificação para os solicitantes, mas eu costumo fazê-lo, pois sei que o entendimento fica mais fácil. Esperoq
Ola Fernando,
Windows Forms ou ASP.net, a estrutura é a mesma.
É so você alterar de C# para VB.
O intuito do sistema "Tira dúvidas", como proprio nome já diz, é somente tirar duvidas, citar uma direção e uma solução. Não inclui fazer codificação para os solicitantes, mas eu costumo fazê-lo, pois sei que o entendimento fica mais fácil.
Espero que entenda. O Codigo que desenvolvi para vc, foi somente como exemplo. E C# ou VB, só muda a sintaxe.
Se sua duvida persistir, não exite em nos contactar, ok?
Aguardo um retorno seu.
Abraços
Att
Luiz Maia
Luiz,
Entendo e agradeço, mas neste caso em específico, não consigo utilizar o mesmo código que enviou em ASP.NEt para Windows Forms.
Veja que existe uma referencia a as páginas ASP.NET , WebControl
Tentei aplicar isto ao Windows Forms e Não Funciona. ( ou não tenho QI , suficiente....kkkk)
Se puder me ajudar com o mesmo exemplo, mas em Windows Forms eu agradeceria muito
Não Consigo passar este código para Windows Forms
Onde estou errando
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
int codRelatorio = Convert.ToInt32("0" + Request.QueryString["Relatorio"]);
Microsoft.Reporting.WebForms.ReportDataSource rds;
ReportViewer1.Reset();
ReportViewer1.LocalReport.Dispose();
switch (codRelatorio)
{
case 0:
ReportViewer1.LocalReport.DataSources.Clear();
rds = new Microsoft.Reporting.WebForms.ReportDataSource("Produtos_Products", "ObjectDataSource2");
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.ReportPath = "Produtos.rdlc";
// Fernando: aqui tb vc adiciona os parametros caso tenha algum, ok...
break;
case 1:
ReportViewer1.LocalReport.DataSources.Clear();
rds = new Microsoft.Reporting.WebForms.ReportDataSource("Produtos_Products", "ObjectDataSource2");
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.ReportPath = "Produtos.rdlc";
// Fernando: aqui tb vc adiciona os parametros caso tenha algum, ok...
break;
case 2:
ReportViewer1.LocalReport.DataSources.Clear();
rds = new Microsoft.Reporting.WebForms.ReportDataSource("Clientes_Customers", "ObjectDataSource1");
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.ReportPath = "Clientes.rdlc";
// Fernando: aqui tb vc adiciona os parametros caso tenha algum, ok...
break;
}
ReportViewer1.LocalReport.Refresh();
ReportViewer1.Visible = true;
ReportViewer1.ShowReportBody = true;
}
}
Não Consigo passar este código para Windows Forms
Onde estou errando
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
int codRelatorio = Convert.ToInt32("0" + Request.QueryString["Relatorio"]);
Microsoft.Reporting.WebForms.ReportDataSource rds;
ReportViewer1.Reset();
ReportViewer1.LocalReport.Dispose();
switch (codRelatorio)
{
case 0:
ReportViewer1.LocalReport.DataSources.Clear();
rds = new Microsoft.Reporting.WebForms.ReportDataSource("Produtos_Products", "ObjectDataSource2");
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.ReportPath = "Produtos.rdlc";
// Fernando: aqui tb vc adiciona os parametros caso tenha algum, ok...
break;
case 1:
ReportViewer1.LocalReport.DataSources.Clear();
rds = new Microsoft.Reporting.WebForms.ReportDataSource("Produtos_Products", "ObjectDataSource2");
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.ReportPath = "Produtos.rdlc";
// Fernando: aqui tb vc adiciona os parametros caso tenha algum, ok...
break;
case 2:
ReportViewer1.LocalReport.DataSources.Clear();
rds = new Microsoft.Reporting.WebForms.ReportDataSource("Clientes_Customers", "ObjectDataSource1");
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.ReportPath = "Clientes.rdlc";
// Fernando: aqui tb vc adiciona os parametros caso tenha algum, ok...
break;
}
ReportViewer1.LocalReport.Refresh();
ReportViewer1.Visible = true;
ReportViewer1.ShowReportBody = true;
}
}
Oi Fernando, blz?
Windows Forms não tem Request.Querystring, e outras coisas que esta no metodo que te passei. Foi so uma sugestão de implementação. Mas vou fazer para vc em Windows, ok?
Assim que estiver pronto, te aviso e disponibilizo no Disco Virtual.
Abraços
Ate mais
Att
Luiz Maia