Répondre à: LookUp function basée sur une combobox (multiple choice)

  • R3dKap

    Membre
    18 mars 2022 à 12h24

    Avec plaisir… 😉

    Alors j’ai indenté ton code pour y voir plus clair :

    If(n    FormNewHQ.Mode = FormMode.New,n    Concat(n        Distinct(n            Split(n                Concatenate(n                    Concat(n                        Filter(n                            AddColumns(n                                AccessManagement,n                                "Selectedcountries",n                                If(n                                    IsEmpty(DataCardValue49_1.SelectedItems.Value),n                                    "true",n                                    If(n                                        "yes" in Concat(n                                            ForAll(n                                                DataCardValue49_1.SelectedItems.Value,n                                                If(Value in Country.Value, "yes", "no")n                                            ),n                                            Valuen                                        ),n                                        "true",n                                        "false"n                                    )n                                )n                            ),n                            Selectedcountries = "true"n                        ),n                        AdminEmailAccess,n                        ";"n                    ),n                    ";",n                    Concat(n                        Filter(n                            AddColumns(n                                AccessManagement,n                                "Selectedcountries",n                                If(n                                    IsEmpty(DataCardValue49_1.SelectedItems.Value),n                                    "true",n                                    If(n                                        "yes" in Concat(n                                            ForAll(n                                                DataCardValue49_1.SelectedItems.Value,n                                                If(Value in Country.Value, "yes", "no")n                                            ),n                                            Valuen                                        ),n                                        "true",n                                        "false"n                                    )n                                )n                            ),n                            Selectedcountries = "true"n                        ),n                        HREmailAccess,n                        ";"n                    ),n                    ";",n                    Concat(n                        Filter(n                            AddColumns(n                                AccessManagement,n                                "Selectedcountries",n                                If(n                                    IsEmpty(DataCardValue49_1.SelectedItems.Value),n                                    "true",n                                    If(n                                        "yes" in Concat(n                                            ForAll(n                                                DataCardValue49_1.SelectedItems.Value,n                                                If(Value in Country.Value, "yes", "no")n                                            ),n                                            Valuen                                        ),n                                        "true",n                                        "false"n                                    )n                                )n                            ),n                            Selectedcountries = "true"n                        ),n                        CentralApproverEmailAccess,n                        ";"n                    )n                ),n                ";"n            ),n            Resultn        ),n        Result,n        ";"n    ),n    Parent.Defaultn)

    Bon, le post n’étant pas très large ça n’aide pas non plus mais c’est déjà ça…

    Je vois que tu as 3 blocs parfaitement identiques :

    Filter(n    AddColumns(n        AccessManagement,n        "Selectedcountries",n        If(n            IsEmpty(DataCardValue49_1.SelectedItems.Value),n            "true",n            If(n                "yes" in Concat(n                    ForAll(n                        DataCardValue49_1.SelectedItems.Value,n                        If(Value in Country.Value, "yes", "no")n                    ),n                    Valuen                ),n                "true",n                "false"n            )n        )n    ),n    Selectedcountries = "true"n)

    Pour simplifier la maintenance de ton code, ce que je ferais c’est que je mettrais une galerie vide (supposons qu’elle s’appelle Gallery1), masquée, sur l’écran et j’y mettrais cette formule dans sa propriétés Items.

    Du coup, ta grosse formule devient :

    If(n    FormNewHQ.Mode = FormMode.New,n    Concat(n        Distinct(n            Split(n                Concatenate(n                    Concat(n                        Gallery1.AllItems,n                        AdminEmailAccess,n                        ";"n                    ),n                    ";",n                    Concat(n                        Gallery1.AllItems,n                        HREmailAccess,n                        ";"n                    ),n                    ";",n                    Concat(n                        Gallery1.AllItems,n                        CentralApproverEmailAccess,n                        ";"n                    )n                ),n                ";"n            ),n            Resultn        ),n        Result,n        ";"n    ),n    Parent.Defaultn)

    Ce qui est quand même plus lisible… 😉

    CommentID=ueu6hQtk5XhurdV, PostID=7sLjiaO0S60z9LY