摆脱又慢又不稳定的excel,制作不一样的报表

摆脱又慢又不稳定的excel,制作不一样的报表

不知道大家有没试过使用excel作为报表工具。excel的编辑很优秀,支持VBA操作,可以很方便的使用动态数据制作出精美的报表。
在问题发生之前,我也是这么认为的,哪怕它导出数据需要较长的时间,我也认了。因为也没有找到更好的替代品嘛。
直到去年底,客户反馈了2个问题:

  1. 报表达到1500页时出错了,后来检查发现是分页符超过了1026,excel报错了。
  2. 打印时提示超时错误,后来检查发现是大量的复制粘贴操作(先把动态数据填充到模板,再复制模板到输出页)导致excel出错了,而且出现的时间不太一致,至今无法理解,每次粘贴后清除剪切板数据仍然无效。

经过一番折腾后,终于放弃了,另外寻找解决方案。当时想dev的控件那么强大(使用多年),它的报表功能如何呢?经过一轮试验,发现相当强大。制作模板后1500页数据,嗖一下就完成了。
dev控件(devexpress)请自行下载,以下示例用的是15.2版本。
安装dev控件后,VS在添加新项时,会有个选项,如下图所示:
报表生成器
点击添加后会有四个选项,空报表、表格报表、标签报表和继承报表
我们选择空白报表
在这里插入图片描述
图中,Detail,细节部分,为需要变化的动态数据。
上下空白处可理解为页眉页脚

细节
点击细节左侧的三角形,将打开细节内容,如上图,再次点击将隐藏细节。
上图中,有几个是XrLabel控件,[名称]代表着引用动态数据,列名为名称。动态数据源添加办法如下:

'在刚才新建的报表控件(xtraReport)中添加代码
Sub New(ByVal dt As DataTable)
    InitializeComponent()
    Me.DataSource = dt
    Me.CreateDocument()	'生成报表
End Sub

以下代码实例化报表,并显示:

'newTable作为拣货标签的数据源,
Dim jhbq As New 拣货标签(newTable)
Dim frm As New frmReport(jhbq)	'预览报表
frm.ShowDialog()

frmReport是窗体控件,窗体中包含一个 DocumentViewer 控件。
报表预览窗体
如上图所示,DocumentViewer 控件包含菜单项,默认是没有的,点击上图黄色部分,可以进行设置,可现在ribbon风格或者toolbar风格的。上图为ribbon。
frmReport窗体中添加如下代码:
Sub New(ByVal rp As XtraReport)
InitializeComponent()
Me.DocumentViewer1.DocumentSource = rp
End Sub
报表预览如下:

效果
1510条数据,比excel快了无数倍,而且不会莫名其妙的死机了!
还有些高级点的操作,比如分组、插入图表、分页等等,安装dev控件后,可参照dev提供的源代码去研究,这里不一一举例了。网上说有中文的帮助文档,但是我没找到,有的 朋友可以共享一下哈。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值