彩票走势图

如何为 FastReport .NET 报表创建自己的组件?

翻译|使用教程|编辑:杨鹏连|2021-06-03 09:25:48.280|阅读 134 次

概述:报告生成器的源代码提供了无限的定制机会。您可以根据需要重新配置当前功能或添加新功能。今天,我们将讲如何在报表设计器的工具箱中添加自己的控件元素。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

FastReport .Net是适用于Windows Forms,ASP.NET,MVC和.NET Core的全功能解决方案。它可以在Microsoft Visual Studio 2005-2019中使用。支持.Net Framework 2.0-4.x,.NET Core 3.0及以上版本。

在FastReport .NET 2021.3的新版本在演示应用程序中实现了HiDPI支持。添加了用于嵌入Blazor Server应用程序的Razor组件。XODT和XODS有新的出口。FastReport OpenSource版本现在可以导入DevExpress,List和Label以及SQL Server Reporting Services报表。(点击下方按钮下载)

立即点击下载FastReport.NET v2021.3最新版

Fastreport.NET在线购买价优惠,专享85折起!赶紧加入购物清单吧!

FastReport .NET 报告生成器提供了广泛的定制机会,即根据您自己的需要进行配置。从用户应用程序代码中,您可以使用 FastReport 库创建自己的报告生成器组件。因此,您可以创建自己的报表设计器及其查看器。

此外,您可以更改报表设计器中的对话窗口,例如,文件保存窗口。

但是,报告生成器的源代码提供了真正的定制机会。您可以根据需要重新配置当前功能或添加新功能。今天,我们将讲如何在报表设计器的工具箱中添加自己的控件元素。

让我们假设您经常在报告中使用具有特定设置的文本对象。使用特定字体或颜色突出显示配置的对象“文本”会很方便,而不是每次都手动设置这些属性。

您只需要创建自己的对象!为此,从现有对象继承对象、扩展其功能或创建新功能就足够了。

要为报表创建自己的组件,您需要报表生成器 FastReport .NET 的源代码。让我们考虑基于 Text 对象创建自己的对象的情况。为此,在 FastReport 项目的根目录中添加一个新类:

 public class CustomerTextObject : TextObject
 {
 public override void OnBeforeInsert(int flags)
 {
 base.OnBeforeInsert(flags);
 Border.Lines = BorderLines.All;
 }
 }
在这个类中,我们在插入对象之前重新定义了事件,我们在其中设置了对象边界的默认值。因此,我们的文本对象从一开始就包含了边界。如果您需要设置对象的任何其他属性 - 没问题。让我们设置颜色:


public override void OnBeforeInsert(int flags)
 {
 base.OnBeforeInsert(flags);
 Border.Lines = BorderLines.All;
 TextColor = System.Drawing.Color.Gray;
 }
如果要创建具有自己功能的对象,请从基类 ReportComponentBase 继承。但在这种情况下,除了对象属性和行为之外,您还必须进行渲染——Draw() 方法。然后在其中调用 base.Draw() 并添加对象的绘图。


让我们考虑渲染 Text 对象的示例:

public override void Draw(FRPaintEventArgs e)
 {
 base.Draw(e);
 DrawText(e);
 DrawMarkers(e);
 Border.Draw(e, new RectangleF(AbsLeft, AbsTop, Width, Height));
 DrawDesign(e);
 }
如您所见,此处同时调用了几种方法:用于渲染文本、标记、边界和编辑器。


创建对象后,您应该注册它,以便它出现在报表设计器的工具箱中。为此,请使用类 AssemblyInitializer.cs 中的 FastReport.Utils.RegisteredObjects.Add() 方法。

注册我们创建的对象的例子:

RegisteredObjects.Add(typeof(CustomerTextObject), “ReportPage”, 120, 1);
所有参数依次为:注册对象的名称、报表页面的对象名称、对象图标的标识符、工具箱中对象的序号。图标存储在资源中。您可以将 bmp 格式的图像添加到资源中或将其直接发送到方法参数而不是图标标识符。


现在您可以编译解决方案并启动报表设计器。工具箱中又出现了一个控件:


报表设计器中的对象
我们使用了 Text 对象的图标,这就是它看起来相同的原因。现在我们将其添加到报告页面并输入文本:



“文本”对象
如我们所见,框架和文本颜色都对应于我们在代码中的设置。我们创建了一个带有预设边界和文本颜色的“自定义”对象“文本”。使用此方法,您可以配置报告中的任何现有对象或创建您自己的对象。


如果您对FastReport感兴趣,欢迎加入FastReport QQ交流群:801349317

还想要更多吗?可以您点击阅读【FastReport的报表2020最新资源盘点】查找需要的教程资源。让人兴奋的是FastReport的.NET正在慧都网火热销售中!低至3701元型态起!> >查看价格详情


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP