Conditional statements 如何使用条件变量在Cognos中打印特定页面

Conditional statements 如何使用条件变量在Cognos中打印特定页面,conditional-statements,cognos,Conditional Statements,Cognos,我有五封信,一份Cognos报告有五页。这些信件是对该公司收到的NSF支票的回应。根据NSF文件中存在的条件,每个字母都是不同的。我需要根据这些条件打印这些信件。例如,如果我的客户从未接受过NSF检查。我想打印一封漂亮的信,第一页。如果客户有其他NSF检查,则第2页第2封信,依此类推。我创建了以下变量- IF [Main].[RETURN_REASON_CD] = 'FINAL' Then '1' Else ( IF [Main].[RETURN_REASON_CD] = 'FIRST' AND

我有五封信,一份Cognos报告有五页。这些信件是对该公司收到的NSF支票的回应。根据NSF文件中存在的条件,每个字母都是不同的。我需要根据这些条件打印这些信件。例如,如果我的客户从未接受过NSF检查。我想打印一封漂亮的信,第一页。如果客户有其他NSF检查,则第2页第2封信,依此类推。我创建了以下变量-

IF [Main].[RETURN_REASON_CD] = 'FINAL' Then '1' Else (
IF [Main].[RETURN_REASON_CD] = 'FIRST' AND [Main].[METHOD_OF_DRAFT_OVR] = 'ACHDA' Then '2' Else (
IF [Main].[RETURN_REASON_CD] = 'FIRST' AND [Main].[METHOD_OF_DRAFT_OVR] <> 'ACHDA' Then '3' Else (
IF [Main].[RETURN_REASON_CD] NOT IN( 'FIRST', 'FINAL') AND [Main].[METHOD_OF_DRAFT_OVR] = 'ACHDA' Then '4' Else  '5')))

我需要在值1,2,3,4,5中指定什么才能正确打印。谢谢

我建议您创建五个布尔变量,然后转到页面资源管理器,单击Report Pages文件夹,它将显示五个页面的列表。单击每个页面并设置渲染变量

当呈现变量的计算结果为TRUE时,将呈现页面。当它是假的,它不会


可能有一种方法可以像您一样使用一个变量来实现这一点,但我现在想不出来。您可能需要查看页面集。或者,您可以将所有页面压缩为一个页面,并使用条件样式隐藏每个页面。

您可以使用带有条件块的单个页面,因此您只需要一个具有五个不同值的字符串变量,而不是五个布尔变量。

创建一个具有类似您的大小写表达式的变量

案例 当Expr 1 然后显示第1页 当Expr 2 然后显示第2页 等 else显示所有页面或您想用else执行的任何操作 结束

您需要确保文字值与变量页面上的输出值完全相同。这很重要

从ReportPage 1开始,切换到structure视图,这样可以轻松导航到page对象。在页面对象中输入后,我相信会有一个呈现变量和/或条件样式,具体取决于您的Cognos版本。如果它是一个渲染变量,它很容易。。。您只需选择您创建的变量,并选择哪些文字值将触发渲染真实条件。因此,如果您的页面位于第1页,那么您将从变量中选择第1页作为true条件,并且仅当该条件为true时才会呈现页面

如果没有渲染变量,则在创建该变量后,必须导航到“变量”窗格,每次选择一个输出值,这将使您进入条件模式更改颜色。当您在“条件探索”中选择了“第1页”时,您将通过“结构视图”导航到第1页,并将visible=property设置为true,然后导航到所有其他页面并将其设置为false。如果需要,您可以将所有页面默认为false最初保存此步骤。。。。您将对所有可能的输出值重复此练习。不会花费很长时间,但它更繁琐,这就是他们创建渲染变量的原因

“条件资源管理器”允许您选择输出值,然后在报告中导航并更改样式可见性属性。。。只有当变量条件发现输出值为true时,才会出现这些样式/可见性属性。它基本上是一个可视的if/case语句