//打印 void UCReport_PrintEvent(object sender, EventArgs e) { string fileName = GetDefaultStyleFile(); // create report instance FastReport.Report report = new FastReport.Report(); if (!string.IsNullOrEmpty(fileName)) { report.Load(fileName); report.RegisterData(dt, styleObject); } else { Report.FastReportEx reportEx = new Report.FastReportEx(); reportEx.dicSpanRows = dicSpanRows; reportEx.dt = dt; reportEx.styleObject = styleObject; reportEx.styleTitle = styleTitle; report = reportEx.DefaultReport(); } if (paperSize != null && report.Pages.Count > 0) { FastReport.ReportPage page = (FastReport.ReportPage)report.Pages[0]; page.PaperHeight = paperSize.Height; page.PaperWidth = paperSize.Width; } report.Prepare(); report.Print(); report.Dispose(); }
private void btnPrint_Click(object sender, EventArgs e) { if (radGridView.Rows.Count == 0) { return; } try { this.Cursor = Cursors.WaitCursor; Njit.Program.FastReportExtensions.Forms.PrintPreview form = new Njit.Program.FastReportExtensions.Forms.PrintPreview(Setting.Program.ThisProgram.GetReportPath("Report.frx"), Njit.Program.FastReportExtensions.Forms.PrintPreview.PrintSizes.A4, null, 1); form.ReportDocument.SetParameterValue("CompanyName", Setting.Archive.ThisProgram.LoadedArchiveSettings.OrganName); form.ReportDocument.SetParameterValue("ReportPrintDate", Njit.Common.PersianCalendar.GetDate(DateTime.Now)); form.ReportDocument.SetParameterValue("ReportPrintTime", Njit.Common.PersianCalendar.GetTime()); Njit.Program.Forms.GetValue f = new Njit.Program.Forms.GetValue("دریافت عنوان", "عنوان گزارش را وارد کنید:"); if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK) { form.ReportDocument.SetParameterValue("Title", f.Value); } FastReport.ReportPage page = form.ReportDocument.Pages[0] as FastReport.ReportPage; FastReport.DataBand databand = page.Bands[0] as FastReport.DataBand; float width = databand.Width; foreach (var item in radGridView.Columns) { FastReport.TextObject bandText = new FastReport.TextObject(); bandText.CreateUniqueName(); bandText.HorzAlign = FastReport.HorzAlign.Center; int currentWidth = item.Width; bandText.Bounds = new RectangleF(width - currentWidth, 0.0f, currentWidth, databand.Height); bandText.Border.Lines = FastReport.BorderLines.All; //bandText.AutoWidth = true; bandText.RightToLeft = true; bandText.Font = new System.Drawing.Font("B Nazanin", 9); bandText.Text = "[ReportData." + item.Name + "]"; databand.AddChild(bandText); width -= item.Width;// bandText.CalcWidth(); } //databand.AfterLayout += databand_AfterLayout; DataTable dt = (radGridView.DataSource as DataTable).Clone(); dt.Rows.InsertAt(dt.NewRow(), 0); GetColumnsHeaders(dt.Rows[0]); foreach (DataRow row in (radGridView.DataSource as DataTable).Rows) { dt.Rows.Add(row.ItemArray); } form.ReportDocument.RegisterData(dt, "ReportData"); form.ReportDocument.GetDataSource("ReportData").Enabled = true; databand.DataSource = form.ReportDocument.GetDataSource("ReportData"); form.ShowDialog(this); } finally { this.Cursor = Cursors.Default; } }