我整日都在努力寻找以下问题的解决方案:
id
其中SortField和sortOrder是如下设置的变量:
SortByColumns(Filter(LogisticsHelpdesk,And(If(Dropdown1.Selected.Value="All",(Status.Value="Open" || Status.Value="Closed"), (Status.Value=Dropdown1.Selected.Value)),StartsWith(Text(ID), SearchBox.Text))),SortField, sortOrder)
变量在三个地方更新,一个地方是“标题”列,另外两个是“人”列。对于“标题”列,以上代码可以正常工作,但对于“人员”列则不起作用。
我发现问题是SortByColumns和Sort函数不知道按哪个属性对Person列进行排序。知道如何动态地将列名和DisplayName属性一起提供给Sort / SortByColumns函数吗?
到目前为止,我已经测试过以列名作为字符串传递DisplayName属性:
UpdateContext({SortOrignatorDescending: !SortOrignatorDescending, SortField: "Originator"});Set(sortOrder, If(SortOrignatorDescending, Descending, Ascending))
并尝试将变量设置为列本身:
UpdateContext({SortAllocatedToDescending: !SortAllocatedToDescending, SortField:"AllocatedTo.DisplayName"});Set(sortOrder, If(SortAllocatedToDescending, Descending, Ascending))
但是在设计器中出现错误,指出其类型不兼容。我认为列不能直接通过变量传递。
也曾尝试将两个函数(Sort和SortByColumns)互换使用,但无济于事。
主要目标是同时对多个列进行排序,过滤和搜索特定的字符串,并易于在公式中添加更多条件/列,而无需多次添加一个和同一条语句。
在此先感谢您提供的帮助。