嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 20 元微信扫码支付:20 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
c# fastreport printdiag 修改打印机设置,弹出打印机设置
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FastReport;
using System.Data;
using System.Windows.Forms;
using System.IO;
namespace FastReportTestCode
{
public class FastReportHelper
{
public enum EnumFastPrintMode
{
/// <summary>
/// 直接打印
/// </summary>
Print = 1,
/// <summary>
/// PrintPreivew
/// </summary>
PrintPreivew = 2,
/// <summary>
/// 设计模式
/// </summary>
Design = 3,
}
public void Print(string printTemplateName, DataSet dataSet, string printerName,int flag,string path)
{
//Loving.Print.PrintHelper.PrintRdlc("", Environment.CurrentDirectory "\\Report/rep_RCKQD", true, dataSet);
//var str = "";
//var filePath = Environment.CurrentDirectory "\\Report\\" printTemplateName;//获取打印模板位置
var filePath = path "\\Report\\" printTemplateName;//获取打印模板位置
Report report = new Report();//创建FastReport实例
//report.Preview=
report.RegisterData(dataSet);//注册数据源
foreach (DataTable dataTable in dataSet.Tables)
{
report.GetDataSource(dataTable.TableName).Enabled = true;//设置手动为true,false时设计器中看不到数据对象
}
if (!System.IO.File.Exists(filePath))//检查模板是否存在
{
//MessageBox.Show("不存在当前打印模板:" printTemplateName Environment.NewLine "现在进入设计模式");
report.Design();//设计模式,可新建模板
return;
}
report.Load(filePath);//打开报表
if (!string.IsNullOrEmpty(printerName))
report.PrintSettings.Printer = printerName;//设置打印机名字
report.PrintSettings.ShowDialog = true;
var mode = (EnumFastPrintMode)flag;//打印模式, print:直接打印 PrintPreivew:预览 Design:设计模式
switch (mode)
{
case EnumFastPrintMode.Print:
report.Print();
break;
case EnumFastPrintMode.PrintPreivew:
report.RegisterData(dataSet, "NorthWind");
report.Show();
break;
case EnumFastPrintMode.Design:
report.Design();
break;
default:
report.Show();
break;
}
}
public void Print(string printTemplateName, DataSet dataSet, string printerName, int flag, string path, string strGys, string strShrq, string strFph, string strTzr, string strShr)
{
//Loving.Print.PrintHelper.PrintRdlc("", Environment.CurrentDirectory "\\Report/rep_RCKQD", true, dataSet);
//var str = "";
//var filePath = Environment.CurrentDirectory "\\Report\\" printTemplateName;//获取打印模板位置
var filePath = path "\\Report\\" printTemplateName;//获取打印模板位置
Report report = new Report();//创建FastReport实例
//report.Preview=
dataSet.Tables[0].TableName = "WGRK";
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt = dataSet.Tables[0].Clone();
foreach (DataColumn col in dt.Columns)
{
if (col.ColumnName == "数量")
{
//修改列类型
col.DataType = typeof(Int32);
}
if (col.ColumnName == "成本金额" || col.ColumnName == "售价金额")
{
//修改列类型
col.DataType = typeof(double);
}
}
foreach (DataRow dr in dataSet.Tables[0].Rows)
{
DataRow drnew = dt.NewRow();
drnew = dr;
dt.Rows.Add(drnew.ItemArray);
}
ds.Tables.Add(dt);
dataSet = ds;
DataTable dtTt = new DataTable();
dtTt.TableName = "ttxx";
dtTt.Columns.Add("gys");
dtTt.Columns.Add("shrq");
dtTt.Columns.Add("dh");
dtTt.Columns.Add("bgy");
dtTt.Columns.Add("fh");
DataRow drTt = dtTt.NewRow(); ;
drTt["gys"] = strGys;
drTt["shrq"] = Convert.ToDateTime(strShrq).ToString("yyyy-MM-dd");
drTt["dh"] = strFph;
drTt["bgy"] = strTzr;
drTt["fh"] = strShr;
dtTt.Rows.Add(drTt);
dataSet.Tables.Add(dtTt);
report.RegisterData(dataSet);//注册数据源
//foreach (DataTable dataTable in dataSet.Tables)
//{
// report.GetDataSource(dataTable.TableName).Enabled = true;//设置手动为true,false时设计器中看不到数据对象
//}
if (!System.IO.File.Exists(filePath))//检查模板是否存在
{
//MessageBox.Show("不存在当前打印模板:" printTemplateName Environment.NewLine "现在进入设计模式");
report.Design();//设计模式,可新建模板
return;
}
report.Load(filePath);//打开报表
if (!string.IsNullOrEmpty(printerName))
report.PrintSettings.Printer = printerName;//设置打印机名字
report.PrintSettings.ShowDialog = false;
var mode = (EnumFastPrintMode)flag;//打印模式, print:直接打印 PrintPreivew:预览 Design:设计模式
switch (mode)
{
case EnumFastPrintMode.Print:
report.Print();
break;
case EnumFastPrintMode.PrintPreivew:
report.RegisterData(dataSet);
report.Show();
break;
case EnumFastPrintMode.Design:
report.Design();
break;
default:
report.Show();
break;
}
}
//add by zengyan 20180807 新增修改表列的数据类型
public static DataTable UpdateColumnType(DataTable dataSource, Dictionary<string, Type> dic_ColType)
{
DataTable dt_Tmp = dataSource.Clone();
foreach (DataColumn col in dt_Tmp.Columns)
{
if (dic_ColType.ContainsKey(col.ColumnName))
{
//修改列类型
col.DataType = dic_ColType[col.ColumnName];
}
}
//foreach (DataRow dr_Tmp in dataSource.Rows)
//{
// decimal d = decimal.Round(decimal.Parse("0.55555"), 4);
// dt_Tmp.Rows.Add(dr_Tmp.ItemArray);
//}
for(int i=0;i<dataSource.Rows.Count;i )
{
//decimal da = decimal.Round(decimal.Parse(dataSource.Rows[i]["数量"].ToString()), 4);
dt_Tmp.Rows.Add(dataSource.Rows[i].ItemArray);
// dt_Tmp.Rows[i]["数量"] = da;
}
foreach (DataColumn col in dt_Tmp.Columns)
{
if (dic_ColType.ContainsKey(col.ColumnName))
{
//修改列类型
col.DataType = dic_ColType[col.ColumnName];
}
}
return dt_Tmp;
}
//add by zengyan 20180807 新增打印报表通用方法
public static void Print(string fileName, DataTable dataSource, string printerName, Dictionary<string, object> dic_Param, int printMode)
{
DataSet ds_DataSource = new DataSet();
ds_DataSource.Tables.Add(dataSource.Copy());
Print(fileName, ds_DataSource, printerName, dic_Param, printMode);
}
//add by zengyan 20180807 新增打印报表通用方法
public static void Print(string fileName, DataSet dataSource, string printerName, Dictionary<string, object> dic_Param, int printMode)
{
try
{
string strPath = Application.StartupPath.ToString();
var filePath = strPath "\\Report\\" fileName;
Report report = new Report();
report.Load(filePath);
for (int i_Index = 0; i_Index < dataSource.Tables.Count; i_Index )
{
if (string.IsNullOrEmpty(dataSource.Tables[i_Index].TableName))
{
dataSource.Tables[i_Index].TableName = "DataTable" i_Index.ToString();
}
}
report.RegisterData(dataSource);//注册数据源
foreach (DataTable dataTable in dataSource.Tables)
{
report.GetDataSource(dataTable.TableName).Enabled = true;//设置手动为true,false时设计器中看不到数据对象
}
foreach (KeyValuePair<string, object> param in dic_Param)
{
report.SetParameterValue(param.Key, param.Value);
}
if (!System.IO.File.Exists(filePath))//检查模板是否存在
{
report.Design();//设计模式,可新建模板
return;
}
if (!string.IsNullOrEmpty(printerName))
report.PrintSettings.Printer = printerName;//设置打印机名字
report.PrintSettings.ShowDialog = true;
var mode = (EnumFastPrintMode)printMode;
switch (mode)
{
case EnumFastPrintMode.Print:
report.Print();
break;
case EnumFastPrintMode.PrintPreivew:
report.RegisterData(dataSource);
report.Show();
break;
case EnumFastPrintMode.Design:
report.Design();
break;
default:
report.Show();
break;
}
}
catch (Exception exception)
{
MessageBox.Show("ex:" exception.ToString());
throw;
}
}
}
}