在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例桌面应用界面/GUI → c# fastreport PrintDialog 修改打印机设置,弹出打印机设置

c# fastreport PrintDialog 修改打印机设置,弹出打印机设置

桌面应用界面/GUI

下载此实例
  • 开发语言:C#
  • 实例大小:18.68M
  • 下载次数:66
  • 浏览次数:1324
  • 发布时间:2020-08-07
  • 实例类别:桌面应用界面/GUI
  • 发 布 人:1266774
  • 文件格式:.rar
  • 所需积分:20

实例介绍

【实例简介】

c# fastreport printdiag 修改打印机设置,弹出打印机设置

【实例截图】

from clipboard

from clipboard

【核心代码】

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;
            }
        }

    }
}


实例下载地址

c# fastreport PrintDialog 修改打印机设置,弹出打印机设置

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警