在VS2012后的版本中做數據報表時,提示尚未指定報表“Report1”的報表定義


有一群的朋友在用VS2012做數據報表時,老是提示

  • 本地報表處理期間出錯。
    • 尚未指定報表“Report1”的報表定義
      • 未將對象引用設置到對象的實例。

我看了一下,步驟沒錯,我用VS2010做了一下,一切OK,沒問題,但用VS2013做時,

就提示這錯誤

后仔細看了一下設計生成的源碼,嘿,還真有區別,在VS2012與VS2013中,

ReportViewer生成的代碼在引用報表數據時,使用的是ReportEmbeddedResource屬性

<LocalReport  ReportEmbeddedResource="WebApplication1.Report1.rdlc">
                <DataSources>
                    <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="DataSet1" />
                </DataSources>
            </LocalReport>

 在VS2010的版本中使用的是ReportPath

 <LocalReport  ReportPath="Report1.rdlc">
                <DataSources>
                    <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="DataSet1" />
                </DataSources>
            </LocalReport>

而ReportPath與ReportEmbeddedResource的區別是:

ReportPath是獲取或設置本地報表的本地文件系統路徑,

設置 ReportPath 屬性將導致 ReportViewer 控件從文件系統自動加載所需的任何子報表。

設置此屬性將導致ReportEmbeddedResource 屬性的值被忽略

ReportEmbeddedResource是嵌入報表資源是已經作為資源存儲在調用程序集中的報表定義。

因為要手動修改使用ReportPath,就能解決這問題

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM