QlikView:禁用列表框中的元素重组
我有一个归档的“Day_NAM”(包含一周中的日期名称)和一个字段“Day_Order”(数字字段,给每天一个数字(星期一=1,星期二=2等),以便我可以对日期进行排序)。 我设法按照我想要的方式对列表框中的日期进行排序。但是,当我在列表框中进行选择时,日期会更改其在列表框中的位置。当用户做出选择时,必须做什么才能使列表框中的元素不改变位置QlikView:禁用列表框中的元素重组,qlikview,Qlikview,我有一个归档的“Day_NAM”(包含一周中的日期名称)和一个字段“Day_Order”(数字字段,给每天一个数字(星期一=1,星期二=2等),以便我可以对日期进行排序)。 我设法按照我想要的方式对列表框中的日期进行排序。但是,当我在列表框中进行选择时,日期会更改其在列表框中的位置。当用户做出选择时,必须做什么才能使列表框中的元素不改变位置 链接到QVW文件:在排序选项卡中,如果您有State=“Auto Ascending”,请尝试取消选中该选项并查看是否有帮助。 //Mike它不起作用的原因
链接到QVW文件:在
排序选项卡中,如果您有State=“Auto Ascending”,请尝试取消选中该选项并查看是否有帮助。
//Mike它不起作用的原因是,在初始化部分(脚本开头的变量集语句)中,您没有将日期名称定义为数据包含的日期名称
SET DayNames='Mo;Di;Mi;Do;Fr;Sa;So';
SET LongDayNames='Montag;Dienstag;Mittwoch;Donnerstag;Freitag;Samstag;Sonntag';
要使排序工作正常,您需要使这些值匹配。也就是说,该方法不能100%保证工作,因此您可以通过使用dual()
函数强制它工作(或者如果您不想更改这些默认值,因为它看起来是针对您的区域设置的),该函数为字段中的值指定一个数字,但显示文本。基本上结合了你想做的两个步骤
您的捕获日将如下所示:
dual(CaptureDay,
If(CaptureDay = 'Monday', 1,
If(CaptureDay = 'Tuesday', 2,
If(CaptureDay = 'Wednesday', 3,
If(CaptureDay = 'Thursday', 4,
If(CaptureDay = 'Friday', 5,
If(CaptureDay = 'Saturday', 6,
If(CaptureDay = 'Sunday', 7, 8)
)
)
)
)
)
)) as CaptureDay,
然后,您的排序设置应如下所示:
dual(CaptureDay,
If(CaptureDay = 'Monday', 1,
If(CaptureDay = 'Tuesday', 2,
If(CaptureDay = 'Wednesday', 3,
If(CaptureDay = 'Thursday', 4,
If(CaptureDay = 'Friday', 5,
If(CaptureDay = 'Saturday', 6,
If(CaptureDay = 'Sunday', 7, 8)
)
)
)
)
)
)) as CaptureDay,
不幸的是,情况是一样的。还有其他建议吗?试着按总最小日顺序排序,而不考虑它的选择:在排序中选择:Expression=min({1}日顺序)。愚蠢的事情,如果选中此选项,请确保列表框的大小足以容纳列表中的所有项目,否则将覆盖自动升序选项,并始终将选定的选项移动到top@TheBudac:列表框足够大。我上传了QVW,可以在问题中找到链接。如果你能看一看,我将不胜感激。@mickeger:你也能看一看QVW吗?当我按照你的建议做时,当我点击它们时,元素不会改变位置。但是,星期一到星期天的顺序不正确。请用新文件替换旧文件,我会看看能找到什么