i am following this tutorial Walkthrough: Printing a Local Report without Preview
http://msdn.microsoft.com/en-us/library/ms252091.aspx
and made some changes since i doesnt have xml file, i have xsd file.
i am getting this error"Cannot create a data reader for dataset 'DataSet1'"
here is what i have done so far
using System; using System.IO; using System.Data; using System.Text; using System.Drawing.Imaging; using System.Drawing; using System.Drawing.Printing; using System.Data.SqlClient; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Collections.Generic; using System.Windows.Forms; //using Microsoft.Reporting.WinForms; using Microsoft.Reporting.WebForms; public partial class PortActivites : System.Web.UI.Page { private int m_currentPageIndex; private IList<Stream> m_streams; // Routine to provide to the report renderer, in order to // save an image for each page of the report. private Stream CreateStream(string name, string fileNameExtension, Encoding encoding, string mimeType, bool willSeek) { Stream stream = new MemoryStream(); m_streams.Add(stream); return stream; } // Export the given report as an EMF (Enhanced Metafile) file. private void Export(LocalReport report) { string deviceInfo = @"<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.25in</MarginTop><MarginLeft>0.25in</MarginLeft><MarginRight>0.25in</MarginRight><MarginBottom>0.25in</MarginBottom></DeviceInfo>"; Warning[] warnings; m_streams = new List<Stream>(); report.Render("Image", deviceInfo, CreateStream, out warnings); foreach (Stream stream in m_streams) stream.Position = 0; } // Handler for PrintPageEvents private void PrintPage(object sender, PrintPageEventArgs ev) { Metafile pageImage = new Metafile(m_streams[m_currentPageIndex]); // Adjust rectangular area with printer margins. Rectangle adjustedRect = new Rectangle( ev.PageBounds.Left - (int)ev.PageSettings.HardMarginX, ev.PageBounds.Top - (int)ev.PageSettings.HardMarginY, ev.PageBounds.Width, ev.PageBounds.Height); // Draw a white background for the report ev.Graphics.FillRectangle(Brushes.White, adjustedRect); // Draw the report content ev.Graphics.DrawImage(pageImage, adjustedRect); // Prepare for the next page. Make sure we haven't hit the end. m_currentPageIndex++; ev.HasMorePages = (m_currentPageIndex < m_streams.Count); } private void Print() { if (m_streams == null || m_streams.Count == 0) throw new Exception("Error: no stream to print."); PrintDocument printDoc = new PrintDocument(); if (!printDoc.PrinterSettings.IsValid) { throw new Exception("Error: cannot find the default printer."); } else { printDoc.PrintPage += new PrintPageEventHandler(PrintPage); m_currentPageIndex = 0; printDoc.Print(); } } public void Dispose() { if (m_streams != null) { foreach (Stream stream in m_streams) stream.Close(); m_streams = null; } } protected void btnSubmit_Click(object sender, EventArgs e) { ReportViewer1.ProcessingMode = ProcessingMode.Local; LocalReport rep = ReportViewer1.LocalReport; rep.ReportPath = "Reports\\DepartureReport.rdlc"; DataSet ds = new DataSet(); ReportDataSource DS = new ReportDataSource(); DS.Name = "DataSet1"; DS.Value = ds.Tables["SqlDataSource1"]; rep.DataSources.Clear(); ReportParameter Sdate = new ReportParameter("StartDate", txtStartDate.Text); ReportParameter Edate = new ReportParameter("EndDate", txtEndDate.Text); this.ReportViewer1.LocalReport.SetParameters(Sdate); this.ReportViewer1.LocalReport.SetParameters(Edate); rep.DataSources.Add(DS); rep.Refresh(); Export(rep); Print(); } }
<table class="auto-style1"><tr><td colspan="2">Port Activities</td><td> </td></tr><tr><td class="auto-style2">Date From</td><td class="auto-style3"><asp:TextBox ID="txtStartDate" runat="server"></asp:TextBox><asp:CalendarExtender ID="txtStartDate_CalendarExtender" runat="server" Enabled="True" TargetControlID="txtStartDate"></asp:CalendarExtender></td><td>Date To<asp:TextBox ID="txtEndDate" runat="server"></asp:TextBox><asp:CalendarExtender ID="txtEndDate_CalendarExtender" runat="server" Enabled="True" TargetControlID="txtEndDate"></asp:CalendarExtender></td></tr><tr><td class="auto-style2"><asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" /></td><td class="auto-style3"></td></td></tr></table><asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></asp:ToolkitScriptManager><rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Width="880px"><LocalReport ReportPath="Reports\DepartureReport.rdlc"><DataSources><rsweb:ReportDataSource DataSourceId="SqlDataSource1" Name="DataSet1" /></DataSources></LocalReport></rsweb:ReportViewer>
Cannot create a data reader for dataset 'DataSet1'.
Description: An
unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: Cannot create a data reader for dataset
'DataSet1'.
Source Error:
Line 52: Warning[] warnings;
Line 53: m_streams = new List<Stream>();Line 54: report.Render("Image", deviceInfo, CreateStream,Line 55: out warnings);
Line 56: foreach (Stream stream in m_streams) |