我设计了一个报表,该报表有两个相对独立的记录集(分别用RS1、RS2表示)需要从VB程序中传递过来的,其中RS1有多条记录而RS2只有一条记录,放在报表最末端。
现在的问题是:按不同条件查询RS2在VB中都会有一条记录,但在传到水晶报表里的时候,能把某些RS2过来,但某些RS2却又传不过来即为空值(NULL)——实际上都有记录的。这会是什么原因呢?各位有没有遇到类似的情况,或者帮我分析一下原因,不胜感激!!
现在的问题是:按不同条件查询RS2在VB中都会有一条记录,但在传到水晶报表里的时候,能把某些RS2过来,但某些RS2却又传不过来即为空值(NULL)——实际上都有记录的。这会是什么原因呢?各位有没有遇到类似的情况,或者帮我分析一下原因,不胜感激!!
Set CRXReport = Nothing
Set CRXReport = CRXApplication.OpenReport(str_currentpath & "\Report\RMonthly2.rpt")
CRXReport.Database.SetDataSource rs1, 3, 1
CRXReport.Database.SetDataSource rs2, 3, 2
FReport.Show 1'显示报表
(1)、检查rs1和rs2,确认在传入时有值,如想传入空值Set rs1=newrecordset即可
(2)、检查rpt文件,如而记录机在同一个表中,则没问题,如有一个在子表中,则要建立连接
但现在问题是:RS2确实有值,而且对于空值我已在报表中做了控制即if isnull({ado1.00001}) then 0 else {ado1.00001},但是,这个RS2有些值能正确无误传过去,但有些(不同查询条件结果不一样)去不能传过去。这是某些(对于不同记录集而言)而不是某时(对于同一记录集而言)的问题。我用的也是8。5
还有RS1、RS2都是查同一个表的。
脱离VB,把那个报表放到crystal里执行,看是否能成功,如成功在放到
VB里执行应该就可以了
如果没问题,就放到vb里,如此时有问题,就先查数据,如确实有数据,
那就是Crystal的问题,否则就是Vb的问题