如何在多台客户端计算机上运行Crystal Reports?

2020-08-16 10:51发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨,我在 vb.net 项目中创...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,我在 vb.net 项目中创建了水晶报表,它在我的系统上运行良好 但是,当我尝试在客户端计算机上运行项目时,该项目会运行,但只有Crystal报表不会运行。 它在" CrystalReports.Engine.ReportDocument"中给出了错误。 我尝试了多种方法来解决它,但徒劳无功。 因此,请帮助我在除我以外的所有计算机上运行Crystal Reports。

我正在构建公司将在其拥有Windows 10到XP的各个部门中使用的项目,因此我需要一个可以实施一次且可以在运行解决方案文件(.exe)的任何计算机上使用的解决方案。

5条回答
天桥码农
2020-08-16 11:29

我在表单内的代码如下-

导入CrystalDecisions.CrystalReports.Engine

公共类ChemLabGradePrint

新建公共子类(ByVal GradeIndex1为整数)

InitializeComponent()

Dim ff作为新的PourChemistryDataset.PourChemistryDataTable

昏暗的结果作为PourChemistrReportList

昏暗的SMin作为字符串

昏暗的RMin作为字符串

昏暗的RMax作为字符串

昏暗c作为整数结果=新的PourChemistrReportList(ReaderF(GetPourChemistryReport(GradeIndex1)))

对于c = 0到result.ElementName.Count-1

如果IsNumeric(result.SpecMin(c))并且CDbl(result.SpecMin(c))<> 0然后

SMin = result.SpecMin(c)

其他

SMin =""

如果结束

如果IsNumeric(result.RestrMin(c))And CDbl(result.RestrMin(c))<> 0然后

RMin = result.RestrMin(c)

其他

RMin =""

如果结束

如果IsNumeric(result.RestrMax(c))And CDbl(result.RestrMax(c))<> 0那么

RMax = result.RestrMax(c)

其他

RMax =""

如果结束

'//将记录存储在PourChemistryDataTable表的空表(手动构建)中

ff.Rows.Add(result.ElementName(c),

SMin,result.SpecMax(c),RMin,RMax,result.Pref(c),

result.Bckp(c),result.Comments(c))

下一步

'-------报告

将RDoc变暗为新的ReportDocument

RDoc.Load(CrystalReportViewer1.ReportSource)

RDoc.SetDataSource(DirectCast(ff,DataTable))

RDoc.SetParameterValue(" METGrade",result.MetCode(0))

'//" METGrade"是水晶report.rpt文件中的"参数"字段

RDoc.SetParameterValue(" GradeName",result.GradeName(0))

CrystalReportViewer1.ReportSource = RDoc

结束子

结束班级

然后,将Crystal Report设置为PourChemistryDataTable表的数据源位置,并在报告中显示数据。

所有这些过程都可以在我的系统上正常运行,但不能在其他系统上运行。 将安装相同的运行时版本,并且还授予读取访问权限以访问SQL Server的.mdf文件。 将项目的sql源设置为自动以获取sqlserver和数据库信息。

Designer.vb中的CrystalReportViewer1.ReportSource是=>

Me.CrystalReportViewer1.ReportSource =" P:\ ASW-Core-Shop_New \ ASW-Core-1.1 \ Reports \ ChemLabGradeReport.rpt"

手动设置它是因为它给出了"无法将report.reportSource转换为String"的错误,因此它被手动设置为文件位置。 工厂中的任何计算机都可以访问存储项目的文件位置,因为每个人都可以访问该驱动器。 因此,每个人的系统都可以访问reportSource的文件位置。

一周热门 更多>