没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:龚雪|2020-09-08 10:10:09.650|阅读 162 次
概述:本文记录如何构建自定义的DevExpress Report控件(Swiss QR-Bill报表组件),以及如何解决开发过程中遇到的问题,希望这些信息对创建自定义DevExpress Report控件的用户有价值。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
下载DevExpress v20.1完整版 DevExpress v20.1汉化资源获取
DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅、美观且易于使用的应用程序。想要体验?点击下载>>
本文记录如何构建自定义的DevExpress Report控件(Swiss QR-Bill报表组件),以及如何解决开发过程中遇到的问题,希望这些信息对创建自定义DevExpress Report控件的用户有价值。
为帮助消除报表控件开发过程中的神秘性,本文介绍如何创建设计时设置、序列化设计器组件和相关的“bricks”,以及如何渲染和打印组件。第一部分包含有关Swiss QR Bill控件的一般信息,并描述控件本身的要求;第二部分详细介绍了组件的实现。
一般概念
VisualBrick是用于显示数据的基本元素,VisualBrick元素由一个数据模型 (the brick)及其表示形式(the exporter)组成。
Exporter渲染并将其导出为不同的格式,使用"brick"设置的BrickExporter(Type)属性指定"brick"。在本文中,我们使用PanelBrickExporter和VisualBrickExporter后代作为exporter。Draw方法被重写以实现渲染,Brick字段用于获取对"brick"的访问。
若要创建一个"brick",请重写CreateBrick(VisualBrick[] childrenBricks)方法并返回"brick"实例。PutStateToBrick(VisualBrick brick, PrintingSystemBase ps)方法将控件属性映射到"brick"数据,请查看以下文件中的代码以获取更多信息:XRSwissQRBill.cs。
基本类的选择
Swiss QR Control布局是一个中间带有文本元素和条形码的区域,基本类的主要选择是面板、表格和文本"brick"。panel "brick"可以通过其简单的结果将组件布置在内部,因此SwissQRBillBrick基于PanelBrick类,exporter则基于PanelBrickExporter类。
实现Service Brick
该规范指出,付款部分可能包含标有角的空白区域。为了满足此要求,我们创建了一个额外的CornerRectangleBrick和其exporter - CornerRectangleBrickExporter - 它负责绘制角,"brick" 包括BrickType属性 - 可以重写该属性以实现正确的反序列化。
布局实现
选择PanelBrick作为基本类,您可以使用Bricks属性访问其内部的"bricks",相对于面板本身的坐标 - 相对于点(0,0)设置内部“brick”坐标。
将组件分为收货和付款部分区域。
渲染功能返回其他"bricks" (或 "brick" 组合),这些 "brick" 随后添加到Bricks集合中。
现在,我们必须渲染子区域。
请查看以下文件中的代码以获取更多信息:SwissQRBillBrick.cs.
Exporter实现
exporter在完成 "brick"上绘制装饰物,这使得可以在预览或导出的PDF文件中更改外观。在本文中exporter绘制穿孔线和其他文本, brick的SeparatorKind选项确定要绘制的内容,用于预览和在PDF导出过程中使用相同的绘制"brick"的机制,主要区别在于传递给exporter的Draw方法的IGraphics是具有IPdfGraphics接口的对象。
一般概念
控件和"brick"都需要序列化,"brick"仅使用xml序列化,并且控件实现xml序列化并支持CodeDom序列化 - 这对于Visual Studio Designer是必需的。
XtraSerializableProperty属性负责序列化xml中的属性,仅指定属性来序列化返回简单类型的属性,复杂类型需要具有XtraSerializationVisibility参数类型的构造函数(最常用的值是Hidden,Collection,Reference,Content)。
DesignerSerializationVisibility属性负责Visual Studio Designer中的CodeDOM序列化,它只有相关枚举的三个变体 - 隐藏、可见和内容,使用可见属性值标记集合或引用,DefaultValue属性确定属性值是否包含在序列化中。
Brick序列化
仅XML序列化是必需的,为了正确进行反序列化,请将 "brick’s" 文本类型(在Brick级别上覆盖的BrickType属性)映射为真实类型。BrickFactory.BrickResolve方法用于映射,为实现BrickResolve方法请查看以下文件中的代码:CustomControl.cs
要在Visual Studio Designer中使用组件,请将其添加到Visual Studio Toolbox中。
要在最终用户设计器中使用该组件,请使用传递的XRDesignMdiController作为参数来调用AddSwissQRControlToToolBox方法。 请查看以下文件中的代码以获取更多信息:CustomControlToolBoxRegistrator.cs
DevExpress技术交流群2:775869749 欢迎一起进群讨论
获取第一手DevExpress咨询,尽在DevExpress中文网!
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:慧都网在许多企业应用程序中,从 Visio 文件读取形状数据是一项常见需求,因为这些应用程序中的图表都包含有意义的元数据。本教程将借助Aspose.Diagram,以清晰实用的方式指导您使用 C# 读取形状数据。
PDF 的页面大小决定了其内容的显示、打印或处理方式。在准备打印、转换格式或标准化布局时,我们通常需要更改PDF文档的纸张大小。在本教程中,您将学习如何使用 Java 编辑任何 PDF 文件的页面大小。我们将通过完整的代码示例,逐步指导您完成操作。
本文主要介绍如何使用DevExpress WPF Grid控件中的节点(Nodes)概述,欢迎下载最新版组件体验!
本教程提供DevExpress WinFormsWinExplorer视图的基本信息,欢迎下载最新版组件体验!
优秀的界面控件开发包,帮助企业构建卓越应用!
DevExpress WinForms Subscription为Windows Forms平台创建具有影响力的业务解决方案,高性价比WinForms界面控件套包。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号