Répondre à: SortByColums sur une colonne Lookup

  • R3dKap

    Membre
    21 avril 2022 à 19h56

    Salut @Karlemagne,

    Voici mes recommandations pour simplifier et optimiser ton application…

    Modèle de données

    La colonne Code vêtements dans Liste types vêtements ne devrait pas être là : le code du vêtement n’est pas propre au type de vêtement mais plutôt au vêtement lui-même qui est dans Liste vêtements. Ou alors cette colonne représente le code du type de vêtement, auquel cas elle devrait alors s’appeler Code type de vêtement. Là c’est toi qui sais… Mais par contre je ne vois pas pourquoi il y aurait aussi une colonne Code vêtement dans Liste vêtements (puisqu’il y a un lien de Liste vêtements vers Liste types vêtements) : je trouve que ça fait doublon. Une donnée n’est censé exister (sauf besoin spécifique) qu’à un seul endroit.

    Tel que tu as conçu ta table Liste vêtements, ta colonne Porteur vêtement ne peut pas être obligatoire puisque le vêtement peut exister sans être attribué à personne. Et cela me fait dire du coup que la colonne Disponible n’a pas vraiment de sens puisqu’il suffit de regarder Porteur vêtement : s’il y a quelqu’un dessus c’est que le vêtement est attribué et il n’est donc pas disponible, et dans le cas contraire il est dispo.

    Il faut bien ficeler ton modèle de données pour te faciliter la vie après quand tu réalises l’application. 😉

    D’ailleurs, autre remarque : plusieurs de tes colonnes devraient être au singulier plutôt qu’au pluriel -> Nom porteur (sans ‘s’) car ce champ porte le nom d’UN porteur ; Code vêtement (sans ‘s’) car il représente le code d’UN vêtement. Etc… 😉

    Concernant les écrans, je les aurais organisé comme détaillé ci-dessous… 🙂

    Accueil

    Un écran Accueil (anciennement sur l’écran Gestion_Liste_porteurs) pour lister tous les porteurs avec le nombre de vêtements pour chacun d’eux. Un bouton ‘engrenage’ pour aller sur l’écran Paramètres (voir plus bas).

    Sur le Items de la galerie tu aurais (tu l’avais déjà fait) :

    SortByColumns(n    'Liste porteurs vêtements';n    "cr1a6_nom_porteurs";n    Ascendingn)

    Pour afficher le nombre de vêtements du porteur, tu y mets un libellé avec la formule suivante :

    CountIf(n        'Liste vêtements';n        'Porteur vêtement'.'Nom porteurs' = ThisItem.'Nom porteurs'n)

    Au clic sur un porteur on arrive sur un écran Attributions (voir plus bas) avec la formule suivante :

    Navigate(n    Attributions;n    ScreenTransition.None;n    {n        locSelectedPorteur: ThisItemn    }n)

    Tu transmets ainsi le porteur sélectionné à l’écran cible dans une variable locSelectedPorteur qui sera locale à l’écran Attributions.

    Astuce : tu pourrais aussi ajouter un composant Toggle Set sur ton écran pour permettre de filtrer la liste avec des valeurs “Tous“, “Avec vêtements“, “Sans vêtements“.

    Paramètres

    Un écran Paramètres (anciennement Accueil) avec les boutons pour gérer les différentes tables de paramétrage (types de vêtements, tailles, types d’accessoires et liste des accessoires)

    Chaque bouton amène sur un écran dédié à chaque table (qui fonctionne toujours de la même façon pour les différentes tables) et qui liste les éléments de la table (voir l’exemple de Types de vêtements plus bas).

    Porteur

    Un écran Porteur (anciennement les groupes Groupe_Ajout_porteur et Groupe_Modif_porteur sur l’écran Gestion_Liste_porteurs) pour créer/éditer un porteur

    Quand on y vient pour modifier un porteur le titre est plutôt Modifier porteur.

    Liste types de vêtements

    Un écran Liste types de vêtements qui liste tous les types de vêtements (et la logique ci-après est la même pour les autres tables : tailles, types d’accessoires, accessoires) avec un bouton ‘+’ en haut à droite pour créer et un bouton ‘<‘ en haut à gauche pour revenir en arrière

    Au clic sur un élément de la galerie on arrive sur un écran Type de vêtement (du même style que l’écran Porteur) où on peut modifier le type de vêtement.

    Et quand on clique sur le ‘+’ en haut à droite on arrive sur le même écran Type de vêtement mais avec le formulaire en mode Création.

    Attributions

    Un écran Attributions qui affiche le porteur concerné ainsi qu’une galerie avec la liste des vêtements du porteur :

    L’icône ‘<‘ te ramène sur l’écran précédent.

    L’icône ‘+’ affiche une popup où tu peux choisir parmi les vêtements disponibles (ceux dont la colonne Porteur vêtement est vide) et valider l’attribution.

    L’icône ‘poubelle’ qui affiche une popup de confirmation et qui, sur validation, supprime l’affectation du vêtement au porteur en remettant simplement à blanc la colonne Porteur vêtement sur la ligne du vêtement concerné dans la table Liste vêtements.

    Cette galerie aurait ceci dans Items :

    Filter(n    'Liste vêtements';n    'Porteur vêtement'.'Nom porteurs' = locSelectedPorteur.'Nom porteurs'n)

    Voilà. Si tu as besoin d’aide n’hésite pas… Ca change un peu par rapport à la direction que tu avais prise, mais c’est ce qui me semble être le plus simple, le plus efficace et le plus intuitif pour tes utilisateurs…

    CommentID=3vp3W5YgmZYCbBe, PostID=hA2JWyBLAAXO4pu