水晶报表 - objRpt.SetDataSource()

Posted

技术标签:

【中文标题】水晶报表 - objRpt.SetDataSource()【英文标题】:Crystal Reports - objRpt.SetDataSource() 【发布时间】:2014-06-05 13:55:59 【问题描述】:

我在我的表单上创建了一个名为 Inv1 的新 Crystal Report 和一个 CrystalReportViewer1 对象,这使用了一个强定义的数据集来显示 TABLE 中的所有记录,它工作得很好。但是,我现在尝试根据下面的 SQL SELECT 语句将我的结果限制为仅显示 1 条记录。但是我收到了来自 Crystal Reports 的运行时错误。

收到错误...


System.IO.FileNotFoundException 未处理 H结果=-2147024894 消息=无法加载文件或程序集 'file:///C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll'或其依赖项之一。该系统找不到指定的文件。 源=mscorlib FileName=file:///C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll FusionLog==== 预绑定状态信息=== LOG:where-ref 绑定。位置 = C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll 日志:Appbase = file:///C:/Users/rob/Documents/DEVELOPMENT/PMSLinx/PMSLinx/bin/Debug/ 日志:初始 PrivatePath = NULL

调用程序集:(未知)。

LOG:此绑定在 LoadFrom 加载上下文中开始。 警告:将不会在 LoadFrom 上下文中探测本机图像。本机映像只会在默认加载上下文中进行探测,例如使用 Assembly.Load()。 日志:使用应用程序配置文件:C:\Users\rob\Documents\DEVELOPMENT\PMSLinx\PMSLinx\bin\Debug\PMSLinx.vshost.exe.config LOG:使用主机配置文件: LOG:使用 C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config 中的机器配置文件。 日志:正在尝试下载新的 URL file:///C:/Program Files (x86)/SAP BusinessObjects/Crystal Reports for .NET Framework 4.0/Common/SAP BusinessObjects Enterprise XI 4.0/win32_x86/dotnet1/crdb_adoplus.dll。

堆栈跟踪: 在 System.Reflection.RuntimeAssembly._nLoad(AssemblyName 文件名,字符串代码库,证据 assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark 和 stackMark,IntPtr pPrivHostBinder,布尔 throwOnFileNotFound,布尔 forIntrospection,布尔suppressSecurityChecks) 在 System.Reflection.RuntimeAssembly.nLoad(AssemblyName 文件名,字符串 codeBase,证据 assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark 和 stackMark,IntPtr pPrivHostBinder,布尔 throwOnFileNotFound,布尔 forIntrospection,布尔suppressSecurityChecks) 在 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,证据 assemblySecurity,RuntimeAssembly reqAssembly,StackCrawlMark 和 stackMark,IntPtr pPrivHostBinder,布尔 throwOnFileNotFound,布尔 forIntrospection,布尔suppressSecurityChecks) 在 System.Reflection.RuntimeAssembly.InternalLoadFrom (字符串 assemblyFile,证据 securityEvidence,Byte [] hashValue,AssemblyHashAlgorithm hashAlgorithm,Boolean for Introspection,Boolean suppressSecurityChecks,StackCrawlMark 和 stackMark) 在 System.Reflection.Assembly.LoadFrom(字符串 assemblyFile) 在 CrystalDecisions.ReportAppServer.DataSetConversion.DataSetConverter.DataSetProcessingDelegate(IntPtr arg) 内部异常:


我目前在其他表单中使用的代码。

将 objRpt 调暗为新 Inv1 将 invoiceDS 暗淡为新数据集

    Dim q As String = "select * from inv_data INNER JOIN res_data ON inv_data.inv_res_id = res_data.res_id WHERE inv_res_id = " & EditResID
    GetFromDB(invoiceDS, q)

    objRpt.SetDataSource(invoiceDS.Tables("table"))
    ViewReport.CrystalReportViewer1.ReportSource = objRpt
    ViewReport.CrystalReportViewer1.Refresh()
    ViewReport.Show()

【问题讨论】:

我找到了解决方案,只是想在此处发布此问题,以供遇到相同问题的其他人使用。看起来您必须使用以下内容修改项目中的 app.config:尝试将其添加到您的 .config 文件(通常是 app.config)中语言:c 【参考方案1】:

尝试将此添加到您的 .config 文件(通常是 app.config)中

<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

【讨论】:

以上是关于水晶报表 - objRpt.SetDataSource()的主要内容,如果未能解决你的问题,请参考以下文章

Winform中怎么使用水晶报表?

Visual Studio 2010 里面的水晶报表怎么弄?

VB.net中如何制作水晶报表?

[水晶报表]为水晶报表(含子报表)绑定数据

vs2008制作水晶报表

我已经绝望了,水晶报表打包真难啊100求助