PowerApps - 根据DatePicker选择过滤下拉列表

时间:2018-04-24 15:45:48

标签: sharepoint-online powerapps

我正在尝试根据DatePicker字段填充PowerApps中的下拉列表,但是,下拉列表未显示SharePoint中列表中存在的所有值。

列表名称:Fitter List Fitter List中的DateTime字段:AppointmentDate PowerApps中的DatePicker组件设置为ShortDate:DatePicker1 要在下拉列表中显示的字段:标题

首先尝试查询:

区别(过滤(' Fitter List',(AppointmentDate = DatePicker1.SelectedDate)),标题)

返回错误:

Error

然后尝试将要查询的字段和日期选择器字段转换为文本和比较。这将返回日期选择器中的一些选择,但不是全部。

Distinct(Filter('Fitter List', (Text(AppointmentDate,DateTimeFormat.ShortDate) = Text(DatePicker1.SelectedDate))),Title)

然后我根据AppointmentDate创建了另一个计算字段AppointmentDateText,如下所示:

=TEXT(AppointmentDate,"m/d/yyyy")

并将查询更改为:

Distinct(Filter('Fitter List', (AppointmentDateText = Text(DatePicker1.SelectedDate))),Title)

同样,它适用于某些选择但不是全部。背后的想法" m / d / yyyy"由于Date Format格式与DatePicker组件中显示的格式相同。

这些只是尝试的一些查询,它不起作用,没有任何意义。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

正如您所注意到的,目前通过日期过滤SharePoint列表不起作用(由于SharePoint连接器和PowerApps之间不兼容)。您正在使用文本函数的正确轨道,但您应该明确地为计算列和powerapps使用相同的文本表示(我建议使用“yyyy-mm-dd”,这是您的表示可以过滤和排序)。因此,您计算的列将具有以下表达式:

=TEXT([AppointmentDate],"yyyy-mm-dd")

您的过滤器表达式将写为

Distinct(
    Filter(
        'Fitter List',
        AppointmentDateText = Text(DatePicker1.SelectedDate, "yyyy-mm-dd")),
    Title)

或者您也可以绕过计算列并在PowerApps端进行文本转换:

Distinct(
    Filter(
        'Fitter List',
        Text(AppointmentDateText, "yyyy-mm-dd") = Text(DatePicker1.SelectedDate, "yyyy-mm-dd")),
    Title)