【问题标题】:Create Microsoft SQL Report (SSRS) based on XML data stored in database基于存储在数据库中的 XML 数据创建 Microsoft SQL 报告 (SSRS)
【发布时间】:2012-11-20 00:49:26
【问题描述】:

我正在尝试在 Visual Studio 2012 中创建 Microsoft SQL 报告。报告的数据输入是存储在数据库中的 XML 二进制文件。

为了分解它,这就是我想做的:

  1. 从数据库中检索 XML 二进制文件

  2. 使用 XML 的内容填充报告

  3. 创建报告的 PDF 版本

第 1 步和第 3 步没有问题。但是第2步是。我不知道如何在数据集中使用 XML 数据,所以我在报告中使用它。

我缺少一些基本的东西吗?

我以前只使用数据库中的数据而不是 XML 来创建许多报告。

谢谢。

【问题讨论】:

    标签: xml visual-studio-2012 ssrs-2008 reporting-services


    【解决方案1】:

    如果 XML 存储在数据库中并且您只能通过 SQL 查询访问它,我建议如下:

    1. 使用空连接字符串创建 XML 数据源。通常它是一个网站/服务 URL。
    2. 在报表的数据集中选择使用 XML 数据源。请注意,现在唯一可能的命令类型是文本。
    3. 为报告添加一个内部参数,该参数将包含您的 XML 文件。
    4. 编写表达式以从数据库中获取参数的默认值。该值应该是您的 XML。
    5. 在数据集命令中使用XML Query选择字段,例如:

      <Query>
         <XmlData>
          <!-- Your XML starts -->
          <Books>
              <Book id='1'>Foo</Book>
              <Book id='2'>Bar</Book>
              <Book id='3'>Baz</Book>
          </Books>
          <!-- Your XML ends -->
         </XmlData>
         <ElementPath>Books/Book</ElementPath>
      </Query>
          <!--just tweaked indentation-->
      

    这将添加两个字段:idBook。您需要使用参数而不是 XML。

    更新:对于 XML 格式,我很抱歉,我无法让代码块工作。

    【讨论】:

    • 感谢您回复 Serge。我有点卡在第 5 步。我无法从查询 XML 中嵌入的输入参数中获取我的 XML。我想要的是:&lt;Query&gt;&lt;XmlData&gt; &lt;!-- Input Parameter value here --&gt; &lt;/XmlData&gt; &lt;ElementPath&gt;Books/Book&lt;/ElementPath&gt; &lt;/Query&gt; 但我只是得到一个语法错误。
    • 让它工作,只是没有正确的语法。 ="&lt;Query&gt;&lt;XmlData&gt;" &amp; Parameters!ReportParameter1.Value &amp; "&lt;/XmlData&gt;&lt;/Query&gt;"
    • 我也在考虑这个解决方案,但我相信由于报告参数长度限制,它会将您的 XML 限制为 ~65000 个字符。
    猜你喜欢
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多