【问题标题】:how to filter powerapp gallery with textinput, dropdown, and datepicker如何使用文本输入、下拉列表和日期选择器过滤 powerapps 库
【发布时间】:2018-09-26 01:56:53
【问题描述】:

我一直在尝试在我的图库中添加另一个下拉列表和日期选择器过滤器

实现这一目标的最佳方法是什么?

每当我添加票证关闭过滤器时,它都不起作用

这是我的代码

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

【问题讨论】:

    标签: filtering powerapps


    【解决方案1】:

    您可以将许多条件传递给Filter function,它会通过从您的数据源 (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)
    

    cmets 后更新:由于您的数据源是 SharePoint,因此当前似乎存在一个错误,即使用 SharePoint 列表进行基于日期的过滤不起作用。我不知道什么时候会解决这个问题,但您可以考虑一些解决方法。

    第一个是在 SharePoint 中创建一个计算列,将日期列转换为文本列,表达式为 =TEXT(PlacementDate,"yyyy-MM-dd")。然后,您可以将其与日期选择器中的日期进行比较,如

    Filter(PortfolioApp, PlacementDateText = Text(DatePicker1.SelectedDate, "yyyy-mm-dd"))
    

    如果您的列表没有很多元素(最多 500-2000 行),这应该可以工作,因为计算列不支持 delegation

    但是,您还提到您有 >10k 行,因此之前的解决方法将不起作用。另一种可能的解决方法是使用另一个“常规”文本列来表示相同的日期值。您需要使用某种脚本来回填现有值,然后在每次添加/修改新行时使用流来更新该值。不理想,但至少在修复此错误之前会起作用。

    【讨论】:

    • 是的,我已经尝试过了,但是错误是(当我添加日期选择器过滤器时):“请求的操作无效。表达式“(startswith(CollectorName,@email.com')) and(PlacementDate eq 2018-09-11)" 无效。
    • 你使用的是什么类型的数据源?
    • 我使用 SharePoint 作为数据源,行数约为 10k - 20k
    猜你喜欢
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 2015-12-02
    相关资源
    最近更新 更多