如何添加CustomField到C1ReportDesigner

使用C1ReportDesigner控件实现一个简单的report 设计器,这个设计器相对于内置的来说,比较简单。允许用户导入,创建,改变,预览,打印和保存Report。这个SimpleDesigner从这里获取:SimpleDesigner.zip (22.69 kb)对于这个简单的设计器,运行时可以在设计器里添加标签、文字等Field,只要在CreateField事件里,调用e.Section.Fields.Add方法即可。但有些Field,如图表,二维码和文字的有所不同。本文就在这个SimpleDesigner的基础上,介绍如何添加CustomField(如二维码、Chart)到设计器里。

发布于 2014/08/19 00:00

ComponentOne Enterprise

使用C1ReportDesigner控件实现一个简单的report 设计器,这个设计器相对于内置的来说,比较简单。允许用户导入,创建,改变,预览,打印和保存Report。

这个SimpleDesigner从这里获取:SimpleDesigner.zip (22.69 kb)

对于这个简单的设计器,运行时可以在设计器里添加标签、文字等Field,只要在CreateField事件里,调用e.Section.Fields.Add方法即可。

但有些Field,如图表,二维码和文字的有所不同。本文就在这个SimpleDesigner的基础上,介绍如何添加CustomField(如二维码、Chart)到设计器里。

1.添加引用

打开这个工程,打开引用,添加C1.C1Report.CustomFields.4.dll到引用里。

这个dll里包含QRCode、Chart、Gradient、Map和SuperLabel等。

2.添加CustomField

拿二维码举例,首先添加C1.Win.C1BarCode.4.dll到引用里,然后执行如下步骤:

2.1 添加ToolBarButton

打开ToolBar的Buttons编辑器,添加一个ToolBarButton,Name改成_btnAddQRCode,ToolTip设置为AddQRCode。并未该按钮添加相关图标。

如下图:


2.2 添加相关代码

当单击AddQRCode按钮时候,触发ButtonClick事件,并且CreateField。在_tb_ButtonClick事件里添加如下代码:

if (e.Button == _btnAddQRCode) _c1rd.CreateFieldInfo = e.Button;

?

在_c1rd_CreateField事件,判定是_btnAddQRcode按钮,然后使用e.Section.Fields.Add方法添加QRCode到Fields里,代码如下:

?

else if (e.CreateFieldInfo == _btnAddQRCode)
            {
                C1.C1Report.CustomFields.QRCode qrField = new C1.C1Report.CustomFields.QRCode();
                qrField.Bounds = e.FieldBounds;
                qrField.Name = fieldName;
                qrField.Text = fieldText;
                qrField.Calculated = true;
                e.Section.Fields.Add(qrField);               
            }

?

?至此,完成的添加QRCode到SimpleDesigner的步骤已经完成。运行程序,打开一个Report之后。单击AddQRCode按钮,然后在Designer的Section部分拖拽,就可以自动生成一个二维码。

效果如下图所示:?


?

添加Chart到ReportDesigner的方法与QRCode类似。

本文的Sample如下所示:

AddCustomFieldSimpleDesigner.zip (3.33 mb)

ComponentOne Enterprise | 下载试用

ComponentOne 是一套专注于企业 .NET开发、支持 .NET Core 平台,并完美集成于 Visual Studio 的第三方控件集,包含 300 多种 .NET开发控件,提供表格数据管理、数据可视化、报表和文档、日程安排、输入和编辑、导航和布局、系统提升工具等七大功能,被誉为“.NET开发的‘瑞士军刀’”。

ComponentOne 为您提供专业的产品咨询服务,并由技术支持工程师为您1对1解答。>> 发帖提问

相关产品
推荐相关案例
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态