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