public static void SilentPrint(string reportPath, string parameters, string printerName = null) { var rdlViewer = new fyiReporting.RdlViewer.RdlViewer(); rdlViewer.Visible = false; rdlViewer.SourceFile = new Uri(reportPath); rdlViewer.Parameters = parameters; rdlViewer.Rebuild(); var pd = new PrintDocument(); pd.DocumentName = rdlViewer.SourceFile.LocalPath; pd.PrinterSettings.FromPage = 1; pd.PrinterSettings.ToPage = rdlViewer.PageCount; pd.PrinterSettings.MaximumPage = rdlViewer.PageCount; pd.PrinterSettings.MinimumPage = 1; pd.DefaultPageSettings.Landscape = rdlViewer.PageWidth > rdlViewer.PageHeight; pd.PrintController = new StandardPrintController(); // convert pt to hundredths of an inch. pd.DefaultPageSettings.PaperSize = new PaperSize( "", (int)((rdlViewer.PageWidth / 72.27) * 100), (int)((rdlViewer.PageHeight / 72.27) * 100)); if (!string.IsNullOrWhiteSpace(printerName) && printerName != SET_DEFAULT_PRINTER) { pd.DefaultPageSettings.PrinterSettings.PrinterName = printerName; } try { if (pd.PrinterSettings.PrintRange == PrintRange.Selection) { pd.PrinterSettings.FromPage = rdlViewer.PageCurrent; } rdlViewer.Print(pd); } catch (Exception ex) { #if !DEBUG const string rdlreaderlog = "RdlReaderLog.txt"; if (!File.Exists(rdlreaderlog)) { File.Create(rdlreaderlog).Dispose(); } File.AppendAllLines( rdlreaderlog, new[] { string.Format("[{0}] {1}", DateTime.Now.ToString("dd.MM.yyyy H:mm:ss"), ex.Message) }); #endif Debug.WriteLine(Strings.RdlReader_ShowC_PrintError + ex.Message); } }
private void ManualDataTable_Click(object sender, System.EventArgs e) { if (this.rdlViewer.SourceRdl == null) { MessageBox.Show("Hit the Set Report button first!"); return; } // Create a DataTable and manually populate it. DataTable dt = new DataTable(); // The column names need to match the Field DataField element dt.Columns.Add(new DataColumn("ContactName", typeof(string))); dt.Columns.Add(new DataColumn("Phone", typeof(string))); // Create some data and add it to the data table string[] rowValues = new string[2]; rowValues[0] = "Lily"; rowValues[1] = "617-555-1234"; dt.Rows.Add(rowValues); rowValues[0] = "Daisy"; rowValues[1] = "617-555-8324"; dt.Rows.Add(rowValues); // Tell the report to use the data Report rpt = this.rdlViewer.Report; // Get the report fyiReporting.RDL.DataSet ds = rpt.DataSets["Data"]; // get the data set ds.SetData(dt); // set the data for the dataset rdlViewer.Rebuild(); // force report to get rebuilt }
public static void SilentPrint(string reportPath, string parameters, string printerName = null) { var rdlViewer = new fyiReporting.RdlViewer.RdlViewer(); rdlViewer.Visible = false; rdlViewer.SourceFile = new Uri(reportPath); rdlViewer.Parameters = parameters; rdlViewer.Rebuild(); var pd = new PrintDocument(); pd.DocumentName = rdlViewer.SourceFile.LocalPath; pd.PrinterSettings.FromPage = 1; pd.PrinterSettings.ToPage = rdlViewer.PageCount; pd.PrinterSettings.MaximumPage = rdlViewer.PageCount; pd.PrinterSettings.MinimumPage = 1; pd.DefaultPageSettings.Landscape = rdlViewer.PageWidth > rdlViewer.PageHeight; pd.PrintController = new StandardPrintController(); // convert pt to hundredths of an inch. pd.DefaultPageSettings.PaperSize = new PaperSize( "", (int)((rdlViewer.PageWidth / 72.27) * 100), (int)((rdlViewer.PageHeight / 72.27) * 100)); if (!string.IsNullOrWhiteSpace(printerName) && printerName != SET_DEFAULT_PRINTER) { pd.DefaultPageSettings.PrinterSettings.PrinterName = printerName; } try { if (pd.PrinterSettings.PrintRange == PrintRange.Selection) { pd.PrinterSettings.FromPage = rdlViewer.PageCurrent; } rdlViewer.Print(pd); } catch (Exception ex) { #if !DEBUG const string rdlreaderlog = "RdlReaderLog.txt"; if (!File.Exists(rdlreaderlog)) { File.Create(rdlreaderlog).Dispose(); } File.AppendAllLines( rdlreaderlog, new[] { string.Format("[{0}] {1}", DateTime.Now.ToString("dd.MM.yyyy H:mm:ss"), ex.Message) }); #endif Debug.WriteLine(Strings.RdlReader_ShowC_PrintError + ex.Message); } }