【发布时间】:2016-04-06 17:38:47
【问题描述】:
我有一个归档的“Day_NAM”(包含一周中的日子的名称)和一个字段“Day_Order”(数字字段,给每一天一个数字(星期一=1,星期二=2等),所以我可以排序那些日子)。 我设法按照我想要的方式对列表框中的日期进行了排序。但是,当我在列表框中进行选择时,日期会改变它们在列表框中的位置。当用户进行选择时,如何使列表框中的元素不改变位置?
QVW 文件链接:FILE-LINK
【问题讨论】:
标签: qlikview
我有一个归档的“Day_NAM”(包含一周中的日子的名称)和一个字段“Day_Order”(数字字段,给每一天一个数字(星期一=1,星期二=2等),所以我可以排序那些日子)。 我设法按照我想要的方式对列表框中的日期进行了排序。但是,当我在列表框中进行选择时,日期会改变它们在列表框中的位置。当用户进行选择时,如何使列表框中的元素不改变位置?
QVW 文件链接:FILE-LINK
【问题讨论】:
标签: qlikview
在Sort tab 中,如果您有 State = "Auto Ascending",请尝试取消选中它,看看是否有帮助。
//米克
【讨论】:
它不起作用的原因是因为在启动部分(脚本开头的变量集语句)您没有将日期名称定义为数据具有的日期名称
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,
那么您的排序设置应如下所示:
【讨论】: