0

我在 Cognos 报告中有五封信(五页)。这些信件是对公司收到的 NSF 检查的回应。根据 NSF 文件中存在的条件,每个字母都不同。我需要根据这些条件打印这些字母。例如——如果我从未有过 NSF 检查的客户。我想打印一封漂亮的信(第 1 页)。如果客户进行过其他 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 中指定什么才能正确打印。谢谢

4

3 回答 3

0

创建一个具有与您类似的 case 表达式的变量...

案例当 Expr 1 然后“显示第 1 页”时,当 Expr 2 然后“显示第 2 页”等等...否则“显示所有页面”或任何你想用你的 else 做的事情结束

您需要确保在变量页面上将文字值完全列为输出值。这个很重要。

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

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

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

于 2013-01-27T19:53:35.087 回答
0

我建议您创建五个布尔变量,然后转到页面资源管理器,单击“报告页面”文件夹,然后会显示您的五个页面的列表。单击每个页面并设置 Render 变量。

当渲染变量评估为 TRUE 时,您的页面将被渲染。当它是假的时,它不会。

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

于 2012-12-05T00:07:54.447 回答
0

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

于 2013-01-27T07:20:49.727 回答