只有我的第二个堆栈问题,我对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 :(得分:0)
我们已经实现了类似的功能,并使用了设置所有报告调用的共享数据集的方法。这将返回单个记录,其中包括我们可能在报告中使用的所有图像,背景颜色和日期格式(包括公司徽标和品牌颜色)。
如果我们在单元格中有一个日期,我们会将数字格式设置为
=First(Fields!FullDateFormat.Value, "ReportConstants")
其中ReportConstants
是共享数据集的名称。
这也允许我们在英国和美国部署相同的报告,但两者都使用其原生日期格式,因为这是由数据库实例设置的,而不是在报告中。
现在这是否是正确的接受方式是另一个问题,但它适用于我们,使用多个位置的~50个报告,而无需一直单独配置每个报告。
这有用吗?