我最近需要使用vsView中的vsReport和vsPrinter控件做一个产品的报表,需要通过WebService请求得到报表的格式定义文件,和请求返回的需要打印的数据,生成用户需要的打印报表,在以后需要的时候,还可以让用户自己定义报表的格式。请问大家,有谁使用过VsReport和vsPrinter,有好的方法和经验可以介绍一些的?
My MSN:[email protected]

解决方案 »

  1.   

    怎么没有人回答我的问题呢?是不是嫌分少啊。下面我,将我研究vsreport的知识与大家共享一下。VSreport vsPrint控件制作报表,其实也挺容易,使用安装VsView8后下面一个Bin目录下的rptDsg.exe程序来设计报表,设计好报表后,保存报表文件(它默认保存为一个报表定义的Xml文件)。以后,想要打印报表时,使用“VsReport.Load 报表定义文件名,需要显示的报表名称”的方法,将报表定义文件打开,再将相应的数据集(AdoDb.Recordset)给vsReport.recordset属性。最后,将vsReport.Vender 到 VsPrinter控件,报表就显示了出来。If .IsBusy Then Exit Sub
            .Clear
            .Load mReportFile, mReportName
            .DoEvents = False
            .DataSource.Recordset = m_Recordset   ' DetailRecordSet
            .Render vsPrn
        End With
      

  2.   

    使用vsflexgrid的savegridt 和loadgrid方法,可以仅保存格式,或数据,或全部保存,应该能满足你的需要.
      

  3.   

    jag(爱国者) ,你说的只是对vsFlexGrid的保存和再次打开其数据和格式的方法。我是想使用vsReport和vsPrinter控件相结合进行打印。最近经过我的研究,已经使用vsReport和 vsPrinter作出了报表,并且实现了打印。下一步,可能是要进行报表格式的自定义打印,你如果有这方面的兴趣,可以讨论。
      

  4.   

    我也正在学习使用这两个控件,但是我发现好象中文支持不太好总是提示编码不对.
    主要是表头和数据源名不能含有中文. 但表细节可以是中文.
    另外生成的文件第一行要删除,否则也会出错,不知道怎样解决[email protected]
      

  5.   

    一般地,使用VsView自带的报表定义程序生成的报表格式定义文件,它的Xml中的encoding是某一个阿拉伯国家的通用格式标准。如果需要在报表中使用到中文汉字的话,是需要手工打开报表格式的Xml定义文件,修改<? xml version="1.0" encoding="gb2312" ?>,就可以使它显示中文了。
      

  6.   

    关于VsReport的Height and RenderHeight. The last property is used when your report section set the CanGrow and CanShrink to True. It will be re-calculated after the vsReport-OnForm event. The former property is the fixed height that you made in the Report-definition file.
      

  7.   

    没有用过vsReport和vsPrinter控件,还是顶一下儿吧。