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