举个例子
新建一张拥有3个列表对象的报表。定义报表的列如下:
List 1: Product| Product lines and Sales fact| Quantity.
List 2:Time dimension| Current year, Time dimension| Current month and Sales fact| Quantity.
List 3: Retailer site| Region and Sales fact| Quantity.
为所有报表对象定义合适的分组、排序和聚合。确定所有的报表对象使用不同的查询。
如何实施…
1.我们从创建一个用于报表类型的prompt开始。转到Page Explorer并添加一个prompt page。
2.添加一个value prompt到prompt page工作区。定义参数名称为paramReportType。请注意,此处不需要定义任何过滤,使用值或者显示值。
3.选中此value prompt,从属性列表中打开Static Choice属性。
4.定义3个静态选项,如下图所示。
5.转到Condition Explorer,新建一个String Variable。定义其表达式为:
ParamValue('paramReportType')。
6.为此变量添加3个值:BD、BP和BR。修改变量名为ReportType。
7.转到report page,添加一个Conditional block到报表工作区。
8.选中此conditional block,并从属性栏中打开Block Variable对话框。从下拉列表中选择ReportType变量,然后点击OK。
9.从属性框中选择BP为current block。选中按products显示sales quantity的第一个列表,并拖拽其到conditional block内(此处,我们需要用到Ancestor按钮以选中整个列表)。
10.修改此conditional block的current block属性为BD,拖拽“Salesman by Periods”列表到conditional block中。
11.重复对BP和最后一张报表应用以上操作。
12.在报表头部,选中“Double click to edit text”,修改其Source type属性为Report expression。定义此表达式为:
ParamDisplayValue('paramReportType')。
13.运行并测试报表。
工作原理…
在前面博文“条件样式”的示例中,我们已经知道如何定义条件变量,并使用它来定义条件样式。而在此例中,我们探讨了条件变量时如何在conditional block中使用的。
Conditional block是一个很有用的组件,它允许报表在特定条件下显示特定的对象。它在需要隐藏或显示整个对象时很有用。当然此例也可以通过显示或隐藏特定的列来实现。
为条件参数的“Other”选项定义合适的内容是一个很好的做法。除非需求明确定义了“Other”选项为空,否则最好不要这么做。
报表块的话,我觉得一些报表软件比如FineReport会比较好用