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] Insertion de plusieur lignes dans une rubrique


Sujet :

WinDev

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut [WD9] Insertion de plusieur lignes dans une rubrique
    Bonjour tout le monde,

    Voila je suis entrain de réaliser un état ou il y a tableau dans lequel se situe une colonne (Désignation). Dans cette dernière j'aimerais y insérer plusieurs lignes qui provienne d'une table se situant dans une autre fenêtre.

    Pour effectuer cela, voici le code que j'ai insérer derrière la "RUBRIQUE" de la colonne souhaitée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Indice est un entier = TableOccurrence("Modification acte et_ou produit".Tableau_des_actes_de_l_intervention)
    Compteur est un entier
    POUR Compteur = 1 A Indice
    	TableSelectPlus("Modification acte et_ou produit".Tableau_des_actes_de_l_intervention, Compteur)
    	RUBRIQUE7 = "Modification acte et_ou produit".A_DESIGNACTE
    	Info(RUBRIQUE7)
    FIN
    La boucle se réalise bien le nombre de fois qu'il faut donc il voit bien les différentes désignation mais il m'en affiche qu'une(la dernière a chaque fois) dans la RUBRIQUE de ma colonne.

    Avez-vous une idée, pour qu'il m'affiche toute les désignation dans la colonne??

    Merci d'avance!!

  2. #2
    Membre actif Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Points : 251
    Points
    251
    Par défaut
    Salut,
    désolé mais c'est pas très clair.
    Tu veux ajouter une colonne dans un état, qui reprend la valeur une table d'une autre fenêtre ?

    A+

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Gilles_69
    Je vais essayer d'être plus clair alors.

    J'ai une fenêtre qui est composé de table avec une colonne 'Désignation'(parfois cette colonne peut comporter plusieurs colonne.)
    Et j'ai mon Etat dans lequel j'ai rajouté une rubrique.

    Je souhaiterais savoir s'il est possible de remplir ma rubrique avec les différentes lignes de la table 'Désignation' de ma fenêtre??Si oui, comment??

    Merci d'avance!!

  4. #4
    Membre actif Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Points : 251
    Points
    251
    Par défaut
    Si j'ai bien compris la question, il me semble que tu dois pouvoir utiliser l'automatisme de "Bouton état sur table" (cf Insertion -> Spécial)

    A+

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Gilles_69
    Merci pour ta réponse.

    Effectivement cela me donne ce que je souhaite.

    Mais(et oui toujours un mais!!) est-il possible de faire cette manipulation pour insérer 2 tables dans le même Etat??

    Merci d'avance!!

  6. #6
    Membre actif Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Points : 251
    Points
    251
    Par défaut
    Non, mais par contre c'est facile de détourner le pb. Tu crées une 3è table qui fusionne les 2 autres mais que tu n'affiches pas. Puis tu crées ton "Bouton état sur table" à partir de cette nouvelle table.

    Et hop le tour est joué !!

    A+

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Gilles_69
    Ok mais coment fais-tu pour fusionner les 2 en une??

    Merci d'avance!!

  8. #8
    Membre actif Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Points : 251
    Points
    251
    Par défaut
    Si tes tables ont seulement qqs données communes, tu crées des colonnes supplémentaires (si besoin) et tu remplis ta nouvelle table en fonction de la lecture des 2 autres.
    Si elles ont des données hétérogènes, alors je ne vois pas l'intérêt de les imprimer ensemble.
    Autre cas de figure, lors de l'impression, tu peux aussi ajouter des données en faisant une lecture par query.

    A+

  9. #9
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Gilles_69
    Ok.
    En faite j'ai une table qui correspond aux actes(mains d'oeuvre) avec comme colonne : 'Référence', 'Désignation', 'Temps', 'Prix unitaireHT', 'Remise', 'Code TVA', 'Montant'.
    Et la deuxième table correspond aux produits(articles) avec comme colonne : 'Référence', 'Désignation', 'Quantité', 'Prix unitaireHT', 'Remise', 'Code TVA', 'Montant'.

    Donc à l'origine je voulais les imprimer séparément car sinon, comment seront nous quels sont des actes et quels sont les produits??!! Mais ton idée peut me sauver donc pourquoi pas essayer.

    Que me conseille tu??

    P.S. : Sous quel forme tu peut ajouter les données en faisant une lecture par query??

    Merci d'avance!!

  10. #10
    Membre actif Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Points : 251
    Points
    251
    Par défaut
    Ta table finale pourrait être :
    'Type' => nouvelle colonne = acte ou produit
    'Référence'
    'Désignation'
    'Quantité' (car 'Temps' est une quantité)
    'Prix unitaireHT'
    'Remise'
    'Code TVA'
    'Montant'
    Tu remplis, tu tries tu imprimes et puis voila !

    A+

  11. #11
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à gilles_69
    Comment ça tu tries??

    cordialement.

  12. #12
    Membre actif Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Points : 251
    Points
    251
    Par défaut
    Par acte ou produit par exemple (nouvelle colonne 'Type')

    A+

  13. #13
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Gilles_69
    Ok, je comprend mieu.

    Je sais pas trop comment je peux faire pour fusionner par exemple les références des deux tables. Car ces 2 tables se remplissent par une requêtes.

    Les références des produits se remplissent par le fichier LIGNE_MO_ATELIER.

    Voici ci-dessous, le schéma de la base ainsi que les fenêtres, si tu peux me guider, ca serait cool car j'ai beau chercher, je ne trouve pas.

    Merci d'avance!!

  14. #14
    Membre actif Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Points : 251
    Points
    251
    Par défaut
    En fait c'est bien ce que je pensais.
    Tu veux imprimer une facture qui prend en compte les actes et produits.
    Préparation
    Je reviens donc à ce que je te disais plus haut, tu crées un 3è tableau dans ta fenêtre selon la structure que je t'ai indiquée.
    Tu crées un bouton état sur table sur ton 3è tableau (avec l'impression bien sûr).
    Code
    Tu crées une procédure qui fait une lecture des 2 tableaux et qui remplie ton 3è tableau.
    Lors du lancement de l'impression, avant de lancer l'impression, tu insères ton code de préparation.

    A+

  15. #15
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponses à Gilles_69
    Ok. Vraiment merci pour tout!!

    Merci d'avance!!

  16. #16
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Voila, j'essaye depui tout à l'heure mais je rencontre un problème.

    Pour le moment, je m'occupe juste de faire en sorte d'insérer les données du premier tableau(acte) dans le troisième tableau.

    Voici le code :
    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
    // Initialisation du 3éme tableau
    Indice est un entier = Tableau_des_actes_de_l_intervention..Occurrence
    Compteur est un entier
    POUR Compteur = 1 A Indice
    	TableSelectPlus(Tableau_des_actes_de_l_intervention, Compteur)
    	Remplissage_TableActeProduit()
    FIN
     
     
     
     
    //Code de la procédure
    PROCEDURE Remplissage_TableActeProduit()
    Table_Acte_Produit.Type = "Acte"
    	Table_Acte_Produit.Désignation = Tableau_des_actes_de_l_intervention.A_DESIGNACTE
    	Table_Acte_Produit.Référence = Tableau_des_actes_de_l_intervention.LMA_REFACTE
    	Table_Acte_Produit.Prix_unitaire_HT = Tableau_des_actes_de_l_intervention.Prix_Unitaire_HT
    	Table_Acte_Produit.Quantité_Temps = Tableau_des_actes_de_l_intervention.LMA_NBHUTIL
    	Table_Acte_Produit.Remise = Tableau_des_actes_de_l_intervention.Remise
    	Table_Acte_Produit.Montant = Tableau_des_actes_de_l_intervention.Montant
    	Table_Acte_Produit."Code TVA" = Tableau_des_actes_de_l_intervention.Code_TVA
    TableAjouteLigne(Table_Acte_Produit,Type, Référence, Tableau_des_actes_de_l_intervention.A_DESIGNACTE, Quantité_Temps, Tableau_des_actes_de_l_intervention.Prix_Unitaire_HT, Tableau_des_actes_de_l_intervention.Remise, Tableau_des_actes_de_l_intervention.Montant, "Code TVA")
    Imaginon que dans le premier tableau, on a 2ligne alors dans le troisième j'en ai 3 lignes qui s'affiche (la troisième ligne correspond à la dernière ligne du premier tableau).
    Un exemple ci-joint du résultat que cela me donne.
    Lorsque je fais du pas à pas, rien m'a l'air annormal.

    Merci d'avance!!

  17. #17
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Aprés quelque reflexion sur le problème, j'ai modifié les choses.... et voila ce que j'obtien comme code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // Initialisation du 3éme tableau
    Remplissage_TableActe()
     
     
     
     
    //Code de la procédure
    PROCEDURE Remplissage_TableActe()
    Indice est un entier = Tableau_des_actes_de_l_intervention..Occurrence
    Compteur est un entier
    POUR Compteur = 1 A Indice
    	TableAjouteLigne(Table_Acte_Produit,"Acte", Tableau_des_actes_de_l_intervention.LMA_REFACTE, Tableau_des_actes_de_l_intervention.A_DESIGNACTE, Tableau_des_actes_de_l_intervention.LMA_NBHUTIL, Tableau_des_actes_de_l_intervention.Prix_Unitaire_HT, Tableau_des_actes_de_l_intervention.Remise, Tableau_des_actes_de_l_intervention.Montant, Tableau_des_actes_de_l_intervention.Code_TVA)
    FIN
    et ci-joint le résultat.
    Et donc le problème, c'est que l'on obtient 2 fois le même acte. Avez-vous une idée pourquoi?? Et comment je peux faire, modifier le code pour ne plus avoir ce problème??

    Merci d'avance!!

  18. #18
    Membre actif Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Points : 251
    Points
    251
    Par défaut
    Salut,
    moi j'utilise cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Indice est un entier = Tableau_des_actes_de_l_intervention..Occurrence
    Compteur est un entier
    POUR Compteur=1 _A_ Indice
      TableSelectPlus(Table1,Compteur)
      TableAjoute(Table3,Table1.Col1+TAB+Table2.Col2+...)
    FIN
    nb : lorsqu'il n'y a pas de valeur dans la table cible (Table3 dans l'exemple), il suffit de faire 2 fois le TAB

    A+

  19. #19
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut Réponses à Gilles_69
    Merci pour ton aide.

    Par contre, j'ai un problème avec les tables précédentes.

    En fait, les 2 autres tables se remplissent grâce à des requêtes.(une par table) Lorsque l'on modifie, ou que l'on insére une remise elle s'éface directement. Alors que je souhaiterai qu'elle reste afficher et en + que les modifications apportées a chaque tables s'ajoute dans la troisième table.
    Voici le code des 2 requêtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Requête pour remplir la première table(les actes)
    SELECT LMA_CODEINT, LMA_REFACTE, ACTE.A_DESIGNACT, LMA_NBHUTIL, ACTE.A_TXHACTUEL, ACTE.A_CODTVA FROM LIGNE_MO_ATELIER, ACTE WHERE ACTE.A_REFACT = LIGNE_MO_ATELIER.LMA_REFACTE AND LMA_CODEINT = {pCodeInter}
     
    // Requête pour remplir la deuxième table(les produits)
    SELECT LPA_CODINT, LPA_REFPDT, PRODUIT.P_DESIGNPDT, LPA_QTECONS, PRODUIT.P_PU_HT, PRODUIT.P_CODETVA FROM LIGNE_PRODUIT_ATELIER, PRODUIT WHERE PRODUIT.P_REFPDT = LIGNE_PRODUIT_ATELIER.LPA_REFPDT AND LPA_CODINT = {pCodeInter}
    Voici le code de remplissage de la troisième table :
    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
    //Initialisation de la troisième table(acte et produit)
    Remplissage_TableActe()
    Remplissage_TableProduit()
     
    //Procédure permettant le remplissage de la troisième table
    PROCEDURE Remplissage_TableActe()
    Indice est un entier = Tableau_des_actes_de_l_intervention..Occurrence
    Compteur est un entier
    POUR Compteur = 1 A Indice
    	TableSelectPlus(Tableau_des_actes_de_l_intervention, Compteur)
    	TableAjoute(Table_Acte_Produit,"Acte"+TAB+Tableau_des_actes_de_l_intervention.LMA_REFACTE+TAB+Tableau_des_actes_de_l_intervention.A_DESIGNACTE+TAB+Tableau_des_actes_de_l_intervention.LMA_NBHUTIL+TAB+Tableau_des_actes_de_l_intervention.Prix_Unitaire_HT+TAB+Tableau_des_actes_de_l_intervention.Remise+TAB+Tableau_des_actes_de_l_intervention.Montant+TAB+Tableau_des_actes_de_l_intervention.Code_TVA)
    FIN
     
    PROCEDURE Remplissage_TableProduit()
    Indice est un entier = Table_Req_Produit..Occurrence
    Compteur est un entier
    POUR Compteur = 1 A Indice
    	TableSelectPlus(Table_Req_Produit, Compteur)
    	TableAjoute(Table_Acte_Produit,"Produit"+TAB+Table_Req_Produit.LPA_REFPDT+TAB+Table_Req_Produit.Désignation+TAB+Table_Req_Produit.LPA_QTECONS+TAB+Table_Req_Produit.Prix_Unitaire_HT+TAB+Table_Req_Produit.Remise+TAB+Table_Req_Produit.Montant+TAB+Table_Req_Produit.Code_TVA)
    FIN
    Pour résoudre mon problème, j'ai essayé avec la facon de faire pour remplir la troisièle table mais je ne peux pas vu qu'auparavant ce n'est pas une table mais des fichiers.
    Donc je viens de penser a faire une quatrième tables(qui sera invisible et qui concerne les actes) qui se remplit par la requête et qu'ensuite cette dernière remplit la table des actes(table 1).
    Qu'en pense-tu?? aurais-tu une autre idée??

    Merci d'avance!!

  20. #20
    Membre actif Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Points : 251
    Points
    251
    Par défaut
    Désolé mais je pige pas. Si tu lances le code de remplissage de la 3è table juste après le remplissage des 2 autres par une lecture séquentielle (tableselectplus), il n'y aucune raison pour que tu ne récupères pas les données (ou j'ai pas compris qq chose !)

    A bientôt,

Discussions similaires

  1. [MySQL] Insertion de plusieurs lignes dans une table
    Par BOUWAGGOU dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 04/05/2009, 16h55
  2. [vba-e] insertions de plusieurs cellules dans une
    Par titeZ dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/04/2007, 17h14
  3. Plusieurs lignes dans une seule
    Par rlnd23 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/02/2007, 16h35
  4. Texte sur plusieurs lignes dans une cellule de JTable
    Par JeanECN dans le forum Composants
    Réponses: 3
    Dernier message: 10/04/2006, 17h20

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