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

Étiquetté : ,

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

    Posté par RANDRIATAHINA sur 22 avril 2024 à 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.

    • Cette discussion a été modifiée Il y a 3 semaines par  RANDRIATAHINA.
    Hugo a répondu Il y a 2 semaines, 5 jours 2 Membres · 4 Réponses
  • 4 Réponses
  • Hugo

    Membre
    23 avril 2024 à 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 > .)

    • Cette réponse a été modifiée Il y a 2 semaines, 6 jours par  Hugo.
  • RANDRIATAHINA

    Membre
    24 avril 2024 à 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

      Membre
      24 avril 2024 à 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

    Membre
    24 avril 2024 à 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.