CrystalReports for VB5报表编程经验 徐静文 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