使用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如下所示: