使用FastReport这个报表也好久了,结合VB使用简直是最佳组合,很方便就能制作出各作报表,最近因为工作上一个盘点报告的改版,以前是用EXCEL的VBA来生成报表的,优点就是能方便更改格式内容,但重新设计一个表的话,工作量有点大,所以这次改回用FastReport来设计。

一、下面这个是最终的成品的,也是公司四月份开始要使用的盘点报告。

二、下图是FastReport设计视图:

三、以下是VB设计部分源码:

四、总结下在制作这个报告过程出现的一些问题,以便下次参考:

  • 如果报表选项是两遍过程的话,单元格间的计算会出错:Memo1.value+Memo2.value,会错乱结果。
  • 报表中用到的数据项尽可能在数据源即MMSQL中进行查询绑定:比如这个报告有二处难点,一个是成参/中第N次,一个是上次盈亏金额,这二个数据项直接在查询的时候取出这个值。
  • 报表的逻辑很重要,也是在显示上次盈亏金额的时候,折腾了半天才有方案。曾经用过二个文本来放置成参、中药的值,但因为第一点的那种错误放弃了。最后更改了逻辑,分别取它成参的上次、中药的上次(这个上次取法也是巧妙,取本次日期的上次记录即可。)再在报表中进行成参的相加。
  • 报表中这几个函数挺实用:IIF(条件判断)、copy(类似substring,取指定长度的字符)
  • 报告中日期的格式是一个.分隔的,如2017.01.02,在做成这种格式方法好多,在显示盘点时间段那里的时候,是直接在数据查询里弄好的:replace(盘点日期,’-‘,’.’)