http://www.softonline.com.cn/crystal/index.htm

解决方案 »

  1.   

    Crystal Reports for VB5 报表编程经验 
    (作者:江苏 徐静文 2000年06月07日 15:27)
    由于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=crptMaximized