我应该如何从 SQL table 创建 SSRS 模板?
How should I created an SSRS template from a SQL table?
这只是我的第二个堆栈问题,我对 ssrs 还很陌生,但我宁愿以正确的方式去做,现在就学习,然后再回来解决所有问题。
我要为我的公司创建一个半灵活报告 (SSRS) 标准,提前获得全球共识是不可能的。我建议的解决方案是创建一个格式 table,我可以更新它以改变我所有一种类型的报告的外观。 (tables,图表等)我想到了两种方法来做到这一点,我正在寻找更好的建议,如果我认为它会起作用......会真正起作用。我完全愿意研究操作方法的所有细节,但我真的很感激关于如何开始的提示。
有没有办法引用您的表达式所在的属性(例如名称、背景颜色)?如果我可以对所有属性的表达式使用相同的代码并让该代码在 table 中找到它,那就太棒了。
类似于:
attribute.value = lookup(ReportFormataDataset as RFD, attribute.name =
RFD.name and left(me.name, 3) = RFD.prefix)
或者我可以 运行 在 VBA 代码中循环以根据 table 中的内容更改属性。我计划创建一个带有命名约定的报告模板来提供帮助。 (例如 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 分钟内为我指出正确的方向时,我可以投入数天的努力所以...抱歉,如果这不在 'stack spirit' 中,谢谢。
我们已经实现了类似的东西,并使用了设置所有报表调用的共享数据集的方法。 returns 一条记录,其中包括我们可能在报告中使用的所有图像、背景颜色和日期格式(包括公司徽标和品牌颜色)。
例如,如果我们在单元格中有一个日期,那么我们会将数字格式设置为
=First(Fields!FullDateFormat.Value, "ReportConstants")
其中 ReportConstants
是共享数据集的名称。
这也允许我们在英国和美国部署相同的报告,但两者都使用它们的本机日期格式,因为这是由数据库实例设置的,而不是在报告中设置的。
现在这是否是正确的方法是另一个问题,但它对我们有用,在多个位置使用 ~50 份报告,而不必一直单独配置每个报告。
这有帮助吗?
这只是我的第二个堆栈问题,我对 ssrs 还很陌生,但我宁愿以正确的方式去做,现在就学习,然后再回来解决所有问题。
我要为我的公司创建一个半灵活报告 (SSRS) 标准,提前获得全球共识是不可能的。我建议的解决方案是创建一个格式 table,我可以更新它以改变我所有一种类型的报告的外观。 (tables,图表等)我想到了两种方法来做到这一点,我正在寻找更好的建议,如果我认为它会起作用......会真正起作用。我完全愿意研究操作方法的所有细节,但我真的很感激关于如何开始的提示。
有没有办法引用您的表达式所在的属性(例如名称、背景颜色)?如果我可以对所有属性的表达式使用相同的代码并让该代码在 table 中找到它,那就太棒了。 类似于:
attribute.value = lookup(ReportFormataDataset as RFD, attribute.name =
RFD.name and left(me.name, 3) = RFD.prefix)
或者我可以 运行 在 VBA 代码中循环以根据 table 中的内容更改属性。我计划创建一个带有命名约定的报告模板来提供帮助。 (例如 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 分钟内为我指出正确的方向时,我可以投入数天的努力所以...抱歉,如果这不在 'stack spirit' 中,谢谢。
我们已经实现了类似的东西,并使用了设置所有报表调用的共享数据集的方法。 returns 一条记录,其中包括我们可能在报告中使用的所有图像、背景颜色和日期格式(包括公司徽标和品牌颜色)。
例如,如果我们在单元格中有一个日期,那么我们会将数字格式设置为
=First(Fields!FullDateFormat.Value, "ReportConstants")
其中 ReportConstants
是共享数据集的名称。
这也允许我们在英国和美国部署相同的报告,但两者都使用它们的本机日期格式,因为这是由数据库实例设置的,而不是在报告中设置的。
现在这是否是正确的方法是另一个问题,但它对我们有用,在多个位置使用 ~50 份报告,而不必一直单独配置每个报告。
这有帮助吗?