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 :

Copier/Coller Ligne de champs table [WD17]


Sujet :

WinDev

  1. #1
    Membre à l'essai Avatar de Bill_Watergate
    Homme Profil pro
    Responsable des études
    Inscrit en
    Août 2017
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2017
    Messages : 52
    Points : 23
    Points
    23
    Par défaut Copier/Coller Ligne de champs table
    Bonjour

    J'ai un champs Table remplie par programmation, je cherche le moyen de faire un bouton pour copier la ligne sélectionnée et un bouton pour coller les éléments dans une ligne sélectionnée mais je ne trouve pas.

    Si je vais un clic droit j'ai bien copier la ligne mais je n'ai pas coller ?

    Merci par avance

  2. #2
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Bonjour,

    Ce n'est pas prévu dans les FAA, il faut coder la fonctionnalité.

  3. #3
    Membre confirmé
    Homme Profil pro
    Admin - Gestion reconverti en informatique
    Inscrit en
    Septembre 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Admin - Gestion reconverti en informatique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 328
    Points : 493
    Points
    493
    Par défaut
    Bonjour,

    Effectivement, par programmation, vous pouvez mémoriser les valeurs, de la ligne à copier, dans des variables.
    Ensuite, les dupliquer dans la ligne à insérer ou à ajouter.
    Quand la table contient plusieurs colonnes, ce n'est pas pratique.

    Je vous propose cette solution.
    Dans la fenêtre, initialiser une variable globale, gnXLigne est un entier

    Créer 2 boutons :

    - Bouton "Mémoriser n° ligne" destination de la copie
    - Bouton "Dupliquer ligne"

    1- par programmation, ajouter (ou insérer une ligne à blanc) dans la table
    2- positionner le bandeau de sélection sur la nouvelle ligne
    3- cliquer sur le bouton "Mémoriser n° ligne"
    4- positionner le bandeau de sélection sur la ligne à dupliquer
    5- cliquer sur le bouton "Dupliquer ligne"
    6- modifier éventuellement, la cellule de la ligne ajoutée (colonne de tri).

    Code bouton "Mémoriser n° ligne"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    gnXLigne=TableSelect(TABLE_Table1)
    Info("Destination de la copie --- ligne n° "+NumériqueVersChaine(gnXLigne))
    Code bouton "Dupliquer ligne"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    POUR i=1 _A_ TableOccurrence(TABLE_Table1,toColonne)
            TABLE_Table1[gnXLigne][i] = TABLE_Table1[TABLE_Table1][i]
    FIN

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    L'idée de midou23175 est intéressante mais j'aurais fais une présentation façon Windows :
    1- Créer une variable globale gnXLigne de type Entier avec pour valeur défaut -1
    2- Créer un menu contextuel qui va être rattaché au champ table, ce menu aura 2 options : copier la ligne, coller
    3- Contenu de l'option copier la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    si Table_MaTable..Occurrence>0 ET Table_MaTable>0 Alors
          gnXLigne =Table_MaTable // Table_MaTable ou TableSelect(Table_MaTable) retourne le même résultat
    Sinon
          gnXLigne=-1
    FIN
    4- Contenu de l'option coller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Si gnXLigne>0 ET Table_MaTable>0 Alors
          Table_MaTable[Table_MaTable]=Table_MaTable[gnXLigne]
    Sinon
          SI gnXLigne=-1 Alors
                Erreur("Vous n'avez pas copié la ligne")
          Sinon
                Erreur("Vous devez sélectionner la ligne à coller")
          Fin
    Fin
    gnXLigne=-1

  5. #5
    Membre confirmé
    Homme Profil pro
    Admin - Gestion reconverti en informatique
    Inscrit en
    Septembre 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Admin - Gestion reconverti en informatique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 328
    Points : 493
    Points
    493
    Par défaut
    Bonjour,

    @Romulus001

    Effectivement, "copier" et "coller" est plus pratique que "mémoriser" et "dupliquer"
    Bien que je savais que TABLE_MaTable[gnXLigne], renvoie toutes les cellules de la ligne,
    mais, je n'ai pas pensé du tout que l'on peut les répercuter en bloc dans la ligne de destination par simple affectation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Table_MaTable[Table_MaTable]=Table_MaTable[gnXLigne]
    chose qui m'a échappé.
    Remarque :
    on peut utiliser directement une variable chaine, sans passer par la variable numéro de ligne

    - option copier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gsXChaine = Table_MaTable[Table_MaTable]
    -option coller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Table_MaTable[Table_MaTable] = gsXChaine
    En tout cas, Merci à vous

  6. #6
    Membre à l'essai Avatar de Bill_Watergate
    Homme Profil pro
    Responsable des études
    Inscrit en
    Août 2017
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2017
    Messages : 52
    Points : 23
    Points
    23
    Par défaut
    Bonjour dans mon cas aucun des deux ne fonctionnent :


    - Pour la proposition de Romulus le "Copier" pas de problème mais le "Coller" j'ai une erreur :

    Erreur à la ligne 2 du traitement Sélection du menu de MENU_SansNom1.OPT_Coller.
    Vous avez appelé l'opérateur [] sur le champ TABLE_PDCLigne.
    L'indice spécifié [278] est invalide.
    Les valeurs valides sont comprises entre 1 et 6 (inclus).

    - Pour la proposition de Midou l'erreur apparaît dès le "Copier" :

    Erreur à la ligne 1 du traitement Sélection du menu de MENU_SansNom1.OPT_Copier.
    Vous avez appelé l'opérateur [] sur le champ TABLE_PDCLigne.
    L'indice spécifié [292] est invalide.
    Les valeurs valides sont comprises entre 1 et 1 (inclus).

  7. #7
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 038
    Points : 9 347
    Points
    9 347
    Par défaut
    Et ce 278 qui apparaît ici , il vient d'où ?

    Il faut
    - Soit que tu donnes les éléments pour qu'on t'aide
    - Soit que tu réfléchisses.


    Windev te donne un indice très utile : il te dit que tu essaies d'accéder à la ligne 278 de ta table (pour lire les données ou pour modifier les données) Et il te dit que l'indice 278 est invalide, parce qu'il n'y a que 6 lignes dans la table. Tu as donc tous les éléments pour avancer.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  8. #8
    Membre confirmé
    Homme Profil pro
    Admin - Gestion reconverti en informatique
    Inscrit en
    Septembre 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Admin - Gestion reconverti en informatique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 328
    Points : 493
    Points
    493
    Par défaut
    Bonjour,

    J'ai fait les tests pour les 2 propositions, il n'y a pas d'erreur, dans le cas d'une table mémoire.
    Par contre, pour la table fichier, il y a erreur.
    Si je me souviens bien, la TABLE_PDCLigne est une table fichier ?

    Le problème pour la table fichier se situe, dans l'indice de la ligne. Donc, il ne faut pas l'utiliser.
    Pour éviter cette erreur, je reprends la proposition de Romulus001, en apportant quelques aménagements.

    soit un menu contextuel, rattaché à la table :
    - Copier la ligne
    - Coller la ligne
    - Supprimer la ligne

    variable globale, gsXLigne est une chaine

    - copier ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SI TABLE_MaTable <> -1 ALORS
         gsXLigne = TABLE_MaTable[TABLE_MaTable]	
    FIN
    - coller ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SI gsXLigne <> "" ALORS
        // pour coller avec insertion d'une nouvelle ligne
        TableInsère(TABLE_MaTable, gsXLigne)
     
        // ou bien pour coller sur une ligne existante déjà 
        TABLE_MaTable[TABLE_MaTable] = gsXLigne
        gsXLigne = ""
    SINON
        Info("Copier d'abord la ligne à dupliquer")
    FIN
    Remarque :
    - le passage par la variable chaine n'est pas indiquée, si la table contient une colonne type image

  9. #9
    Membre à l'essai Avatar de Bill_Watergate
    Homme Profil pro
    Responsable des études
    Inscrit en
    Août 2017
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2017
    Messages : 52
    Points : 23
    Points
    23
    Par défaut
    Bonjour j'ai toujours le même problème :

    Erreur à la ligne 2 du traitement Sélection du menu de MENU_SansNom1.OPT_Copier.
    Vous avez appelé l'opérateur [] sur le champ TABLE_PDCLigne.
    L'indice spécifié [302] est invalide.
    Les valeurs valides sont comprises entre 1 et 10 (inclus).

    Pourtant j'ai :

    Déclarations globales :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gsXLigne est une chaîne
    Code sous MENU_Copier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI TABLE_PDCLigne <> -1 ALORS
    	gsXLigne = TABLE_PDCLigne[TABLE_PDCLigne]	
    FIN
    Code sous MENU_COLLER :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SI gsXLigne <> "" ALORS
    	// pour coller avec insertion d'une nouvelle ligne
    	TableInsère(TABLE_PDCLigne, gsXLigne)
     
    	// ou bien pour coller sur une ligne existante déjà 
    	TABLE_PDCLigne[TABLE_PDCLigne] = gsXLigne
    	gsXLigne = ""
    SINON
    	Info("Copier d'abord la ligne à dupliquer")
    FIN

  10. #10
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 777
    Points : 5 191
    Points
    5 191
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Serait-il possible d'avoir une copie écran stp ?
    Ou au moins une liste des données traitées.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  11. #11
    Membre à l'essai Avatar de Bill_Watergate
    Homme Profil pro
    Responsable des études
    Inscrit en
    Août 2017
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2017
    Messages : 52
    Points : 23
    Points
    23
    Par défaut
    No Problem

    Nom : Table.JPG
Affichages : 2720
Taille : 40,4 Ko

    Nom : Capture.JPG
Affichages : 2753
Taille : 208,4 Ko

  12. #12
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 777
    Points : 5 191
    Points
    5 191
    Billets dans le blog
    1
    Par défaut
    Avec tes données de test, on comprendrait mieux d'où peut venir le problème.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  13. #13
    Membre à l'essai Avatar de Bill_Watergate
    Homme Profil pro
    Responsable des études
    Inscrit en
    Août 2017
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2017
    Messages : 52
    Points : 23
    Points
    23
    Par défaut
    C'est à dire ?

  14. #14
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 777
    Points : 5 191
    Points
    5 191
    Billets dans le blog
    1
    Par défaut
    Les données qui servent à tester ton code.
    Une copie écran de ton champ table rempli avec les données.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  15. #15
    Membre à l'essai Avatar de Bill_Watergate
    Homme Profil pro
    Responsable des études
    Inscrit en
    Août 2017
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2017
    Messages : 52
    Points : 23
    Points
    23
    Par défaut
    Nom : Capture.JPG
Affichages : 2699
Taille : 259,7 Ko

    Mais c'est que vous devenez exigeant en plus

  16. #16
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 777
    Points : 5 191
    Points
    5 191
    Billets dans le blog
    1
    Par défaut
    Donc, je récapitule :
    -Ton champ est rempli par programmation (via TableAjouteLigne) cf post du 27/10 - 0940
    -Lorsque tu veux copier une ligne eg la ligne 1 sur la copie écran ci-dessous, tu as un message d'erreur te précisant que l'index est trop grand
    Nom : 2017-10-31_14h15_42.png
Affichages : 2762
Taille : 192,7 Ko

    Est-ce que ton champ table a des colonnes cachées ?
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  17. #17
    Membre à l'essai Avatar de Bill_Watergate
    Homme Profil pro
    Responsable des études
    Inscrit en
    Août 2017
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2017
    Messages : 52
    Points : 23
    Points
    23
    Par défaut
    Oui plein, une vrai chasse au trésor

  18. #18
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 777
    Points : 5 191
    Points
    5 191
    Billets dans le blog
    1
    Par défaut
    Entre autre IDPDCLigne et Ordre
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  19. #19
    Membre à l'essai Avatar de Bill_Watergate
    Homme Profil pro
    Responsable des études
    Inscrit en
    Août 2017
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2017
    Messages : 52
    Points : 23
    Points
    23
    Par défaut
    Chaque rubrique PDCLigne à sa colonne, dans beaucoup il y a des résultats de calcul de variable qui leurs sont associés.

  20. #20
    Membre à l'essai Avatar de Bill_Watergate
    Homme Profil pro
    Responsable des études
    Inscrit en
    Août 2017
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2017
    Messages : 52
    Points : 23
    Points
    23
    Par défaut
    Rhoooo les fautes désolé, je suis ambidextre, je fais aussi bien des fautes de la main droite comme de la gauche

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. copier une ligne d'une table vers une autre
    Par Adren dans le forum Langage SQL
    Réponses: 5
    Dernier message: 08/08/2006, 12h54
  2. Copier certaines lignes d'une table vers une autre
    Par TNorth dans le forum Requêtes
    Réponses: 8
    Dernier message: 25/07/2006, 15h31
  3. [HTML] Empecher le Copier/Coller dans un champ
    Par seb55555 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 12/01/2006, 18h35
  4. language SQL - Copier une ligne dans autre table
    Par fxd dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/10/2005, 19h16
  5. Copier des lignes d'une table
    Par thomas_strass dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 01/07/2005, 16h42

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