2015-11-06 65 views
0

只有我的第二个问题,我对ssrs很新,但我宁愿按照正确的方式做,现在就去学习,然后不得不返回并在以后修复所有问题。如何从SQL表创建SSRS模板?

我将为我的公司创建一个半灵活报告(SSRS)标准,并提前获得全球共识是不可能的。我建议的解决方案是创建一个格式化表格,我可以更新它来改变我所有类型报告的外观和感觉。 (表格,图表等)我想到了两种方法来做到这一点,我正在寻找哪些更好的建议,如果我认为它会起作用......实际上会起作用。我完全愿意研究如何操作的所有细节,但我真的很感谢有关如何开始的提示。

有没有办法引用你的表达式在哪个属性(例如名称,背景颜色)?如果我可以对所有属性的表达式使用相同的代码,并且只让该代码在表格中找到它,那将会非常棒。 类似:

attribute.value = lookup(ReportFormataDataset as RFD, attribute.name = 
RFD.name and left(me.name, 3) = RFD.prefix) 

我也可以运行VBA代码的循环来改变基于什么是在表中的属性。我计划创建一个带有命名约定的报告模板来提供帮助。 (例如HDR,TTL,BDY前缀),所以它可能看起来像:

for each reportItem in report 
    for each el in FormatTable 
     'make sure the report item is what I think it is, like header 
     if left(ReportItem.name, 3) = el.prefix then 
      'e.g. backgroundcolor = Blue 
      name.value = el.value 
     end if 
    end loop 
end loop 

但后来当我运行它,我想,如果我这样做是在表达想象这减缓我的报告有很多。也许用变量来代替?

我发现这一点: tips-tricks-ensure-consistency-sql-server-reporting-services-reports 但它似乎很繁琐维护,如果我添加的格式要求后,我不得不说参数添加到所有的报告和属性。

我知道这似乎有点钓鱼,但我不确定这两种方式是如何工作的,我知道我可以花费数日的时间在专家可以在5分钟内让我指向正确的方向。对不起,如果这不是'堆栈精神',并感谢你。

回答

0

我们已经实现了类似的东西,并使用了设置所有报告调用的共享数据集的方法。这将返回一条记录,其中包括我们可能在报告中使用的所有图像,背景颜色和日期格式(包括公司徽标和品牌颜色)。

如果我们可以在例如电池的日期,我们便数字格式设置为

=First(Fields!FullDateFormat.Value, "ReportConstants") 

ReportConstants被命名的共享数据集。

这也允许我们在英国和美国部署相同的报告,但都使用它们的本机日期格式,因为这是由数据库实例设置的,而不是在报告中。

现在是否采取正确的方法是另一个问题,但它适用于我们,在多个位置使用〜50个报告,而无需每次单独配置每个报告。

对您有帮助吗?

+0

谢谢Jonnus,这听起来像是应该起作用。我还收集到每个属性都有自己的列,而不是名为“属性名”的列和FullDateFormat的数据。 您是否拥有样式ID,然后使用与该报告的ID匹配的一条记录填充数据集? –

+0

@零影子,是的每个属性都有自己的专栏。在上面的例子中,有一个名为FullDateFormat的列。我们所有的报告都遵循相同的风格,但您提出的styleID是有道理的。报告可以将此作为参数,然后共享数据集可以返回匹配styleID的数据库中的单个行。 – Jonnus