将静态数据添加到报表生成器以在报表中使用

时间:2018-04-07 13:20:26

标签: reporting-services dataset reportbuilder3.0 reportbuilder

我正在使用report builder 3.0在供应商的环境中创建报表,我只能访问其数据源。我们需要将静态数据与我们从模型中创建的数据集结合使用,并且我试图弄清楚如何将数据添加到报告中以用于查找值。

例如:

数据集包含AccountNo,OrderNo,ItemNo,Quantity等。 我需要能够显示ItemNo的一些属性,如ItemName,ItemCost,ItemValue等。

我想有一个我可以查找的数据集来获取这些值,但是我能让它工作的唯一方法是创建一个包含数十万个IF语句的报告代码函数:IF ItemNo =“12345”然后ItemName =“XYZ产品”

至少可以说这很慢而且很麻烦。如果数据源在我的控制之下,我可以简单地在SQL中添加一个表,但我不能在这种环境中。我甚至尝试过链接到外部数据源,环境不允许这样做。我正在研究创建某种XML数据或尝试将数据直接添加到RDL,但我的选项已用完。

有没有人知道添加一组数据或创建包含静态值的嵌入数据集的任何方法。任何帮助将不胜感激。

提前谢谢你, 埃里克。

3 个答案:

答案 0 :(得分:1)

您可以添加使用表变量的共享数据集。因此,只需创建一个新的共享数据集并使用像

这样的查询
DECLARE @t TABLE(ItemNo int, ItemName varchar(100))
INSERT INTO @t VALUES
    (12345, 'XYZ Product'),
    (23456, 'ABC Product')
SELECT * FROM @t

您可以在每个报告中使用它,并对其进行查找以获取所需的数据。

希望您有足够的权限创建共享数据集,否则您必须将其复制到每个报告,但它会比数千个IIF更快

答案 1 :(得分:0)

您可以在报告的自定义代码部分中使用VBA对此进行编码。和/或使其成为一个自定义DLL,可以从任何地方获取数据。在这种情况下,查找代码将包含在自定义DLL中(传入输入,代码返回查找)。

答案 2 :(得分:0)

  1. 创建XML类型的数据源
  2. 创建数据集并设置在步骤1中创建的数据源
  3. 将查询类型设置为文本
  4. 添加一些XML,下面有一个示例

您现在应该在输出中看到3列,我知道它已经很晚了,但是我自己在搜索,希望能对其他人有所帮助

<Query>
    	<XmlData>
    		<?xml version="1.0"?>
    		<Months>
    			<Month MonthValue="1">
    				<Name="January" />
    				<ShortName="Jan" />
    			</Month>
    			<Month MonthValue="2">
    				<Name="February" />
    				<ShortName="Feb" />
    			</Month>
    			<Month MonthValue="3">
    				<Name="March" />
    				<ShortName="Mar" />
    			</Month>
    			<Month MonthValue="4">
    				<Name="April" />
    				<ShortName="Apr" />
    			</Month>
    			<Month MonthValue="5">
    				<Name="May" />
    				<ShortName="May" />
    			</Month>
    			<Month MonthValue="6">
    				<Name="June" />
    				<ShortName="Jun" />
    			</Month>
    			<Month MonthValue="7">
    				<Name="July" />
    				<ShortName="Jul" />
    			</Month>
    			<Month MonthValue="8">
    				<Name="August" />
    				<ShortName="Aug" />
    			</Month>
    			<Month MonthValue="9">
    				<Name="September" />
    				<ShortName="Sep" />
    			</Month>
    			<Month MonthValue="10">
    				<Name="October" />
    				<ShortName="Oct" />
    			</Month>
    			<Month MonthValue="11">
    				<Name="November" />
    				<ShortName="Nov" />
    			</Month>
    			<Month MonthValue="12">
    				<Name="December" />
    				<ShortName="Dec" />
    			</Month>
    		</Months>
    	</XmlData>
       </Query>