report - COGNOS:将列与交叉表中的前一列与动态生成列进行比较
问题描述
- 大家好,我需要根据条件更改值的颜色。如果前一列的值低于实际值,则该值应为蓝色,否则该值应为灰色。我正在使用交叉表,并且列是动态生成的。是否有可能在不更改为静态列的情况下做到这一点?
补充笔记:
如果我使用仅包含一个属性的列,那么它可以工作。但是,如果我的列包含多个属性,则它不起作用。
例如,我想查看过去 12 个月不同部门的销售额。如果该列包含多个属性,则 Cognos 会将当月所有部门的总和与上个月的总和进行比较,并将本月的所有值涂上相同的颜色。
在“添加的图片”中,您可以看到我的查询结果作为交叉表的输出。
在我的查询中,我创建了一个数据项“样式”,如果实际月份较大,则显示“a”,如果实际月份较小,则显示“b”。我将此数据项用于条件样式。
提前致谢
解决方案
进行 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 中(根据您编辑的顺序,它可能会被意外删除)
推荐阅读
- javascript - 仅使用 lodash 中的一些特定功能,但作为一个整体安装似乎需要大量依赖
- r - “if else”语句在语句中重复第一个值,而不是为每个值计算
- ios - 在 Mac IOS 上出现 Ionic 构建错误
- java - 当双引号出现在键/值中时 JSON 被破坏
- android - 如何从 onMessageArrived 检索 payloadString 到构造函数?
- angular - 在外部 url 上调用组件而不更改该 url
- apache-kafka - 用于事件发布的 Kafka 与 JMS
- java - BaseEvents 子类的 Checkstyle
- amazon-dynamodb - 如何在 AWS DynamoDB 中查找多个项目
- c# - 将 ViewModel 传递给 Web API 控制器