crystal-reports - 停止正在运行的程序会导致 IDE 使用 Crystal Report XI Chart Report 挂起
问题描述
我用 CR XI 创建了一个图表报告。当我尝试使用带有以下代码的水晶报表查看器从我的 vb6 运行它时,它运行良好:
Public Function prnView(ByVal rptPath As String, ByVal tblName As String, ByVal whereCondition As String, _
Optional paramPeriod As String = "", Optional sParam As String) As Boolean
Dim vApp As New CRAXDRT.Application
Dim vRpt As New CRAXDRT.Report
Dim arTbl() As String
Dim i As Integer, j As Integer
Screen.MousePointer = vbHourglass
Set vRpt = vApp.OpenReport(rptPath)
With vRpt
.DiscardSavedData
arTbl = Split(tblName, "|")
Dim ConnectionInfo As CRAXDRT.ConnectionProperties
For i = 0 To .Database.Tables.Count - 1
Set ConnectionInfo = .Database.Tables(i + 1).ConnectionProperties
.Database.Tables(i + 1).ConnectionProperties.Item("Connection String") = "DRIVER={mySQL ODBC 5.1 Driver};UID=" & defUser & ";PWD=" & defPass & ";Server=" & serverName & ";port=" & defPort & ";Database=" & defDB
.Database.Tables(i + 1).ConnectionProperties.Item("User ID") = defUser '"ztech"
.Database.Tables(i + 1).ConnectionProperties.Item("Server") = serverName ' "192.168.1.253"
.Database.Tables(i + 1).ConnectionProperties.Item("Database") = defDB 'vDB ' "192.168.1.253"
.Database.Tables(i + 1).ConnectionProperties.Item("Use DSN Default Properties") = "False"
Next
.ParameterFields(1).ClearCurrentValueAndRange
.ParameterFields(2).ClearCurrentValueAndRange
.ParameterFields(1).AddCurrentValue dtpFrom.Year
.ParameterFields(2).AddCurrentValue locSearchID
' If .ParameterFields.Count > 0 Then
' arTbl = Split(sParam, "|")
' For j = 1 To .ParameterFields.Count
' .ParameterFields(j).ClearCurrentValueAndRange
' If .ParameterFields(j).ValueType = crNumberField Then
' .ParameterFields(j).AddCurrentValue CInt(arTbl(j - 1))
' ElseIf .ParameterFields(j).ValueType = crStringField Then
' .ParameterFields(j).AddCurrentValue arTbl(j - 1)
' End If
' Next
' End If
If paramPeriod <> "" Then
For i = 1 To .Sections.Count
For j = 1 To .Sections(i).ReportObjects.Count
If .Sections(i).ReportObjects(j).Name = "strPeriod" Then
.Sections(i).ReportObjects("strPeriod").SetText paramPeriod
End If
Next
Next
End If
End With
crView.ReportSource = vRpt
crView.EnableGroupTree = False
crView.Refresh
crView.ViewReport
Screen.MousePointer = vbDefault
Set vApp = Nothing
Set vRpt = Nothing
End Function
现在的问题是,当我试图“停止”我的项目运行时,它总是挂起,然后 VB6 IDE 变成“无响应”,如果我不打开图表报告,我可以很好地“停止”我的项目。
这是我的项目参考,以防我错过了一些在 vb6 中运行 CR 图表报告的参考:
- Crystal ActiveX 报表查看器库 11.5
- Crystal Reports ActiveX Designer 运行时库 11.5
解决方案
推荐阅读
- microsoft-teams - Microsoft 团队应用程序中的消息传递扩展预览中的链接
- docker - 使用默认 seccomp 配置文件时,Docker 无法构建映像
- python - 检查两个字典中的完全匹配
- c++ - 为什么结构的大小是 24 字节而不是 20
- javascript - 更改另一个元素的 CSS
- c# - asp.net core3.1 和 signalr Core 中的 CROS 错误
- datatables - 类型“StaticRenderFunctions”.ts(2339) 上不存在属性“时刻”
- java - JavaFX:线程“JavaFX 应用程序线程”中的异常 java.lang.RuntimeException:java.lang.reflect.InvocationTargetException
- java - 对链接的哈希集进行排序
- java - 如何解决 MyObject 中解析 Json 的问题?