各位朋友,老兄,帮帮忙,我对水晶报表还不太会用
现在有一个问题在线等待,100分答谢,不够再加!
问题如下:我在水晶报表中建立了报表模板
在水晶报表的database->Show SQL Query 中可以看到以下SQL语句
SELECT
S_Fucheckstock.CheckID, S_Fucheckstock.code, S_Fucheckstock.codedes, S_Fucheckstock.cunit, S_Fucheckstock.stocknum, S_Fucheckstock.checknum, S_Fucheckstock.checkdes, S_Fucheckstock.cheadd, S_Fucheckstock.chelost
FROM
wgmstock.dbo.S_Fucheckstock S_Fucheckstock
WHERE
S_Fucheckstock.CheckID='05090001'
在预览时数据也正常的显示出来.
在VB中,调用语句如下:
Dim sel_SQL As String
sel_SQL = "select CheckID,code,codedes,cunit,stocknum,checknum,checkdes,cheadd,chelost from " & Str_DbName & "S_Fucheckstock " & _
" where CheckID='" & Text1.Text & "'"
If Obj_fRs.State = 1 Then Obj_fRs.Close
Obj_fRs.Open sel_SQL, Obj_Conn, 3
If Obj_fRs.RecordCount <= 0 Then
Exit Sub
End If
以下为调用语句
Cryprint.Connect = Obj_Conn
Cryprint.SetTablePrivateData 0, 3, Obj_fRs
Cryprint.ReportFileName = App.Path & "\Report\Rpt_PFUstock.rpt"
Cryprint.ParameterFields(0) = "partname;" & "会计部 " & ";True"
Cryprint.RetrieveDataFiles
Cryprint.WindowShowSearchBtn = True
Cryprint.WindowShowCloseBtn = True
Cryprint.WindowState = crptMaximized
Cryprint.Action = 1
Cryprint.PageZoom 90
Obj_fRs.Close
问题:无论我在VB中输入什么CheckID(列如:05090002),报表出来的数据都是在水晶报表中预览的数据(都是05090001CheckID的数据).救命呀,我晕了
现在有一个问题在线等待,100分答谢,不够再加!
问题如下:我在水晶报表中建立了报表模板
在水晶报表的database->Show SQL Query 中可以看到以下SQL语句
SELECT
S_Fucheckstock.CheckID, S_Fucheckstock.code, S_Fucheckstock.codedes, S_Fucheckstock.cunit, S_Fucheckstock.stocknum, S_Fucheckstock.checknum, S_Fucheckstock.checkdes, S_Fucheckstock.cheadd, S_Fucheckstock.chelost
FROM
wgmstock.dbo.S_Fucheckstock S_Fucheckstock
WHERE
S_Fucheckstock.CheckID='05090001'
在预览时数据也正常的显示出来.
在VB中,调用语句如下:
Dim sel_SQL As String
sel_SQL = "select CheckID,code,codedes,cunit,stocknum,checknum,checkdes,cheadd,chelost from " & Str_DbName & "S_Fucheckstock " & _
" where CheckID='" & Text1.Text & "'"
If Obj_fRs.State = 1 Then Obj_fRs.Close
Obj_fRs.Open sel_SQL, Obj_Conn, 3
If Obj_fRs.RecordCount <= 0 Then
Exit Sub
End If
以下为调用语句
Cryprint.Connect = Obj_Conn
Cryprint.SetTablePrivateData 0, 3, Obj_fRs
Cryprint.ReportFileName = App.Path & "\Report\Rpt_PFUstock.rpt"
Cryprint.ParameterFields(0) = "partname;" & "会计部 " & ";True"
Cryprint.RetrieveDataFiles
Cryprint.WindowShowSearchBtn = True
Cryprint.WindowShowCloseBtn = True
Cryprint.WindowState = crptMaximized
Cryprint.Action = 1
Cryprint.PageZoom 90
Obj_fRs.Close
问题:无论我在VB中输入什么CheckID(列如:05090002),报表出来的数据都是在水晶报表中预览的数据(都是05090001CheckID的数据).救命呀,我晕了
谁来帮帮心呀!我真晕掉了~~~~~~~~~救命啊!~~~~~
objcrreport.DiscardSavedData
objcrreport.Database.SetDataSource rs
CRViewer91.ReportSource = objcrreport
CRViewer91.ViewReport
8.0也可以用这个方法吗? CRViewer91.ReportSource = objcrreport
CRViewer91.ViewReport'8.0好像没有这个方法呀
8.0怎么用呀
我找了,没有看见啊,告诉我好吗
在窗体unload事件中
set objcrreport=nothing
问题出在你没有清空上次的数据集
Dim rs As ADODB.Recordset
Dim Report As New CrystalReport1
Dim msgtext As StringPrivate Sub Form_Load()
Dim strsql As String
Set Report = Nothing
strsql = "select * from tmp_B01"
Set rs = ExecuteSQL(strsql, msgtext)
Report.Database.SetDataSource rs
Screen.MousePointer = vbHourglass
CRViewer1.ReportSource = Report
CRViewer1.ViewReport
Screen.MousePointer = vbDefault
End SubPrivate Sub Form_Resize()
CRViewer1.Top = 0
CRViewer1.Left = 0
CRViewer1.Height = ScaleHeight
CRViewer1.Width = ScaleWidth
End SubPrivate Sub Form_Unload(Cancel As Integer)
Set Report = Nothing
End Sub类模块代码
Dim msgtext As String
Dim mrc As ADODB.RecordsetPublic Function ExecuteSQL(ByVal sql As String, MsgString As String) As ADODB.Recordset
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sTokens() As String
'Dim SQL As String
On Error GoTo ExecuteSQL_Error
sTokens = Split(sql)
Set cnn = New ADODB.Connection
cnn.Open ConnectString
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then
cnn.Execute sql
MsgString = sTokens(0) & "query successful"
Else
Set rst = New ADODB.Recordset
rst.Open Trim$(sql), cnn, adOpenKeyset, adLockOptimistic
Set ExecuteSQL = rst
MsgString = "查询到" & rst.RecordCount & "条纪录"
End If
ExecuteSQL_Exit:
Set rst = Nothing
Exit Function
Set cnn = Nothing
ExecuteSQL_Error:
MsgString = "查询错误:" & Err.Description
Resume ExecuteSQL_Exit
End FunctionPublic Function ConnectString() As String
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\计划管理系统.mdb;Persist Security Info=False"
'ConnectString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=aa;Data Source=RJB-CL"
End Function