使用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)