点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,我在 vb.net 项目中创建了水晶报表,它在我的系统上运行良好 但是,当我尝试在客户端计算机上运行项目时,该项目会运行,但只有Crystal报表不会运行。 它在" CrystalReports.Engine.ReportDocument"中给出了错误。 我尝试了多种方法来解决它,但徒劳无功。 因此,请帮助我在除我以外的所有计算机上运行Crystal Reports。
我正在构建公司将在其拥有Windows 10到XP的各个部门中使用的项目,因此我需要一个可以实施一次且可以在运行解决方案文件(.exe)的任何计算机上使用的解决方案。
您不能仅将程序及其使用的程序集复制到新计算机上。 相反,您必须以与用于生成程序的版本匹配的版本安装Crystal for .NET运行时。 这是因为程序使用的程序集需要其他一些.dll文件,包括一些包含需要注册的COM组件的文件。 实现所有这些功能的唯一方法是多带带安装运行时。
假设您使用的是VS 2010或更高版本,则将找到指向SAP上SDK运行时安装的链接。 适用于Visual Studio Wiki的Crystal Report 这里。
-戴尔
谢谢 用于访问SAP社区以获取问题的答案。 既然你是新人 第一次在这里提问时,建议您熟悉一下 使用 https://community.sap.com/resources/questions-and-answers (如果您 还没有),因为它提供了提示 用于准备可以引起我们成员回复的问题。
应该 您可以根据需要修改问题,方法是选择"操作",然后选择"编辑" (尽管一旦有人回答了您的问题,您将失去编辑功能 问题-但是,如果发生这种情况,您可以在评论中保留更多详细信息。
最后, 如果您希望与读者交流,请考虑将图片添加到 你的个人资料。 操作方法如下: https://www.youtube.com/watch?v=F5JdUbyjfMA&list=PLpQebylwrd-s5 h6RtymfDpoz3vDS 。 通过使用您的照片个性化您的个人资料,可以鼓励读者 回应。
最佳 问候
Mynyna
SAP 社区主持人
我正在使用Visual Studio 2019和Crystal Reports Runtime 13_0_27版本。 运行时版本(32位和64位)都安装在另一台计算机上,并且在其中一个在线答案中建议使用crdb_fielddef.dll。 在该系统上还提供了读取数据库的权限。
该项目的工作逻辑是-当我们要打印有关特定记录的信息时,将捕获选定的索引号并将其传输到另一种形式(.vb),在该形式中,数据是从SQL Server数据库中获取的, 存储在项目表中多带带的新数据集中的空表中。 然后,水晶报表将这些记录存储在数据集中的表中,并显示记录。
我已经从"数据库专家"那里检查了数据源的位置,它与所需的位置相同。
尝试了多种方法后,问题是一样的-整个项目都在我的机器上运行,但是在应该运行该机器的另一台机器上,所有页面都显示了记录,但是当尝试使用Crystal显示打印预览时 报告,它显示错误-"无法加载数据库信息"。
我在表单内的代码如下-
导入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的文件位置。
我正在使用Visual Studio 2019和Crystal Reports Runtime 13_0_27版本。 运行时版本(32位和64位)都安装在另一台计算机上,并且在其中一个在线答案中建议使用crdb_fielddef.dll。 在该系统上还提供了读取数据库的权限。
该项目的工作逻辑是-当我们要打印有关特定记录的信息时,将捕获选定的索引号并将其传输到另一种形式(.vb),在该形式中,数据是从SQL Server数据库中获取的, 存储在项目表中多带带的新数据集中的空表中。 然后,水晶报表将这些记录存储在数据集中的表中,并显示记录。
我已经从"数据库专家"那里检查了数据源的位置,它与所需的位置相同。
尝试了多种方法后,问题是一样的-整个项目都在我的机器上运行,但是在应该运行该机器的另一台机器上,所有页面都显示了记录,但是当尝试使用Crystal显示打印预览时 报告,它显示错误-"无法加载数据库信息"。
一周热门 更多>