我一直在尝试在我的图库上添加另一个下拉列表和一个日期选择器过滤器
实现这一目标的最佳方法是什么?
每当我添加票证关闭过滤器时,它都不起作用
这是我的代码
SortByColumns(
Filter(
PortfolioAPP,
userddown.Selected.Value = CollectorName && StartsWith(
TitanCompanyName,
SearchComp_1.Text
) && StartsWith(
TitanCompanyContactName,
SearchContact_1.Text
) && StartsWith(
Title,
SearchTicket.Text
) && StartsWith(
ResolutionType,
ResoTypeDDown_1.Selected.Value
)
),
"TotalDebtGBP",
Ascending
您可以将许多条件传递给 Filter 函数,它将通过从数据源返回满足所有这些条件的项目 (PortfolioApp
( 来工作。例如,您可以将表达式重写为:
SortByColumns(
Filter(
PortfolioAPP,
userddown.Selected.Value = CollectorName,
StartsWith(
TitanCompanyName,
SearchComp_1.Text),
StartsWith(
TitanCompanyContactName,
SearchContact_1.Text),
StartsWith(
Title,
SearchTicket.Text),
StartsWith(
ResolutionType,
ResoTypeDDown_1.Selected.Value)
),
"TotalDebtGBP",
Ascending)
如果要添加另外两个条件(基于下拉列表和日期选取器(,则可以再添加两个表达式:
SortByColumns(
Filter(
PortfolioAPP,
userddown.Selected.Value = CollectorName,
StartsWith(
TitanCompanyName,
SearchComp_1.Text),
StartsWith(
TitanCompanyContactName,
SearchContact_1.Text),
StartsWith(
Title,
SearchTicket.Text),
StartsWith(
ResolutionType,
ResoTypeDDown_1.Selected.Value),
TicketClosedDate = DatePicker1.SelectedDate,
AnotherColumn = YourOtherDropdown.Selected.Value
),
"TotalDebtGBP",
Ascending)
评论后更新:由于数据源是 SharePoint,因此当前似乎存在一个 bug,即基于 SharePoint 列表的日期进行筛选不起作用。我不知道什么时候会解决这个问题,但您可以考虑几种解决方法。
第一个是在 SharePoint 中创建一个计算列,该计算列使用=TEXT(PlacementDate,"yyyy-MM-dd")
等表达式将日期列转换为文本列。然后,您可以将其与日期选择器中的日期进行比较,表达式如下
Filter(PortfolioApp, PlacementDateText = Text(DatePicker1.SelectedDate, "yyyy-mm-dd"))
如果列表没有很多元素(最多 500-2000 行(,这应该有效,因为计算列不支持委派。
但是,您还提到您有>10k 行,因此以前的解决方法不起作用。另一种可能的解决方法是使用另一个表示相同日期值的"常规"文本列。您需要使用某种脚本来回填现有值,然后在每次添加/修改新行时使用流来更新该值。不理想,但至少在修复此错误之前,这将起作用。