如何在排序之前用条件“ if”对列进行排序?

时间:2019-06-12 14:25:41

标签: powerapps powerapps-formula powerapps-selected-items powerapps-datatable

我想对按日期排序的列表库进行排序:

Native

该代码有效,但我需要仅在列表具有确定值时才发生。

我尝试了以下代码:

struct

但是它不起作用。如何编写此代码?

1 个答案:

答案 0 :(得分:0)

如果我正确理解,如果Tabela4.finalizado为空,则要按计算日期排序。如果不为空,您想发生什么?如果期望的结果是不对结果进行排序,则可以将If表达式放在SortByColumns之外:

If(
    Tabela4.finalizado = "";
    SortByColumns(
        AddColumns(
            Tabela4;
            "CalcDate";
            Max(
                DateValue(Data)+Qtde_dias_para_contato;
                DateValue(Data_cotação)+Qtde_dias_para_contato;
                DateValue(data_contato_1)+Qtde_dias_para_contato;
                DateValue(data_contato_2)+Qtde_dias_para_contato;
                DateValue(data_contato_3)+Qtde_dias_para_contato;
                DateValue(data_contato_4)+Qtde_dias_para_contato;
                DateValue(data_contato_5)+Qtde_dias_para_contato;
                DateValue(data_contato_6)+Qtde_dias_para_contato;
                DateValue(data_contato_7)+Qtde_dias_para_contato;
                DateValue(data_contato_8)+Qtde_dias_para_contato;
                DateValue(data_contato_9)+Qtde_dias_para_contato;
                DateValue(data_contato_10)+Qtde_dias_para_contato;
                DateValue(data_contato_11)+Qtde_dias_para_contato;
                DateValue(data_contato_12)+Qtde_dias_para_contato));
        "CalcDate";
        Ascending);
    Tabela4)

请注意,If条件有些奇怪。 Tabela4是一个表(即包含多个记录/行),因此Tabela4.finalizado不是字符串,而是字符串值表,因此上面的表达式不起作用。

如果您要对具有finalizado =“” 的行按计算的日期排序,而不显示其他行,则可以在对表进行排序之前对其进行过滤:

SortByColumns(
    AddColumns(
        Filter(Tabela4; finalizado = "");
        "CalcDate";
        Max(
            DateValue(Data)+Qtde_dias_para_contato;
            DateValue(Data_cotação)+Qtde_dias_para_contato;
            DateValue(data_contato_1)+Qtde_dias_para_contato;
            DateValue(data_contato_2)+Qtde_dias_para_contato;
            DateValue(data_contato_3)+Qtde_dias_para_contato;
            DateValue(data_contato_4)+Qtde_dias_para_contato;
            DateValue(data_contato_5)+Qtde_dias_para_contato;
            DateValue(data_contato_6)+Qtde_dias_para_contato;
            DateValue(data_contato_7)+Qtde_dias_para_contato;
            DateValue(data_contato_8)+Qtde_dias_para_contato;
            DateValue(data_contato_9)+Qtde_dias_para_contato;
            DateValue(data_contato_10)+Qtde_dias_para_contato;
            DateValue(data_contato_11)+Qtde_dias_para_contato;
            DateValue(data_contato_12)+Qtde_dias_para_contato));
    "CalcDate";
    Ascending)

如果您还有其他需要,请澄清您的问题,我们将为您提供帮助。