ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C#调用FastReport报表打印时的传参形式

2021-06-09 09:33:16  阅读:247  来源: 互联网

标签:传参 C# dr FastReport Add report new tb


C#调用FastReport报表打印时的传参形式

方式一

调用SetParameterValue方法

FastReport.Report report = new FastReport.Report();

report.SetParameterValue(参数名称, 参数值);

需要在报表模板文件xx.frx中的<Dictionary>标签中添加对应的参数

 

在报表设计器中调用参数的方法如下

 

方式二

调用RegisterData注册数据

report.RegisterData(数据集, 数据集名称);

需要在报表模板文件xx.frx的<Dictionary>标签中添加表格数据源、定义数据列及类型

 

在报表设计器中调用数据集的方法如下

 

调用实例

 

1.直接传参数

FastReport.Report report = new FastReport.Report();

report.Load("ReportFile\\1.直接传参数.frx");//加载模板

report.PrintSettings.Printer = Printer;//设置打印机

string Username = "直接传递参数";

report.SetParameterValue("prams1", Username);//传参

report.Show();//预览

效果:

 

2.DataSet传参

FastReport.Report report = new FastReport.Report();

            report.Load("ReportFile\\2.DateSet传参.frx");

            report.PrintSettings.Printer = Printer;

            //组织数据

            DataSet dt = new DataSet();

            DataTable tb = new DataTable();

            tb.TableName = "成绩表";

            tb.Columns.Add(new DataColumn("语文", Type.GetType("System.Int32")));

            tb.Columns.Add(new DataColumn("数学", Type.GetType("System.Int32")));

            tb.Columns.Add(new DataColumn("英语", Type.GetType("System.Int32")));

            for (int i = 0; i < 10; i++)

            {

                DataRow dr = tb.NewRow();

                dr["语文"] = 36;

                dr["数学"] = 89;

                dr["英语"] = 82;

                tb.Rows.Add(dr);

            }

            dt.Tables.Add(tb);

            //数据注册

            report.RegisterData(dt, "Data");

            report.Show();

效果:

 

3.图片传输

FastReport.Report report = new FastReport.Report();

            report.PrintSettings.Printer = Printer;

            report.Load("ReportFile\\3.图片传输.frx");

            //直接传图

            Image image = Image.FromFile("test.jpg");

            FastReport.PictureObject imgobj = report.FindObject("Picture1") as FastReport.PictureObject;

            imgobj.Width = 120;

            imgobj.Height = 120;

            imgobj.Image = image;

            //DateSet传图

            byte[] img = ImageToByte(image);

            DataSet dt = new DataSet();

            DataTable tb = new DataTable();

            tb.TableName = "图片表";

            tb.Columns.Add(new DataColumn("图片1", Type.GetType("System.Byte[]")));

            DataRow dr = tb.NewRow();

            dr["图片1"] = img;

            tb.Rows.Add(dr);

            dt.Tables.Add(tb);

            report.RegisterData(dt, "Data");

            report.Show();

 效果:

码云git地址:

https://gitee.com/soulsjie/CSharpFastReport.git

标签:传参,C#,dr,FastReport,Add,report,new,tb
来源: https://www.cnblogs.com/soulsjie/p/14865540.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有