/*********************** * 说明:打印设置模版 * 创建人:龚宇超 * 创建日期:2018-06-21 * 修改人: * 修改日期: * 修改备注: * 版本:1.0.0.0 ***********************/ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using DevExpress.XtraReports.UI; using Lskj.Business.Impl; using Lskj.Control.Model; using DevExpress.XtraReports.UserDesigner; using DevExpress.XtraReports.Localization; using DevExpress.XtraPrinting; namespace Lskj.Control { public partial class FrmPrintDesign : Form { public FrmPrintDesign() { InitializeComponent(); Lskj.Control.Model.AutoSizeChange.ControllInitializeSize(this); } /// /// 当前报表 /// public XtraReport Report; /// /// 地址记录 /// private string _filePath; /// /// 数据源 /// private DataSet myDataSet; /// /// 说明:打开报表 /// 创建人:龚宇超 /// 创建日期:2018-06-21 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public void OpenReport(string filePath) { this.reportDesigner1.OpenReport(this.Report); this._filePath = this.reportDesigner1.ActiveDesignPanel.FileName = filePath; this.ribbonControl1.SelectedPage = this.ribbonPage4; } /// /// 说明:预览 /// 创建人:龚宇超 /// 创建日期:2018-06-21 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public void SetPreviewForm() { //隐藏编辑窗口 this.ribbonPage3.Visible = this.ribbonPage1.Visible = false; } /// /// 说明:设置数据源 /// 创建人:龚宇超 /// 创建日期:2018-06-21 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public void SetDataSource(List sqls) { myDataSet = new DataSet(); myDataSet.DataSetName = "myDataSet"; int i = 0; string tabName = "tab"; //这里集合反转下,保证主Sql执行的Table位置(预览数据条数依赖于主sql查询得到条数) sqls.Reverse(0, sqls.Count); foreach (string sql in sqls) { if (string.IsNullOrEmpty(sql)) continue; DataTable dt = BaseImpl.GetDataTableResult(sql); myDataSet.Merge(SetDataSource(sql, tabName + i), true, MissingSchemaAction.AddWithKey); i++; } this.Report.DataMember = "myDataSet"; this.Report.DataSource = myDataSet; } /// /// 说明:设置数据源 /// 创建人:龚宇超 /// 创建日期:2018-06-21 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The SQL. /// DataSet. public DataSet SetDataSource(string sql, string tabName) { DataTable table = BaseImpl.GetDataTableResult(sql); table.TableName = tabName; return table.DataSet; } /// /// 说明:打印完成回调 /// 创建人:龚宇超 /// 创建日期:2018-07-17 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The source of the event. /// The instance containing the event data. private void PrintingSystem_EndPrint(object sender, EventArgs e) { if (PrintUtil.OnAfterPrint != null) PrintUtil.OnAfterPrint(sender, e); } /// /// 说明:注册打印完成后事件 /// 创建人:龚宇超 /// 创建日期:2018-07-17 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// private void RegisterPrintEnd(bool mode) { XtraReport xr = XtraReport.FromFile(_filePath, true); xr.DataSource = myDataSet; xr.PrintingSystem.EndPrint += new EventHandler(PrintingSystem_EndPrint); if (mode) xr.Print(); else xr.PrintDialog(); } /// /// 说明:快速打印事件 /// 创建人:龚宇超 /// 创建日期:2018-07-17 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The sender. /// The instance containing the event data. private void OnFastPrintClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { try { RegisterPrintEnd(true); } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } } /// /// 说明:普通设置打印事件 /// 创建人:龚宇超 /// 创建日期:2018-07-17 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The sender. /// The instance containing the event data. private void OnCommonPrint(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { try { RegisterPrintEnd(false); } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } } } }