【.Net码农】RDLC 在VS2012后的版本中做数据报表时,提示尚未指定报表“Report1”的报表定义

http://www.cnblogs.com/ljx2012/p/4093474.html


在VS2012后的版本中做数据报表时,提示尚未指定报表“Report1”的报表定义

有一群的朋友在用VS2012做数据报表时,老是提示

  • 本地报表处理期间出错。
    • 尚未指定报表“Report1”的报表定义
      • 未将对象引用设置到对象的实例。

我看了一下,步骤没错,我用VS2010做了一下,一切OK,没问题,但用VS2013做时,

就提示这错误

后仔细看了一下设计生成的源码,嘿,还真有区别,在VS2012与VS2013中,

ReportViewer生成的代码在引用报表数据时,使用的是ReportEmbeddedResource属性

?
1
2
3
4
5
<LocalReport  ReportEmbeddedResource= "WebApplication1.Report1.rdlc" >
                 <DataSources>
                     <rsweb:ReportDataSource DataSourceId= "ObjectDataSource1" Name= "DataSet1" />
                 </DataSources>
             </LocalReport>

 在VS2010的版本中使用的是ReportPath

?
1
2
3
4
5
<LocalReport  ReportPath= "Report1.rdlc" >
                <DataSources>
                    <rsweb:ReportDataSource DataSourceId= "ObjectDataSource1" Name= "DataSet1" />
                </DataSources>
            </LocalReport>

而ReportPath与ReportEmbeddedResource的区别是:

ReportPath是获取或设置本地报表的本地文件系统路径,

设置 ReportPath 属性将导致 ReportViewer 控件从文件系统自动加载所需的任何子报表。

设置此属性将导致ReportEmbeddedResource 属性的值被忽略

ReportEmbeddedResource是嵌入报表资源是已经作为资源存储在调用程序集中的报表定义。

因为要手动修改使用ReportPath,就能解决这问题

 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值