Comparer 2 listes basées sur l'ID et dates

Tagged: ,

  • Comparer 2 listes basées sur l'ID et dates

    Posté par RANDRIATAHINA sur 22 avril 2024 at 15h53

    Bonjour,

    J’ai deux listes SharePoint que j’utilise pour créer mon application Power Apps de réservation de bureau :

    • Liste de bureaux : ID, Titre, site
    • Liste de réservation : Nom, ID_bureau, Check out from, check out to …

    Dans ma gallerie Power Apps, lors de la séléction de bureau, j’aimerais afficher uniquement les bureaux disponibles en fonction de date et heure séléctionnées.
    Donc j’ai utilisé la formule suivante :

    Filter(
    Sort(
    ListeBureau;
    Titre
    );
    And(
    (ID in ListeReservations.Bureau_Id);
    Not(varStartTime in ListeReservations.’Check Out From ‘);
    Not(varEndTime in ListeReservations.’Check Out To ‘)
    )

    Cela n’a l’air de fonctionner.

    Quelqu’un aurait une idée comment débloquer ?
    Merci.

    Hugo a répondu 7 months ago 2 Membres · 4 Réponses
  • 4 Réponses
  • Hugo

    Member
    23 avril 2024 at 12h56

    Pourrais tu donner plus d’informations sur ton cas.

    à quoi correspond Check out from et check out to ?

    Où récupères-tu varStartTime et varEndTime ?

    Quels sont les types de tes colonnes et de tes variables, date ou datetime?

    Avec les dates il faut souvent faire attention à comparer ce qui est comparable. Tu veux filter sur une date précise ou sur une plage de dates ? (auquel cas il ne faut pas utiliser = mais < ou > .)

    • This reply was modified 7 months ago by  Hugo.
  • RANDRIATAHINA

    Member
    24 avril 2024 at 11h14

    Hello,
    Voici quelques informations sur les colonnes et variables :

    • Le check out from Text ( Texte) : début de réservation ( dd/mm/yyyy hh:mm au format texte) à partir de ma liste SP Réservation (col_Reservations)
    • Le check out To ( Texte) : fin de la réservation (dd/mm/yyyy hh:mm au format texte) à partir de ma liste SP Réservation (col_Reservations)
    • Les variables startTime et endTime proviennent des dropdown par rapport aux heures séléctionnées

    Au final, j’ai utilisé cette formule, ça fonctionne aléatoirement mais ce n’est pas stable :

    <pre class=”language-css”>Filter(
    Sort(
    col_ListeBureau;
    Titre
    );
    Not(
    ID in Filter(col_Reservations;
    DateTimeValue('Check Out From Text') >= startTime && DateTimeValue('Check Out To Text') <= endTime || DateTimeValue('Check Out From Text')<=startTime && DateTimeValue('Check Out To Text')>=endTime || DateTimeValue('Check Out From Text') <= startTime && DateTimeValue('Check Out To Text') < endTime ).Bureau_Id
    )&& Reservable = true && Or(
    ipt_Search.Value in Titre;
    ipt_Search.Value in Site.Value
    )

    )

    • RANDRIATAHINA

      Member
      24 avril 2024 at 11h15

      Hello,
      Voici quelques informations sur les colonnes et variables :

      • Le check out from Text ( Texte) : début de réservation ( dd/mm/yyyy hh:mm au format texte) à partir de ma liste SP Réservation (col_Reservations)
      • Le check out To ( Texte) : fin de la réservation (dd/mm/yyyy hh:mm au format texte) à partir de ma liste SP Réservation (col_Reservations)
      • Les variables startTime (date time au format dd/mm/yyy hh:mm) et endTime (date time au format dd/mm/yyy hh:mm) proviennent des dates et créneaux séléctionnés

      Au final, j’ai utilisé cette formule, ça fonctionne aléatoirement mais ce n’est pas stable :

      <pre class=”language-css”>Filter(
      Sort(
      col_ListeBureau;
      Titre
      );
      Not(
      ID in Filter(col_Reservations;
      DateTimeValue('Check Out From Text') >= startTime && DateTimeValue('Check Out To Text') <= endTime || DateTimeValue('Check Out From Text')<=startTime && DateTimeValue('Check Out To Text')>=endTime || DateTimeValue('Check Out From Text') <= startTime && DateTimeValue('Check Out To Text') < endTime ).Bureau_Id
      )&& Reservable = true && Or(
      ipt_Search.Value in Titre;
      ipt_Search.Value in Site.Value
      )

      )

  • Hugo

    Member
    24 avril 2024 at 13h46

    Merci pour les infos.

    Pourquoi tu places ton Sort( à l’intérieur de ton Filter( ? Tu forces la requête à trier ta table avant de la filtrer. Sort( plutôt après ton Filter(

    Je ne vois pas ce que tu essaies d’accomplir avec tes filtres de plage horaire. Est-ce que tu peux préciser ?

Connectez-vous pour répondre.