温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎样创建自定义DevExpress报表控件

发布时间:2021-12-21 11:08:39 来源:亿速云 阅读:112 作者:柒染 栏目:大数据

怎样创建自定义DevExpress报表控件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

如何构建自定义的DevExpress Report控件(Swiss QR-Bill报表组件),以及如何解决开发过程中遇到的问题,希望这些信息对创建自定义DevExpress Report控件的用户有价值。

为帮助消除报表控件开发过程中的神秘性,下面如何创建设计时设置、序列化设计器组件和相关的“bricks”,以及如何渲染和打印组件。第一部分包含有关Swiss QR Bill控件的一般信息,并描述控件本身的要求;第二部分详细介绍了组件的实现。

一般信息

Swiss QR Bill是一种带有QR码的新型付款单,Swiss QR Bill包含以下元素:

  • 收据

  • 付款部分

  • 条码

发票可以使用以下布局:

  • 在A4纸上打印的“全额”发票;

  • 在A6纸上打印的“简短”发票;

  • 连续打印发票;

  • 在单个页面上打印的发票。

“完整”发票包含收据,而“空”发票仅包含付款信息。 组件的BillKind属性指定完整发票的PaymentAndReceipt值和短期发票的PaymentOnly值,连续打印或单独打印是通过IntegratedMode属性指定的。

将发票打印在A4或A6纸上(或导出为PDF),并分别通过BillOption.PreviewSeparatorKind和BillOption.PdfSeparatorKind属性指定perforation line。该组件允许您更改任何字段的语言和字体,StringData属性可用于将字段绑定到外部数据源。

报表控件开发–概述

若要创建一个新的报表控件,您必须:

  1. 选择一个base类,如果找不到合适的控件派生,请从XRControl类继承一个组件。

  2. 创建组件的对象模型,指定一组属性和相关属性,这些属性决定如何序列化属性以及如何在Property网格中显示属性。

  3. 为Visual Studio和End User Designer创建组件设计器,设计人员在设计时确定组件的外观和操作,根据需要添加属性。

  4. 选择组件的“brick”,一个明显的选择是基类创建的积木,但是,如果组件从XRControl类继承,则有两个选项 - 如果需要简单的Brick,则选择VisualBrick作为Brick的基类;如果需要的容器,则选择PanelBrick。

  5. 指定组件如何创建其"brick",并将组件的属性映射到brick的特征。

  6. 实现BrickExporter类来呈现 "brick",覆盖用于绘图和导出的方法。


组件实现

由于SwissQRBill组件是XRControl的后代,因此它在设计器的工具箱中具有自己的 "brick"、序列化和项。

设计时

要将组件添加到Visual Studio工具箱,该组件必须具有ToolBoxItem(true)属性。

WinForms End-User Designer要求向IToolBoxService注册该组件,处理DesignPanelLoaded事件,然后调用IToolBoxService.AddToolBoxItem方法来注册组件。

若要实现组件的设计时功能,请分别为Visual Studio和WinForms End-User Designer添加Designer和XRDesigner属性。控件的调整大小规则和智能标记项必须根据需要进行修改,智能标记项是通过在组件设计器中注册的DesignerActionList对象指定的, GetSelectionRulesCore方法修改控件的调整大小规则。

设置属性网格时,请特别注意可扩展对象。 在此示例中,将创建ExpandableObjectConverter后代以重写ConvertTo方法,新的ConvertTo方法实现更改了在属性网格编辑器中显示的字符串。 AddressTypeConverter的GetProperties方法删除该地址类型不必要的属性。

关于怎样创建自定义DevExpress报表控件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI