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 :

Récuperation des enregistrements dans une table multi-sélection [WD14]


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 133
    Points : 38
    Points
    38
    Par défaut Récuperation des enregistrements dans une table multi-sélection
    Bonjour;
    Je suis débutant en windev et j'ai un petit problème avec les tables multisélection.
    je m'explique j'ai une fenetre fen1 contenant un table table1 lié a un fichier facture et un bouton ajouter; en cliquant sur le bouton ajouter une 2eme fenetre fen2 s'ouvre contenant un table multiselection table2 et lié au fichier article.
    ma question est aprés selection de plusieurs articles de la table table2 et en cliquant sur le bouton valider dans le 2eme fenetre fen2 comment récupérer tous les enregistrements selectionné dans la premiere fenetre (exactement dans table1) merci d'avance

  2. #2
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 970
    Points : 766
    Points
    766
    Par défaut
    Bonjour,

    La solution n'est pas très compliquée et existe dans l'aide, mais sur le principe:

    1- Qui dit multi-sélection, dit que vous avez une colonne "Interrupteur"

    Donc, pour chaque ligne de votre table, vous souhaitez effectuer la même opération:

    Personnellement, je n'utilise pas d'analyse, ce qui fait que toutes mes tables sont des tables mémoires, et dans mon cas:

    1- Vous déclarez une variable "i" comme un entier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    POUR i=1 A TableOccurrence(TABLE1)
               // Dans le cas ou une ligne a été sélectionnée
               SI TABLE1.SELECTION[i]=1 ALORS
                     Et là vous insérez votre traitement
    			
                       FIN
    	       FIN
    Bon Dimanche

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 133
    Points : 38
    Points
    38
    Par défaut
    Bonjour,
    merci pour votre réponse.
    le problème est : la récupération se faire a partir de la tale2 qui est dans fen2 (et les enregistrements sélectionné doivent être insèrer dans table1 de fen1) alors qu'en cliquant sur le bouton de validation la fenêtre fen2 est fermé et par conséquent je peux pas accéder à ces objets à partir de fen1 donc le code devra être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    POUR i=1 A TableOccurrence(TABLE2)
               // Dans le cas ou une ligne a été sélectionnée
               SI TABLE2.SELECTION[i]=1 ALORS
                     tableajouteligne(table1,table2.champ1, table2.champ2,....)
     
                       FIN
    	       FIN

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 133
    Points : 38
    Points
    38
    Par défaut Solution
    Bonjour,
    Enfin j'ai trouvé deux solution pour mon problème.
    le traitement se fait dans le code de bouton de validation de fenêtré fen2 (car fen1 et fen2 sont ouverts en parallèle donc on peut accéder aux objets de deux fenêtre sans problème)
    Solution1 :
    Cette solution accède directement au fichier hyperfile et peut ralentir le traitement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //Récupération des enregistrement sélectionné dans une table multi-selection
    // TableSelectOccurrence permet de déterminer le nombre d'enregistrement sélectionné dans table2
    i est un entier
    POUR i=1 _A_ TableSelectOccurrence(TABLE2)
    	//pointer l'enregistrement dans le fichier hyperfile	
    TableSelectVersFichier(TABLE2,i)
    //Ajouter l'enregistrement à partir de fichier hyperfile vers la table mémoire table1
    	TableAjouteLigne(fen1.Table1, fichier.champ1,fichier.champ2,...)
    FIN
    Ferme(fen2)

    Solution2 :
    Cette solution récupère les enregistrements à partir de la table mémoire table2 sans accédé au fichier hyperfile donc elle doit être plus rapide.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // TableSelectOccurrence permet de déterminer le nombre d'enregistrement sélectionné
    i est un entier
    POUR i=1 _A_ TableSelectOccurrence(TABLE2)
    	// TABLE2[TableSelect(TABLE2,i)] permet de pointer l'enregistrement dans la table mémoire
    	TableAjouteLigne(fen1.Table1, TABLE2[TableSelect(TABLE2,i)].COL_champ1,TABLE2[TableSelect(TABLE2,i)].COL_champ2, TABLE2[TableSelect(TABLE2,i)].COL_champ3, .....)
    	FIN
    Ferme(fen2)
    merci

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 14/03/2009, 11h36
  2. Réponses: 2
    Dernier message: 29/10/2008, 15h31
  3. Classer des enregistrements dans une table Access
    Par midasios dans le forum VBA Access
    Réponses: 7
    Dernier message: 20/05/2008, 20h57
  4. Réponses: 12
    Dernier message: 06/08/2007, 07h46
  5. [WD9] Cliquer sur des enregistrements dans une table
    Par oz80 dans le forum WinDev
    Réponses: 2
    Dernier message: 15/12/2005, 20h11

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