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 :

[WD28]Ajouter/Supprimer lignes dans tableau existant word


Sujet :

WinDev

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2023
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [WD28]Ajouter/Supprimer lignes dans tableau existant word
    Bonjour à tous,

    Je fais appel à vous concernant une fonction affichée par PCSOFT sur la vidéo youtube:
    "Champ Traitement de Texte : Saisie et mise en forme" :http://youtube;W6-dwNsUX9k]https://w...channel=PCSOFT
    Une fonction "TrouveTableauProduits()" à 7:16 dans la vidéo permet de pointer sur le tableau dans le fichier word pour ajouter des lignes à celui-ci.

    Neanmoins, je n'ai trouvé aucune documentation sur le sujet et je ne parviens pas à la reproduire. Auriez-vous des indications pour m'y aider ?

    Pour information, j'ai fait appel au support PC SOFT sur ce sujet, mais ils ont respecté l'image très négative que j'avais déjà d'eux avec cette réponse :
    "Bonjour Monsieur BARBIN,

    Malheureusement, comme indiqué dans le mail précédent, nous ne pouvons pas vous transmettre les sources de l'exemple de la vidéo.

    Si vous le désirez, les mises au point nécessaires à votre traitement peuvent être faites par le service Assistance Directe, disponible sur abonnement.
    Retrouvez le détail sur ce service "Assistance Directe" : https://www.pcsoft.fr/ad/index.html
    "

    C'est tout de même un comble de présenter une fonction en vidéo et de ne pas vouloir l'expliquer mais ça témoigne encore une fois de la stratégie commericale de PC SOFT qui est selon moi très très limite et plus que frustrante pour les utilisateurs. Bon j'avoue que c'est la goutte qui fait déborder le vase là

    Je vous remercie par avance des réponses que vous pourrez m'apporter !

    Bonne journée à tous.

  2. #2
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 811
    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 811
    Points : 5 270
    Points
    5 270
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Généralement lorsque l'on désire modifier un document Word, on passe par la classe CWord. Si aucune des méthode ne convient, il faut passer par un objet automation Word.
    Remarque
    Il est possible de modifier classe CWord en ajoutant la fonction ainsi crée en tant que méthode.

    Plus simplement, et une lecture complète de la doc concernant le champ TT le précise, il faut utiliser les fonctions TableauAjoute et TableauSupprime su le docFragment contenant le tableau.
    cf chapitre docInsèreTableau
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2023
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour Voroltinquo,

    Merci pour ton retour.

    En connaissant la position du tableau ou en mettant un Libellé %TABLEAU_DEBUT% avant le tableau on peut affecter le tableau existant à un docFragment et le manipuler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    tabFragments est tableau de docFragments = DocRecherche(TT_MonDocument, "%TABLEAU_DEBUT%")
     
    f est un docFragment(TT_MonDocument.Valeur, tabFragments[1].PositionFin+1, 0)
    soit para <- f.Paragraphe[1]
     
    SI para.Tableau = Null ALORS
    	RETOUR
    FIN
     
    doc		est un Document	<- TT_MonDocument.Valeur
     
    // Ajoute une ligne au tableau
    nIndice	est un entier	= Ajoute(para.Tableau.Lignes)
     
    // Saisie dans la cellule 2,2
    para.Tableau.Cellules[2,2].Contenu.Texte = "Je suis dans la cellule 2,2"
     
    DocRemplace(TT_MonDocument, "%TABLEAU_DEBUT%", "")
    Néanmoins, le seul problème avec cette démarche, c'est que si on veut modifier à nouveau ce tableau lors d'une nouvelle édition en reprenant le word déjà édité et si l'utilisateur à ajouté du texte au dessus du tableau, il nous est impossible de le retrouver. A moins que tu as une solution pour cela ?

    Merci.

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2023
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2023
    Messages : 52
    Points : 105
    Points
    105
    Par défaut
    Bonjour,

    Il y a la possibilité de placer un ou des signets (Bookmarks) dans les cellules du tableau.
    Les signets sont invisibles si leur affichage n'est pas activé.
    Vous pouvez alors placé le curseur à la position du signet, vous serez dans le tableau.
    Evidemment, si l'utilisateur supprime les signets, le tableau ou des lignes du tableau, le code ne trouvera plus les signets et ne trouvera donc plus le tableau.

    Voir cette discussion pour les signets :

    https://www.developpez.net/forums/d2...-publipostage/

    Cdlt

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2023
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2023
    Messages : 52
    Points : 105
    Points
    105
    Par défaut
    Ci-dessous le code pour insérer un tableau avec un signet dans la première cellule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    doc est un Document <- TraitementDeTexte1..Valeur
    DocInsèreTableau(doc, 1, 3, 3)
     
    f est un docFragment(doc, 1, 0)
     
    soit para <- f.Paragraphe[1]
    SI para.Tableau <> Null ALORS
    	doc..Signet["MonSignet"] = f // Insertion du signet dans le tableau
    FIN
    Ci-dessous le code qui va permettre ultérieurement de se repositionner sur le signet (donc sur le tableau) pour manipuler le tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    doc est un Document <- TraitementDeTexte1..Valeur
    fragmentSignet est un docFragment = doc.Signet["MonSignet"] // On se positionne sur le signet
    SI fragmentSignet <> Null ALORS
     
    	soit para <- fragmentSignet.Paragraphe[1]
    	SI para.Tableau = Null ALORS
    		RETOUR
    	FIN
     
    	// Ajoute une ligne au tableau
    	nIndice est un entier = Ajoute(para.Tableau.Lignes)
     
    	// Saisie dans la cellule 2,2
    	para.Tableau.Cellules[2,2].Contenu.Texte = "Je suis dans la cellule 2,2"
     
    	// Supprime la ligne 3
    	Supprime(para.Tableau.Lignes, 3)
     
    SINON
    	Erreur("Signet 'MonSignet' non trouvé dans le document")
    FIN
    La doc pour les signets est ici :

    https://doc.pcsoft.fr/?1410087023

    Cdlt

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2023
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Sujet Résolu
    Bonjour,

    Merci à vous 2, ça répond à ma demande. Sujet résolu ;-)

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/02/2012, 11h18
  2. Ajouter ligne dans tableau / Ajouter checkbox & signet
    Par TIREUR dans le forum VBA Word
    Réponses: 5
    Dernier message: 16/06/2007, 00h45
  3. Réponses: 4
    Dernier message: 14/05/2007, 10h50
  4. ajout ligne dans tableau sous IE
    Par n00noors dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 05/07/2006, 12h55
  5. [vb6] Ajouter une ligne dans un tableau excel
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 13/06/2006, 16h41

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