FastReport中国社区FastReport联系电话 联系电话:023-68661681

如何通过用户应用程序代码在报表中设置图片

来源:   发布时间:2020-01-16   浏览:3908次

通常,需要根据任何条件或输入参数来设置报表中的各种图像。List & Label报表生成器的用户遇到了此问题:

有没有办法以编程方式从.net代码将内嵌图像插入List & Label文档中?

但是,用户找不到解决方案:

不幸的是,无法从.NET代码插入图像。仅当在List & Label设计器中使用报表时,才可能这样做。

如何通过用户应用程序代码在报表中设置图片

接下来,我想展示如何在FastReport.Net报表生成器中实现这一点。

在创建报表时,我们直接使用其所有对象——创建它们,将它们添加到报表页面,设置属性。考虑一个简单的示例,该示例根据带有图片的用户应用程序的代码创建报表

//Create instance of class Report
 Report report = new Report();
 //Add report page
 ReportPage page = new ReportPage();
 report.Pages.Add(page);
 page.CreateUniqueName();
 //App data band
 DataBand data = new DataBand();
 //Add data band to page
 page.Bands.Add(data);
 data.CreateUniqueName();
 data.Height = Units.Centimeters * 1; //Set band height
 //Create picture object
 PictureObject pic = new PictureObject();
 pic.Bounds = new RectangleF(0, 0, Units.Centimeters * 5, Units.Centimeters * 5); //Set object bounds
 pic.Image = new Bitmap("../../App_Data/snow_flake.ico"); //Set picture
 pic.Parent = data; //Set picture parent object
 pic.CreateUniqueName();
 report.Prepare(); //Build report
 report.Show(); //Show report

这是一个只有一个“data”band的报表的非常简单的示例。由于此报表完全由程序代码创建,因此使用图片创建对象并将其放入报表中没有问题。根据代码的逻辑,根据代码创建报表可以根据需要进行任意更改。

考虑另一种情况。假设您已经在设计器中创建了报表模板。您要根据程序的逻辑更改报表中的图片。在这种情况下,报表模板应该已经有一个Picture对象,您只需从用户应用程序代码中替换图片本身即可。这是程序中的代码:

 //Create report object
 Report report = new Report();
 //Load report template into the report obj
 report.Load("../../App_Data/Picture.frx");
 //Get picture object from the report template
 PictureObject pic = report.FindObject("Picture1") as PictureObject;
 //Set object bounds
 pic.Bounds = new RectangleF(0, 0, Units.Centimeters * 5, Units.Centimeters * 5);
 //Set the image
 pic.Image = new Bitmap("../../App_Data/snow_flake.ico");
 //Build report
 report.Prepare();
 //Show report
 report.Show();

在这里,我们在报表模板中找到一个带有图片的对象,并根据需要更改其属性。

最后,Picture对象的第三个版本来自内置的报表脚本。报表脚本允许您根据需要更改报表中的模式和数据。您可以将Picture对象预先添加到模板中,也可以将其直接添加到报表脚本中。确实,无限的灵活性。无需使用自定义应用程序来管理报表的内容。对我来说,这是一个很大的好处,因为无需编辑应用程序代码。在报表脚本中设置图像的示例非常简单:

Picture1.Image = new Bitmap("C:/Users/Dimon/source/repos/PictureSetting/PictureSetting/App_Data/snow_flake.ico");

您只需要确定要更改图片的事件,例如,可以将Picture对象用于BeforePrint事件。

产品介绍 | 下载试用 | 优惠活动 | 在线客服

本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 [https://www.fastreportcn.com/]
本文地址:https://www.fastreportcn.com/post/2666.html

相关产品: FastReport.Net,


联系我们
  • 重庆总部 023-68661681
购买
  • sales@evget.com
合作
  • business@evget.com


在线
客服
微信
QQ 电话
023-68661681
返回
顶部