IBM Cognos报表工作室:使用IF / CASE当任意错误上的TM1多维数据集(IBM Cog

2019-10-19 03:14发布

我消耗在Report Studio中TM1多维数据集时遇到一些麻烦的IF / CASE表达式。

我“过滤”与包括从“分支”维的元素的元组功能的交叉表。 用户可以通过我已经做了值提示通过这个分支层次结构进行导航。

因此,用户曾要求他们在每一次能看到他们在分支层次结构(即看到从根到当前节点的路径)。

因此,我曾试图弥补其在任何时候都代表了当前节点,而目前二级查询表达式:

[CurrentBranch]:

#prompt('pBranch', 'MUN', '[Cube].[Dimension].[Hierarchy].[Level]->:[TM].[Dim_Branch].[Dim_Branch].[@MEMBER].[49981]')#

[现在的水平]:

ordinal(level([CurrentBranch]))

上述这些问题都按预期工作。 然而,当我尝试使用IF / CASE语句,以显示父母的正确的量,我获得各种随心所欲的错误。 一个例子是一个[FirstParent]表达:

IF ([CurrentLevel] > 1) THEN
    (roleValue('_memberCaption', parent([CurrentBranch])))
ELSE
    ('')

它产生以下错误......

Data size error. The data type is 'cclDTypeExternalBuffer'.

...当[FirstParent]加到一个布局计算

如果我改变表达式(只是为了测试IF语句):

IF (1 > 0) THEN
    (roleValue('_memberCaption', parent([CurrentBranch])))
ELSE
    ('')

示出了同样的错误。 如果我再更改声明

IF (1=0) THEN
    (roleValue('_memberCaption', parent([CurrentBranch])))
ELSE
    ('')

要么

IF (1=1) THEN
    (roleValue('_memberCaption', parent([CurrentBranch])))
ELSE
    ('')

没有显示错误,结果是正确的。

但是,如果我现在改变表达式:

IF ([CurrentLevel]=1) THEN
    (roleValue('_memberCaption', parent([CurrentBranch])))
ELSE
    ('')

......然后同样的错误再次显示。

Data size error. The data type is 'cclDTypeExternalBuffer'.

我试图包裹[CurrentLevel]内,与OLAP工作时,支持各种常见功能(例如ABS()),但没有运气。

任何想法,为什么发生这种情况,如何解决?

这确实达到超出了我的理解。

感谢您的任何输入!

Answer 1:

发现这样的解释,认为“报告表述旨在访问参数和报告会话属性;使用它们来访问查询项目很容易出错。” 报告表达是那么我称之为布局calcualations

http://www-01.ibm.com/support/docview.wss?uid=swg21340596

因此,我打开报告,并直接纳入的数据项。 这样,一切工作按预期。



文章来源: IBM Cognos Report Studio: Arbitrary errors when using IF / CASE on an TM1 cube