/***********************
* 说明:打印设置模版
* 创建人:龚宇超
* 创建日期: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);
}
}
}
}