用于存储先前的sheetID的变量在Qlikview 12.4中不起作用

时间:2019-12-09 10:04:03

标签: qlikview

我有一个定义如下的变量:

=if(right(GetActiveSheetId(),4)='SH01',
or (right(GetActiveSheetId(),4)='SH02',
or (right(GetActiveSheetId(),4)='SH03',
or (right(GetActiveSheetId(),4)='SH04',
(right(GetActiveSheetId(),4), if(isnull(vPreviousSheetID),'SH01',vPreviousSheetID))

此变量用于存储Previous Sheet ID,它在Qlikview版本12.1上可以正常工作,但是在升级到12.4后,它不能正常工作,它可以存储'SH01'。请指导我如何解决此问题。

1 个答案:

答案 0 :(得分:0)

我认为文本转义处理已更改。我尝试了这一点,当用作休假触发器时有效

=if(right(GetActiveSheetId(),4)='SH01'
or right(GetActiveSheetId(),4)='SH02'
or right(GetActiveSheetId(),4)='SH03'
or right(GetActiveSheetId(),4)='SH04',
right(GetActiveSheetId(),4),
if(isnull('$(vPreviousSheetID)'),'SH01','$(vPreviousSheetID)'))

我也为自己做了这个jsut,以使其更易于管理

在规则中定义一个变量 set vSheetList = "'SH01','SH02','SH03','SH04'";

,然后在每个工作表上使用它,而不是vPreviousSheetID的第一个定义:

=if(match(right(GetActiveSheetId(),4),$(vSheetList)), right(GetActiveSheetId(),4), if(isnull('$(vPreviousSheetID)'),'SH01','$(vPreviousSheetID)'))

然后,每次添加工作表时,只需要将新的工作表数字添加到列表中并将其粘贴到“离开”触发器上