【问题标题】:Is it possible to use XML dataset in SSRS report designer是否可以在 SSRS 报表设计器中使用 XML 数据集
【发布时间】:2016-01-28 13:38:04
【问题描述】:

是否可以在 SSRS 报表设计器中使用 XML 数据集?我需要获取一个大型数据集,例如,

Master Row
  - Details1
  - Details2
  - ... DetailsN

我已经使用 FOR XML RAW 创建了返回 XML 数据的查询,但是在添加新报告时我无法在查询设计器中使用它。

请注意我没有使用 XML 数据源,我只是尝试使用 SELECT 查询添加 XML 数据集。我没有尝试过存储过程,但不确定它是否也能工作......

换句话说,是否可以将 XML 数据集(不是数据源)添加到 SSRS 报告中

【问题讨论】:

  • 我理解正确吗?您想在报表上显示 XML 的内容吗?如何?您是否正在考虑问题中给出的缩进输出?一个核心方法可能是(如果您已经拥有 XML)只是使用 REPLACE 来摆脱所有 XML 标记。您可能会使用 XSLT 将您的 XML 转换为文本 - 但我认为实际上创建缩进文本会更容易......

标签: sql-server xml reporting-services


【解决方案1】:

如果你需要一个看起来像树视图的 XML,你可以这样做:

DECLARE @xml XML=
'<root>
  <level content="Level A">
    <detail content="Detail AA">
      <item content="item AAA" />
    </detail>
    <detail content="Detail AB">
      <item content="item ABA" />
      <item content="item ABB" />
      <item content="item ABC" />
    </detail>
    <detail content="Detail AC">
      <item content="item ACA" />
      <item content="item ACB" />
    </detail>
  </level>
  <level content="Level B">
    <detail content="Detail BA">
      <item content="item BAA" />
    </detail>
    <detail content="Detail BB">
      <item content="item BBA" />
      <item content="item BBB" />
      <item content="item BBC" />
    </detail>
    <detail content="Detail BC">
      <item content="item BCA" />
      <item content="item BCB" />
    </detail>
  </level>
</root>';


SELECT  CASE The.Node.value('fn:local-name(.)','varchar(max)')
        WHEN 'level' THEN ''
        WHEN 'detail' THEN REPLICATE(' ',4)
        WHEN 'item' THEN REPLICATE(' ',8)
        ELSE ''
        END + The.Node.value('@content','varchar(max)')
FROM @xml.nodes('root//*') AS The(Node)

结果

Level A
    Detail AA
        item AAA
    Detail AB
        item ABA
        item ABB
        item ABC
    Detail AC
        item ACA
        item ACB
Level B
    Detail BA
        item BAA
    Detail BB
        item BBA
        item BBB
        item BBC
    Detail BC
        item BCA
        item BCB

【讨论】:

  • 感谢您的回答,但我不确定这如何适用于 SSRS 报告:S
  • @PleaseTeach 我必须承认我没有 SSRS 报告的经验。我们使用的报告系统需要一个平面表中的数据,其余的在报告引擎中完成。上面的方法在单个文本上创建。整个输出是一个字符串。这可能会传递给报告并在那里显示。你还需要什么?
  • @PleaseTeach 这对您来说是一种可行的方法吗?您需要进一步的帮助吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多