franciszhao 发表于 2016-7-11 10:01:56

打开rdlx设计器的预览界面时出错

本帖最后由 Lenka.Guo 于 2016-7-11 10:09 编辑

把官网下载的activereportsdemo工程重命名并添加到vs解决方案后,打开rdlx设计器的预览界面时出错:

错误明细:
System.Data.OleDb.OleDbException (0x80004005): 'D:\Repo\xxx_report\Data\NWind_CHS.mdb'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
   在 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
   在 System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
   在 System.Data.ProviderBase.DbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
   在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
   在 System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   在 System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   在 System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   在 System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   在 System.Data.OleDb.OleDbConnection.Open()
   在 #TwA.#f0U.Open()
   在 GrapeCity.ActiveReports.ReportsCore.Rendering.ReportProcessor.#U.#z5e.#GEf(ParameterValueCollection valuesCollection, Parameter parameter, String dataSetName, String labelField, String valueField)
   在 GrapeCity.ActiveReports.ReportsCore.Rendering.ReportProcessor.#U.#z5e.#p8A(Parameter parameter)
   在 GrapeCity.ActiveReports.Expressions.ExpressionObjectModel.Parameter.#Ykf()
   在 GrapeCity.ActiveReports.ReportsCore.Rendering.ReportProcessor.#U.#z5e.#xEf()
   在 GrapeCity.ActiveReports.ReportsCore.Rendering.ReportProcessor.#U.#z5e.get_Parameters()
   在 GrapeCity.ActiveReports.Viewer.Win.Rdlx.RdlReport.#bjz(PageDocument rr, Boolean doDocumentDisposing)
   在 GrapeCity.ActiveReports.Viewer.Win.Rdlx.RdlReport.#cjz(PageDocument pageDocument, Int32 pagesToLoad)
   在 GrapeCity.ActiveReports.Viewer.Win.Internal.ViewerApi.LoadDocument(PageDocument pageDocument)
   在 GrapeCity.ActiveReports.Viewer.Win.Viewer.LoadDocument(PageDocument pageDocument)
   在 GrapeCity.ActiveReports.Design.DdrDesigner.Services.UI.CorePreview.LoadReport(Boolean assertReady)


Lenka.Guo 发表于 2016-7-11 10:08:12

您应该是在预览报表时, 出现的数据库连接地址不正确的错误。

您需要在报表设计界面,修改数据库的路径为当前NWind_CHS.mdb所在的地址。

franciszhao 发表于 2016-7-11 11:02:33

具体操作界面可以贴一下么,谢谢

Lenka.Guo 发表于 2016-7-11 11:30:04

franciszhao 发表于 2016-7-11 11:02
具体操作界面可以贴一下么,谢谢

在报表设计界面,右边“报表资源管理器” 中选择“数据源”-》修改(或编辑数据源)


franciszhao 发表于 2016-7-11 11:42:33

解决方案根目录:D:\Repo\HemoSystem
但错误提示却是:'D:\Repo\HemoSystem\Data\NWind_CHS.mdb'这个文件,其实NWind_CHS.mdb放在D:\Repo\HemoSystem\HemoSystemReport\Data\NWind_CHS.mdb这个路径。




设置过后



Lenka.Guo 发表于 2016-7-11 12:21:41

您好:

是这样的,Demo中的所有报表使用的是“共享数据源” 即 NWind_CHS_Access.rdsx 文件,这样只需要设置一次数据库路径,所有报表就可以调用了,共享数据源可参考博客:http://blog.gcpowertools.com.cn/post/2016/05/25/SharedDataSource.aspx

现在,为了预览项目中的报表,就需要解决数据源路径问题,只有数据源路径正确,才能保证报表获取到数据,正常展示。
所以,以一张报表为例, 直接连接数据库,而不引用共享数据源。

1. 选中“数据源”节点,右键单击——》修改



2. 去掉共享引用,选择数据库路径,点击确定即可。




如果为了使用共享数据源,可参考上面给的博客文章。

franciszhao 发表于 2016-7-11 13:30:37

LenKa,谢谢,按照你的方法,已经OK了。

Lenka.Guo 发表于 2016-7-11 13:36:49

franciszhao 发表于 2016-7-11 13:30
LenKa,谢谢,按照你的方法,已经OK了。

:hjyzw:
页: [1]
查看完整版本: 打开rdlx设计器的预览界面时出错