VB中Crystal Report报表使用的问题。
vb6 + access2000 + Crystal Report
我的一个Crystal Report文件使用的是access中两个相关联的表,表间的关联已经在设计报表文件的时候连接好了。
例如:
表一:ItemNo,Description,Category......
表二:ItemNo,LogNo......
报表要显示:
ItemNo, LogNo , Description ,Category......
VB中需要搜索满足:Category ItemNo LogNo等字段条件的数据,怎样在VB中设置报表的数据源实现查询功能?
问题点数:100、回复次数:4Top
1 楼macxie(macxie)回复于 2005-03-09 10:45:25 得分 0
在VB里面写SQL查询语句,把你要的数据搜索出来,然后把记录集给报表就可以。Top
2 楼macxie(macxie)回复于 2005-03-09 10:49:09 得分 60
Dim m_Application As New CRAXDDRT.Application
Dim m_Report As CRAXDDRT.Report
Set m_Report = m_Application.OpenReport(App.Path + "\report\xyz.rpt", 1)
m_Report.SQLQueryString = "select * from table......."
CRViewer1.ReportSource = m_Report
CRViewer1.ViewReportTop
3 楼myhgyp(也许是这样的,信不信由你)回复于 2005-03-09 11:46:45 得分 40
Dim capp As New CRAXDDRT.Application '报表集合对象
Dim carp As New CRAXDRT.Report '报表集合中的报表对象
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" + App.Path + "\Test.mdb;Persist Security Info=False"
.Open
End With
strsql = "select * from Table1,table2 where Table1.id=table2.id"
If rs.State = adStateOpen Then rs.Close
With rs
.ActiveConnection = cn
.CursorLocation = adUseClient
.Open strsql, cn, adOpenDynamic, adLockOptimistic
End With
Set carp = capp.OpenReport(App.Path + "\CryStalTest.rpt") '取报表对象
For i = 1 To carp.Database.Tables.Count '设置报表的数据源
If carp.Database.Tables.Item(i).Name = "carsort" Then
carp.Database.Tables(i).SetDataSource rs
End If
Next
详见:http://dev.csdn.net/develop/article/60/60047.shtmTop
4 楼adamcannibal(小米)回复于 2005-03-09 21:22:45 得分 0
myhgyp(也许是这样的,信不信由你)老大,我也是按照你的方法做的,可是现实的结果不对啊。Top




