PB(PowerBuilder)有一种以PSR结尾的特殊的保存报表的文件格式(本文简称作PSR文件)。当报表以PSR格式另存出来后,我们常常会不知道用什么方法再次打开它。 其实很简单,下面将介绍打开的办法: 先新建一空的库文件(PBL文件),这里命名为psropen,在库文件中的应用也命名为psropen。 再创建一窗口w_psropen,稍微调一下它的属性,如width,height,title等。 在窗口中添加按钮cb_1,cb_2,cb_3,cb_4,分别命名“另存为”,“打印”,“选择文件”,“返回”。 在窗口中添加一数据窗口dw_1。 另存为按钮clicked的代码: Stringls_File,ls_Path,ls_Ext GetFileSaveName("SaveReport",ls_Path,ls_File,"psr","PSReportFiles (*.psr),*.psr,"+& "TextFiles(*.txt),*.txt,HTMLFiles(*.htm),*.htm,Excel5File (*.xls),*.xls") IfTrim(ls_Path)<ccid_code><>""Then ls_Ext=Lower(Right(ls_Path,3)) ChooseCasels_Ext Case"psr" dw_1.SaveAs(ls_Path,PSReport!,True) Case"txt" dw_1.SaveAs(ls_Path,Text!,True) Case"htm" dw_1.SaveAs(ls_Path,HTMLTable!,True) Case"xls" dw_1.SaveAs(ls_Path,Excel5!,True) CaseElse MessageBox("SaveReport","Thetypeoffilesavedisidentifiedby theextension."+& "Use'.psr'forPSReport,'.txt'forText,'.htm'forHTML Table,or'.xls'for&Excel5",Exclamation!,OK!) Return EndChoose Endif 选择文件按钮clicked的代码: Stringls_File,ls_Path,ls_Ext longc=0,li_len,li_pos GetFileOpenName("打开PSR报表",ls_Path,ls_File,"psr","PSReportFiles (*.psr),*.psr,") IfTrim(ls_Path)<>""Then ls_Ext=Lower(Right(ls_Path,3)) ChooseCasels_Ext Case"psr" dw_1.setredraw(false) dw_1.dataobject=ls_path dw_1.setredraw(true) dw_1.modify("datawindow.print.preview=Yes") CaseElse MessageBox("打开PSR报表","本程序只能打开.PSR文件!",Exclamation!, OK!) Return EndChoose Endif 打印按钮clicked代码:dw_1.print() 返回按钮clicked代码:close(parent) 在应用psropen的open事件中加入:open(w_psropen)。然后保存并运行,大功告成啦! 注: 在窗口中特别加入了一个“另存为”的按钮,以提示PSR文件格式是怎样生成的。另外当数据窗口的预览属性为假时,PSR文件的数据还可以修改!修改后再保成存相同文件名便实现了修改PSR文件数据的功能(只要是原来数据窗口另存出来时可修改的部分均可实现修改)。 PBDWE60.DLL,PBVM60.DLL是支持本程序的必须文件。 本程序在PB6.5下调试通过。 |