我在crystal reporter 中 已经做好了一张.rpt的表在代码中我是这么写的
Dim RP As New CRAXDRT.Report
Dim RA As New CRAXDRT.Application
Set RP =RA.OpenReport(App.Path & "\分类生产计划单.rpt")
rs_c1.Open "select * from 分类生产计划单 where 表单号='" & Label3.Caption & "'", conn_str, 1, 1
If rs_c1.RecordCount <> 0 Then
RP.Database.SetDataSource rs_c1
打印预览.CR.ReportSource = RP
打印预览.CR.ViewReport
Screen.MousePointer = 1
打印预览.Show
End If
rs_c1.Close
Set rs_c1 = Nothing
可是在打印预览中总是不能显示 rs_c1中的数据。
这个是怎么回事?是不是在.rpt中还要做什么设置的啊?我就是在crystal report中直接将sql中的数据添加进去了,没有做什么设置。
Dim RP As New CRAXDRT.Report
Dim RA As New CRAXDRT.Application
Set RP =RA.OpenReport(App.Path & "\分类生产计划单.rpt")
rs_c1.Open "select * from 分类生产计划单 where 表单号='" & Label3.Caption & "'", conn_str, 1, 1
If rs_c1.RecordCount <> 0 Then
RP.Database.SetDataSource rs_c1
打印预览.CR.ReportSource = RP
打印预览.CR.ViewReport
Screen.MousePointer = 1
打印预览.Show
End If
rs_c1.Close
Set rs_c1 = Nothing
可是在打印预览中总是不能显示 rs_c1中的数据。
这个是怎么回事?是不是在.rpt中还要做什么设置的啊?我就是在crystal report中直接将sql中的数据添加进去了,没有做什么设置。
Dim rpt As New CRAXDRT.Report'获取报表
Set rpt = rptApp.OpenReport(App.Path & "\aa.rpt")''''楼主将rs_cl的获取写全。'给报表设置记录源
Call rpt.Database.Tables(1).SetDataSource(rs_c1)
rpt.DiscardSavedData
打印预览.CR.ReportSource = rpt
打印预览.CR.ViewReport
Screen.MousePointer = 1
打印预览.Show
rs_c1.Close
Set rs_c1 = Nothing
无的话就要加,否则rpt没有建立内部table对象。
另rpt文件不要使用数据与文件一同保存一项,否则打印时不接受新的数据源!
rs_c1.Close
Set rs_c1 = Nothing因为有这两句,这会引影响到数据的显示。连接也不要关掉。
With Crystalreport1
.windowshowprintsetupBtn=true ‘//提供一个打印安装
.connect=”DSN=DSN名称;UID=角色名;pwd=密码;DSQ=数据库名”
.sqlquery=sql语句
.reportfilename=”……\*.rpt”
.formulas(0)=”rs=”kk”” ‘//公式中的引用变量值
.windowstate=CrptMaxmized
.pagezoom 100
.printreport ‘//必须要,否不会打印
.reset
end with