Usuário com melhor resposta
ReportViewer em Branco

Pergunta
-
Pessoal sei que tem alguns assuntos tratando disso mas infelizmente não achei algo que me ajudasse...
Estou com um projeto 90% pronto só está faltando os relatórios e estou tentando fazer em Reportviewer onde a maioria das pessoas me indicou...
Estou usando o Vs 2012 e Sql Server 2008 já peguei dezenas sem exagerar até centenas de exemplo na internet faço passo a passo conforme quem está fazendo o tutorial manda e o meu relatório fica em branco.
Alguém consegue me dar uma luz? Já estou a 3 semanas quebrando cabeça e até agora nada.
Grato,
Wagner
Wagner_fix
- Editado Wagner_fix quarta-feira, 22 de junho de 2016 02:07
Respostas
-
Wagner acho que o erro está aqui
Dim caminhoRpt As String = HttpContext.Current.Server.MapPath("~/Relatorios/")
Tem que ter o relatorio .rdlc veja meu caminho
reportViewer1.LocalReport.ReportPath = "Forms/Tecnico/RptColetaXProcessamento.rdlc"
o RptColetaXProcessamento.rdlc é o reportviewer fisico.
Junior
- Marcado como Resposta Thales F Quintas quinta-feira, 23 de junho de 2016 13:03
Todas as Respostas
-
-
-
Então vamos lá, primeiro vc tem que criar um dataset, no dataset vc pode criar um tabaleadapter ou um table a diferença é que no tableadapter vc salva sua consulta e cola e ele executa e gera os colunas com os campos da sua consulta, no table vc cria as colunas bastando clrt + l.
Então vc cria um rdlc arquivo (report viewer) e vincula o dataset ao seu dataset que vc criou acima e ele trará os campos. no rdlc vc adiciona uma table e na table vc vai selecionando os campos que vc quer.
Fisicamente está finalizado.
Vou postar um exemplo meu onde gero o relatório em pdf.
using Microsoft.Reporting.WebForms; no load da página var reportViewer1 = new ReportViewer { ProcessingMode = ProcessingMode.Local };
reportViewer1.LocalReport.ReportPath = "caminho fisico do seu relatorio.rdlc"; reportViewer1.LocalReport.EnableExternalImages = true; reportViewer1.LocalReport.EnableHyperlinks = true; //caso seu relatorio tenha parametros List<ReportParameter> parametros = new List<ReportParameter>(); parametros.Add(new ReportParameter("usuario", usuario)); parametros.Add(new ReportParameter("data", data)); parametros.Add(new ReportParameter("empresa", empresa)); //executa sua sql string sql = "sua consulta"; o getdata apenas passo a conexao com o banco e executo a consulta. var dt2 = GetData(sql); reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", dt2)); //converter para pdf var bytes = reportViewer1.LocalReport.Render("PDF"); Response.Buffer = true; Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "inline;attachment; filename=nome do seu relatorio.pdf"); Response.BinaryWrite(bytes); Response.Flush(); // send it to the client to download Response.Clear(); dt2.Dispose();
Junior
- Marcado como Resposta Thales F Quintas quarta-feira, 22 de junho de 2016 16:12
- Não Marcado como Resposta Wagner_fix quarta-feira, 22 de junho de 2016 17:42
-
Junior primeiramente muito obrigado por você ter tirado um tempo para me ajudar.
Eu estou fazendo o meu projeto em Vb.Net e mesmo usando um site de conversão de linguagem de C# para Vb.Net não consegui fazer funcionar alguns parâmetros estão com erro.
Veja o meu código Vb.Net foi o que eu cheguei mais próximo para funcionar.
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'define o modo Local como o processamneto para o ReportViewer ReportViewer1.ProcessingMode = ProcessingMode.Local Dim rep As LocalReport = ReportViewer1.LocalReport 'obtem o caminho do relatório Dim caminhoRpt As String = HttpContext.Current.Server.MapPath("~/Relatorios/") 'define o local do relatorio criado rep.ReportPath = caminhoRpt & "report.rdlc" 'obtem o dataset Dim ds As DataSet = GetVendas() 'Cria uma fonte de dados no relatório para o dataset vendas Dim dsVendasRpt As New ReportDataSource() 'define o nome do datasource 'dsVendasRpt.Name = "linksite1DataSet_CLIENTE" dsVendasRpt.Name = "DataSet1" 'usa primeira tabela do dataset dsVendasRpt.Value = ds.Tables(0) 'atribui o datasource ao relatorio rep.DataSources.Add(dsVendasRpt) End Sub Private Function GetVendas() As DataSet Dim ds As New DataSet Dim sqlVendas As String = "SELECT * FROM CO_MOV_DG" Using conexaoSQL As New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionASPX").ConnectionString.ToString()) Dim command As New SqlCommand(sqlVendas, conexaoSQL) Dim daVendas As New SqlDataAdapter(command) daVendas.Fill(ds) daVendas.Dispose() command.Dispose() End Using Return ds End Function
E desse jeito quando abre a página fica em branco conforme a imagem que vou colocar em anexo.
Wagner_fix
-
Wagner acho que o erro está aqui
Dim caminhoRpt As String = HttpContext.Current.Server.MapPath("~/Relatorios/")
Tem que ter o relatorio .rdlc veja meu caminho
reportViewer1.LocalReport.ReportPath = "Forms/Tecnico/RptColetaXProcessamento.rdlc"
o RptColetaXProcessamento.rdlc é o reportviewer fisico.
Junior
- Marcado como Resposta Thales F Quintas quinta-feira, 23 de junho de 2016 13:03
-
Junior fiz igual você me passou e continua em branco.
Olha que interessante, voltei no report.rdlc do lado esquerdo onde mostra qual dataset eu interliguei não aparece mais sumiu.
Será que é isso que ele está perdendo a referência?
Não era para ficar lá sempre que eu consultasse?
Segue o print...
Wagner_fix
-
-
-