点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我有一份报告。 除了这台机器,其他所有机器都在有问题的机器上运行。 我已经为此工作了两天。 搜寻我的心。 我觉得它必须很简单,因为该报表可以在我的开发机器上运行。 该应用程序是 VB.Net ,当我将其加载到Crystal Reports 2016中时,它将在客户的计算机上运行。 但是,尽管它在开发计算机上运行,但并未在客户端的任何计算机上运行。 我已经运行了CRLogger,据我所知,它在CR内部调用上失败了。 我认为问题肯定出在我调用报告的方式上,但是它在Dev Machine上有效并且在现场失败。 客户当前处于关闭状态。 我将开始工作,看看是否可以将更改撤出系统。 我知道这很长,但是我正在努力为您提供足够的信息,以便您更好地提供帮助。 我已经在下面包含了调用代码和CRLogger结果。
以下是设备规格:
显影机
Visual Studio 2019,最新安装。 计算机上只有Visual Studio版本(以管理员模式安装)
Dell XPS,Windows 10、32 GB Ram,I7-9750H处理器
客户机
Visual Studio运行时(当前版本安装了Admin Access)
Windows 10、8 GB Ram,Intel I5-7500T
'********************************************** ******************************************
呼叫代码
'********************************************** ******************************************
私有Sub btnRunReport_Click(ByVal发送者为System.Object,ByVal e为System.EventArgs)处理btnRunReport.Click 昏暗多为布尔=假 将multiReport设置为新的xtraReportFormMultiSelect 如果String.IsNullOrWhiteSpace(dtpDateEnding.Text)或其他String.IsNullOrWhiteSpace(dtpDateStarting.Text)然后 msgAlert("请在运行报告之前选择开始日期和/或结束日期。") 退出子 万一 如果dtpDateEnding.EditValue1然后 '我们有多个参数要处理 多=真 万一 '清除离散参数字段 multiReport.crParameterDiscreteValue =否 multiReport.crParameterFieldDefinitions =没什么 multiReport.ItemsSelected = lstAssign.SelectedItems multiReport.MdiParent = Me.MdiParent 如果radEmpWkDt.Checked然后 multiReport.strReportName =" rptemplwrkdt2l.rpt" 否则如果radEmpMile。 multiReport.strReportName =" rptempmileage.rpt" 否则如果radEmpReim。 multiReport.strReportName =" rptempreimbursement.rpt" 否则,如果radEmpPurchase。 multiReport.strReportName =" rptemppurchase.rpt" 其他 msgAlert("请在继续之前选择一个报告。") 万一 multiReport.cryRpt.Load(reportPath和multiReport.strReportName) 调用SetReportSQL(My.Settings.BMI6ConnectionString,multiReport.crV1,multiReport.cryRpt) '应用开始和结束日期 '新日期结束例行程序 ' 暗淡作为参数值 将DiM ParD作为新的ParameterDiscreteValue() par = multiReport.cryRpt.ParameterFields.Item(" dateEnding")。CurrentValues ParD.Value = dtpDateEnding.Text par.Add(ParD) multiReport.cryRpt.DataDefinition.ParameterFields.Item(" dateEnding")。ApplyCurrentValues(par) "新日期开始 ' par = multiReport.cryRpt.ParameterFields.Item(" dateStarting")。CurrentValues ParD.Value = dtpDateStarting.Text par.Add(ParD) multiReport.cryRpt.DataDefinition.ParameterFields.Item(" dateStarting")。ApplyCurrentValues(par) EmpNo新程序 ' par = multiReport.cryRpt.ParameterFields.Item(" empno")。CurrentValues 昏暗计数为整数= lstAssign.SelectedItems.Count 对于i = 0计数-1 ParD.Value = lstAssign.SelectedItems(i) par.Add(ParD) 下一个 multiReport.cryRpt.DataDefinition.ParameterFields.Item(" empno")。ApplyCurrentValues(par) multiReport.Show() 结束子 Public Sub SetReportSQL(ByVal ConnectionString As String, ByRef CrystalReportViewer作为CrystalDecisions.Windows.Forms.CrystalReportViewer, ByRef reportDocument作为ReportDocument) '获取SQL Server详细信息 昏暗的生成器作为新的SqlClient.SqlConnectionStringBuilder builder.ConnectionString =连接字符串 Dim zServer As String = TryCast(builder(" Data Source"),String) Dim zDatabase As String = TryCast(builder(" Initial Catalog"),String) '将zSecurity设为Boolean = Boolean.TryParse(builder(" Persist Security Info"),zSecurity) Dim zSecurity As Boolean = Boolean.Parse(builder(" Persist Security Info")) Dim zUsername As String = TryCast(builder(" User ID"),String) Dim zPassword As String = TryCast(builder(" Password"),String) 昏暗的ciReportConnection作为新的ConnectionInfo ciReportConnection.ServerName = zServer ciReportConnection.DatabaseName = zDatabase ciReportConnection.IntegratedSecurity = zSecurity 如果zSecurity = False,则 ciReportConnection.UserID = zUsername ciReportConnection.Password = zPassword 其他 reportDocument.DataSourceConnections(0).IntegratedSecurity = True 万一 '将数据源详细信息分配给表 对于每个表作为reportDocument.Database.Tables中的表 table.LogOnInfo.ConnectionInfo = ciReportConnection table.ApplyLogOnInfo(table.LogOnInfo) 下一个 对于每个子报表作为reportDocument.Subreports中的ReportDocument 对于每个表作为subrep.Database.Tables中的表 table.LogOnInfo.ConnectionInfo = ciReportConnection table.ApplyLogOnInfo(table.LogOnInfo) 下一个 下一个 '将数据源详细信息分配给报告查看器 如果CrystalReportViewer.LogOnInfo不存在 Dim tlInfo如TableLogOnInfos = CrystalReportViewer.LogOnInfo 对于每个tbloginfo作为tlInfo中的TableLogOnInfo tbloginfo.ConnectionInfo = ciReportConnection 下一个 万一 reportDocument.VerifyDatabase() reportDocument.Refresh() CrystalReportViewer.ReportSource = reportDocument CrystalReportViewer.Refresh() 结束子
CRLogger代码:
TIMESTAMP THREAD_ID FILENAME LINE_NUMBER LOGGED_DATA LEVEL 2020-1-29-0-44-8 1576 QESession.cpp 445设置产品视图区域设置:1033 20 2020-1-29-0-44-8 1576 QESession.cpp 479设置首选视图区域设置:1033 20 2020-1-29-0-44-8 1576 QESession.cpp 501设置过程区域设置:1033 20 2020-1-29-0-44-8 1576 qecommon.cpp 117该属性当前处于只读状态,无法修改。 文件名:" QEProperty.cpp"。 线:217 1 2020-1-29-0-44-12 1576 .. \ .. \ src\ print \ format \ imageretriever.cpp 925调用了销毁API。 未使用图像检索器。 无需清理。 20
声明文件
2020-1-29-0-44-8 1576 .. \ .. \ src\ crpe \ crpemain.cpp 461否
好的。 开始。 我不确定我使用的是正确的解释。 但是五天后...。这是发生了什么。
1。 报告文档在表格的初始化例程中被实例化。 使用Visual Studio 2019以某种方式开始检查报告路径,并在我的机器上检查该路径是否存在。 在客户端计算机上,该路径没有。 在旧版本的Visual Studio/CR中,它没有显示此行为。 如果我从未手工编码过CR表单,那么我将永远不会看过初始化例程。 现在一切都很好。
好吧,我从客户端计算机上删除了VS2019 Runtime,然后重新安装了VS2013。 但是该应用程序将无法运行。 在启动期间,它在客户的计算机上失败。 因此,我似乎无法向前或向后前进。。。我认为这就是"真正被卡住"的意思。 关于这两个问题的任何想法?
谢谢
-Vernon
第二个请求,希望对此有所帮助。 有什么想法可以尝试吗? 还有其他需要寻找的东西吗?
谢谢
-弗农
一周热门 更多>