CrystalReports for VB5报表编程经验

Author: 徐静文 Date: 1999年 第1期 13版

    由于VB5本身无报表输出工具,因此在开发VB5数据库应用系统时,必须用第三方报表书写器,通常采用VB5的企业版附带的Crystal Reports。在开发时不注意两者的连接关系,经常会出现意想不到的问题,下面是笔者在开发VB5系统中的几点经验:
#1    1.报表控件的引入
    Crystal Reports不是VB5标准控件,而是Active X控件。使用时,首先要点击“工程→引用”菜单,引出部件窗口,再选Crystal Reports Control 4.6控件。
#1    2.报表制作
    现象:报表设计时文字已排列整齐,但预览或打印往往出现偏差。
    措施:表名及列头文字不要直接输入文本,而改用“Insert→Text Field”菜单插入文本字段,就可避免以上现象。
#1    3.数据输出
    现象:在数据输出时易犯错误,是因为在VB5中用SQL语句进行查询,然后打印,目的是想把查询结果输出到报表上,但结果往往仍然是原表中的数据。也就是说Crystal步Reports并不认VB5的查询。
    措施:建一个临时表,查询先前删除表中的数据,再把查询结果放入到临时表,再进行预览或打印。
#1    4.报表控件的使用及路径的指定
    现象:在一个表单中,如果需输出多个报表,放置多个报表控件。打印时会出现“堆栈溢出”这样的致命错误。另外发布给用户时,需要设定任意路径,如果只指定报表名路径,也会出现错误。
    措施:如果在一个表单上要打印多个报表,在打印时先定义数据文件名和报表名,再打印。打印前设定时,不仅要设定报表文件路径,而且还要设定数据库的路径。
    CrystalReport1.datafile(index)=App.path & “数据库名”
    CrystalReport1.reportfilename=App.path & “报表文件名”
#1    5.设定预览窗口
    现象:预览窗口太小,用户必须点击最大化按钮才能覆盖整个屏幕。
    措施:
    CrystalReport1.WindowHeight=screen.Height
    CrystalReport1.WindowsHeight=screen.Windth
    CrystalReport1.WindotTop=0
    CrystalReport1.WindowLeft=0
    或者用:
    CrystalReport1.Windo wState=crptM aximized