IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

[WD9] Faire une fenetre générique de modification


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 67
    Par défaut [WD9] Faire une fenetre générique de modification
    Hello,

    Voilà, j'ai 3 fichiers : clients, fournisseurs, personnel.
    J'ai créé une fenetre me permettant d'ajouter/modifier/supprimer des clients. Très bien, ça marche. Je pourrais recopier le code de ma fenetre et l'appliquer également pour fournisseurs & personnel. J'aurais juste besoin de faire 2 ou 3 copier/coller et modifier ma requete.

    Mais, je voudrais apprendre, développer intelligemment. Je voudrais crééer une fenetre générique. Une fenetre me permettant effectivement d'ajouter/modifier/supprimer, mais qui, en fonction d'un paramètre (qui serait le nom du fichier), s'adapterait "dynamiquement" à ma table.

    Admettons que je clique sur "client", le paramètre "client" serait passé à ma fenêtre, et dynamiquement elle me ressortirait toutes les tables de mon fichier, et m'afficherait automatiquement tous les champs qu'elle contient, avec possibilité d'ajouter/modifier/supprimer leur contenu.
    Et si je clique sur "personnel", idem, elle m'affiche tout automatiquement, avec les boutons s'adaptant (allant tapper dans le bon fichier).

    Et idem pour "Fournisseurs".

    Je voudrais arriver à ce résultat sans avoir à bricoler mes fenetre, n'avoir qu'une fenetre générique qui fasse ça au lieu de 3.

    comment faire svp ?

    merci

  2. #2
    Membre expérimenté Avatar de Gulix
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Par défaut
    Il faudrait regarder du côté de l'indirection, pour transmettre en dynamique le nom de ton fichier source (en chaine de caractères).
    Ensuite, des fonctions d'énumération existent pour récupérer la liste des rubriques d'un fichier. Je ne sais plus comment elles s'appellent, regarde dans l'aide.
    Pour finir, avec cette liste des rubriques, il te reste à générer les champs de ta fenêtre à coups de ChampClone().

    Bonne chance !
    "L'univers... on croit qu'il est infini mais quand on arrive au bout un gorille géant vous balance des tonneaux."
    Phillip J. Fry

    http://www.gulix.fr/

    BlindShark, Logiciel de Blind Test - Pull N' Bounce - Jeu XNA

  3. #3
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 67
    Par défaut
    bon, c'est un début d'indice, merci

    Mais pourrais-tu être plus claire, voire me montrer ça via un petit exemple stp ? (je débute en windev en fait). Merci.

    /edit : En fait j'ai bien compris le principe, mais je bloque sur cette fonction d'énumération des rubriques.. Impossible de la trouver dans l'aide.

    /edit 2 : HListeRubrique, c'était celle là Bon, maintenant il me reste à trouver comment faire pour faire une boucle qui affiche sous forme de champs dynamique les différentes rubriques..

  4. #4
    Membre expérimenté Avatar de Gulix
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Par défaut
    C'est toujours mieux quand on trouve soi-même, et visiblement je t'ai pas trop mal guidé

    Pour les champs dynamiques, tu peux créer un champ texte genre Edt_Source que tu places en dehors de ta fenêtre.

    Une fois ta liste de rubriques récupérée, tu clones ce champ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    tRubriques est un tableau de chaines // Tableau avec tes rubriques (c'est pour l'exemple)
    POUR i=1 A Dimension(tRubriques)
        ChampClone(Edt_Source, "Edt_" + tRubriques[i], x, y)
        {"Edt_" + tRubriques[i], indChamp}..Valeur = {sNomFichier + "." + tRubriques[i], indRubrique}
    FIN
    En nommant ton champ cloné avec le nom de la rubrique, tu peux facilement traiter les modifications. Tu codes l'événement dans le champ Edt_Source, en manipulant le nom du champ (MoiMeme..nom), et tu récupères le nom de la rubrique que tu peux manipuler.
    "L'univers... on croit qu'il est infini mais quand on arrive au bout un gorille géant vous balance des tonneaux."
    Phillip J. Fry

    http://www.gulix.fr/

    BlindShark, Logiciel de Blind Test - Pull N' Bounce - Jeu XNA

  5. #5
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 67
    Par défaut
    Je continue d'essayer, mais je continue de bloquer.. Je lache pas le morceau, je veux comprendre.

    J'ai réussis à sortir une liste de mes champs dans une table, à partir de cette table, je n'arrive toujours pas à générer mes champs :\

    Tes explications sont probablement très bonnes, mais je suis pas encore assez bon pour tout saisir

    /edit : concretement, dans ma fenetre j'ai ceci :

    Déclaration globales de Fen1

    initialisation de Fen1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ListeRubrique est une chaîne
     
    ListeRubrique = HListeRubrique(Table,hLstDétail)
    ListeRubrique contient bien mes différentes rubriques, là on est bon. Là où ça se corce, c'est après.

    A partir de ListeRubrique, je veux générer dynamiquement mes champs correspondant à mes rubriques (Comme ça, je modifie à la volée la totalité du contenu fr mes fichiers en une seule fenêtre).

    Mais j'y arrive toujours pas :'(

  6. #6
    Membre expérimenté Avatar de Gulix
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Par défaut
    Normalement, dans ListeRubrique, tu as Rubrique1+RC+Rubrique2+RC+...

    A coups d'ExtraitChaine, tu boucles sur cette liste en créant les champs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    sChamp = ExtraitChaine(ListeRubrique, RC, rangPremier)
    TANTQUE (sChamp <> EOT)
      ChampClone(sChampSource, "Edt_" + sChamp, x, y)
    FIN
    Faut encore gérer le placement avec x et y, mais l'essentiel est là. Tu auras des éléments appelés Edt_Rubrique1, Edt_Rubrique2 (si ce sont des champs éditables), que tu peux manipuler par indirection dans la boucle ({"Edt_" + sChamp, indChamp}).
    "L'univers... on croit qu'il est infini mais quand on arrive au bout un gorille géant vous balance des tonneaux."
    Phillip J. Fry

    http://www.gulix.fr/

    BlindShark, Logiciel de Blind Test - Pull N' Bounce - Jeu XNA

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WPF] Comment faire une fenetre type explorateur windows (coté listbox)
    Par Zucher dans le forum Windows Presentation Foundation
    Réponses: 11
    Dernier message: 28/01/2008, 16h16
  2. faire une fenetre pour la fermeture de l'appli
    Par kazylax dans le forum VB.NET
    Réponses: 3
    Dernier message: 09/08/2007, 01h22
  3. Réponses: 3
    Dernier message: 08/09/2006, 18h00
  4. faire une Fenetre Transparente
    Par kedare dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 25/05/2006, 19h15
  5. Réponses: 9
    Dernier message: 03/03/2006, 10h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo