QlikView:禁用列表框中的元素重组

时间:2016-04-04 09:25:13

标签: qlikview

我有一个'Day_NAM'(包含一周中的天数)和一个字段'Day_Order'(数字字段,每天给出一个数字(星期一= 1,星期二= 2等),所以我可以排序那些日子)。 我设法按照我想要的方式对列表框中的日期进行排序。但是,当我在列表框中进行选择时,日期会在列表框中更改其位置。必须做什么才能使用户进行选择时列表框中的元素不会改变位置?

链接到QVW文件:FILE-LINK

2 个答案:

答案 0 :(得分:0)

Sort tab中,如果你有State =" Auto Ascending"尝试取消选中它,看看它是否有帮助。 // Micke

答案 1 :(得分:0)

它不起作用的原因是因为在启动部分(脚本开头的变量集语句)中,您没有将日期名称定义为数据的日期名称

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,

然后您的排序设置应如下所示:

enter image description here