2011-09-29 44 views
1

語境如何從SSRS中的DataSet動態顯示SubReports的列表?

其實我工作的一個項目,我需要撰寫將從我們的自定義工具來設計報告。用戶將使用他將按特定順序放置的現有報告撰寫此報告。所以基本上,爲了記錄組成的報告設計,我們將它保存在一個對象模型中,該對象模型包含基本報告列表及其順序。

挑戰

的目標是簡單地顯示其REPORTNAME被從數據集檢索子報表的列表。

我試過

我做了一個數據集將返回包含在其中顯示,在服務器和報表參數,如果該報告路徑可用報告的順序列。所以我添加了一個包含SubReport的單元格的Tablix。由於Tablix將遍歷所有DataSet行,我試圖設置SubReport的ReportName。但不幸的是,它看起來像SubReport.ReportName不接受從DataSet計算的值。

我試過,但它不工作:

... 
<Tablix Name="ReportModuleTablix"> 
    <DataSetName>ReportModules</DataSetName> 
    ... 
    <TablixBody> 
     ... 
     <TablixRows> 
      <TablixRow> 
       ... 
       <TablixCells> 
        <TablixCell> 
         <CellContents> 
          <Rectangle Name="SubReportRectangle"> 
           <ReportItems> 
            ... 
            <Subreport Name="ModuleReport"> 
             <ReportName>=Fields!Path.Value</ReportName> 
            </Subreport> 
           </ReportItems> 
          </Rectangle> 
         </CellContents> 
        </TablixCell> 
       </TablixCells> 
      </TablixRow> 
     </TablixRows> 
    </TablixBody> 
    ... 
</Tablix> 
... 

=字段Path.Value表示當前的DataSet行的報告路徑。

我真正需要的是能夠顯示從數據集參數報告的列表,所以我想知道我怎麼能實現我的目標。我看了一下自定義的ReportItem,但文檔非常尷尬,並且不是最新的。

謝謝。

+0

有關隱藏不需要的子報告什麼,並添加虛擬where子句來隱藏報告(其中1 = @ PARAM),以免造成額外的負擔到數據庫? – niktrs

+0

我想你錯過了我的目標。我想要的是將ReportPath提供給從DataSet中檢索ReportPath字符串的SubReport。我只想顯示一個SubReport列表,其中ReportName屬性是從DataSet中設置的。我會考慮審查我的問題,使其更清楚。 – Ucodia

回答

2

我們最終選擇了代碼中的RDL生成,這意味着使用RDL對象模型手動添加子報表項目,但它需要對內部類進行一些黑客入侵(RdlSerializer)。

我在這篇文章中寫的那樣:https://github.com/Ucodia/Blog-CustomReportingServices

+0

本網站已關閉。 – Lyra

+1

@ThomasSchleiber事實上,我將重新上傳GitHub上的文章並更新答案。 – Ucodia

+1

@ThomasSchleiber我修復了鏈接和文章。 – Ucodia