首页 > 解决方案 > COGNOS:将列与交叉表中的前一列与动态生成列进行比较

问题描述

- 大家好,我需要根据条件更改值的颜色。如果前一列的值低于实际值,则该值应为蓝色,否则该值应为灰色。我正在使用交叉表,并且列是动态生成的。是否有可能在不更改为静态列的情况下做到这一点?

在此处输入图像描述

补充笔记:

如果我使用仅包含一个属性的列,那么它可以工作。但是,如果我的列包含多个属性,则它不起作用。

例如,我想查看过去 12 个月不同部门的销售额。如果该列包含多个属性,则 Cognos 会将当月所有部门的总和与上个月的总和进行比较,并将本月的所有值涂上相同的颜色。

在“添加的图片”中,您可以看到我的查询结果作为交叉表的输出。

添加图片

在我的查询中,我创建了一个数据项“样式”,如果实际月份较大,则显示“a”,如果实际月份较小,则显示“b”。我将此数据项用于条件样式。

提前致谢

标签: reportcognoscognos-10cognos-bi

解决方案


进行 2 个查询并加入他们

第一个查询是您目前拥有的

第二个查询是查询 1 的副本,将用于获取前一个月。查询几乎一样,只是我们添加了一个数据项来连接上个月

这是基于月份的值 +1

New data item: [Prior Month] definition = [Month] +1

接下来,连接(构建第三个查询)基于键值,除了查询 1 中月份的部分是设置为 JOIN 到来自查询 2 的 +1 月(我们称之为前一个月)的新数据项(关系应该类似于 1.1 到 0.1,即 Q1 定义为 1.1,Q2 定义为 0.1)

这第三个查询数据项主要来自查询 1,除了我们希望查询 2 的指标数据代表上个月

现在您可以制作一个简单的条件样式来比较两者 如果前一列的值低于实际值,则该值应为蓝色,否则该值应为灰色

要查看此/和单元测试 制作一个列表并并排查看列表中的指标值和上个月的值。然后尝试条件样式

注意:您可能想要处理年份变化的第 1 个月,有多种方法可以做到这一点。然而,这应该让你开始,如果你不关心第 1 个月,这应该工作。

让我知道事情的后续!

补充笔记:

  • 削减上个月指标。一般来说,我的建议是避免删除东西(使用剪切,而不是删除)。这样您就不会丢失查询中的数据项(导致做额外的工作)。
  • 将交叉表中的一个指标移动到左上角
  • 交叉表交集属性(在行和列之间具有度量/数字的部分)设置条件样式。
  • 接下来,单击月份/期间。查找数据的属性组,设置属性部分(这应该是复选框列表)。选择上个月的指标(现在您可以使用此值,即使它不在交叉表布局中)。

仔细检查是否设置了条件样式。上个月销售的数据项仍在查询 3 中(根据您编辑的顺序,它可能会被意外删除)


推荐阅读