致力于图形处理和移动开发。
分类: Delphi
2014-04-08 10:00:58
从Delphi中加入报表控件之后到最新的Delphi7之前,QuickReport一直是Delphi附带的报表控件,抛却商业的利益不谈,能够长期占领Delphi的报表控件也在一定程度上表明QuickReport在报表处理方面有其独特的方面。但是使用过QuickReport的朋友肯定会有这样的感觉,QuickReport报表在某些方面的功能确实是比较欠缺,本文将从以下几方面对Delphi报表控件QuickReport 和进行对比。
对线框的控制
在实际的应用中,中国式的报表绝大多数都是表格的形式,线框的绘制非常重要,而在QuickReport中,进行线框的绘制似乎不是很方便,不同的线型(水平线、垂直线)采用的是同一个QRShape控件,对每一个字段四周的线框都要进行不同的设置,比较麻烦,并且在预览的时候在不同的显示比例的情况下个别线段可能会出现重合或者断开的情况,虽然在真正打印的时候只要设置的正确确实不会出现重合或断开的情况,但是在预览的时候看上去很不舒服。
而FastReport对于线框的处理比QuickReport要好的多,使用Line控件可以很方便的完成水平线、垂直线的绘制,而且不会出现线框重合或者断开的情况。静态报表的情况下,FastReport还包含自动水平线、垂直线的对齐功能,水平线和垂直线的接头处会自动完成对齐,不会出现接头错开的情况。对于动态报表的情况,只要准确设置线框的位置,生成的报表会非常整齐、规范。对于动态FastReport报表,在进行绘制线框的时候必须要注意的一点是:线框必须放置在相对应的区域内,否则设置的线框就不会显示出来了,这一点是跟QuickReport是类似的。
中文换行的支持
而对于中文内容的换行,的支持并不如程序员料想的那样进行自动换行,即使设置了WordWrap=true和AutoStrench=false。主要的原因在于QuickReport自身的自动换行机制只有在遇到空格的时候才会进行换行,如果是英文单词的化当然没有问题,碰到空格的时候当然就可以换行了,但是中文就不同了,字与字之间是没有空格的,这样QuickReport在处理的时候并不会在字与字之间断开,因此并不会进行自动换行。
中对于自动换行的设置就简单多了,只需设置相关字段的WordWrap属性为true即可,简单方便。
报表的修改
在FastReport中,只需要在Delphi工程中添加一个frDesigner控件,则工程中所有的报表都具有了最终用户可以修改的功能。在这种情况下,只需要双击报表,就会出现报表的设计界面,在这个界面中,可以对报表的所有对象进行相关属性的设置,用户可以方便的完成对最终报表的修改。
除了上述的三点之外,FastReport还具有很多优点,比如:直接编译在Delphi EXE中,不需要动态链接库;支持JPEG(使用Delphi类库)和GIF(使用RX类库);包含图表,图表,条形码,带阴影的文本;报表生成的页数无限制;在报表预览中查找文本等等。
总结:
根据与QuickReport报表的比较可以得出这样的结论,FastReoport报表控件的功能更丰富、性能更强大,比QuickReport更适合创建管理系统报表的控件。
>>>