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 :

Table rupture mise à jour [WD23]


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 72
    Points : 40
    Points
    40
    Par défaut Table rupture mise à jour
    bonsoir,
    meilleurs vœux à tous.

    j'ai un souci avec les tables ruptures.
    Dans mon programme je travaille avec des plans. sur le plan 2 j'ai une table mouvements et le plan 3, deux tables ruptures basées sur requêtes.
    lorsque j' ajoute, modifie ou supprime une ligne dans la table mouvements, les 2 autres ne se mettent pas à jour automatiquement.
    si je ferme le programme et le relance, elles sont à jours. j'ai également le même problème pour les graphiques.

    merci pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 129
    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 129
    Points : 9 562
    Points
    9 562
    Par défaut
    Il faut que tu comprennes ce que tu fais !

    C'est à dire, il faut que tu comprennes ce que fait le 'moteur' de ton programme.

    Quand tu crées une table, tu crées un OBJET. Cet objet est programmé pour exécuter certaines actions, un nombre limité d'actions.
    - A l'initialisation de l'OBJET, il interroge la base de donnée, et affiche ce que tu lui as demandé d'afficher.
    - Et c'est tout...
    Le programme n'a donc aucune raison d'actualiser le contenu d'une table, si tu ne le lui demandes pas explicitement.

    Il y a un truc que je ne sais pas :
    Imaginons que ta table de l'onglet 3 contienne 200 lignes. Donc plus que ce qui est affichable dans un écran.
    Dans ton onglet 2 modifie une donnée, mais une donnée correspondant à un enregistrement qui n'est pas visible dans l'écran 3.
    Puis tu vas dans l'onglet 3, et tu fais défiler les données avec l'ascenseur, pour afficher l'enregistrement qui nous intéresse.
    Là, on a 2 options : soit le programme affiche la donnée actualisée, soit il affiche la donnée 'périmée'. Je ne sais pas ce qu'il va faire, et j'imagine qu'en activant telle ou telle option, tu auras un comportement ou bien l'autre.

    Revenons à ton problème.
    Ce que tu veux, c'est que ton programme réexécute le traitement 'Initialisation de la table de l'onglet 3' quand c'est nécessaire.

    Pour ça , on va procéder par étape .
    -Etape 1 , pour tester : tu crées un bouton 'Rafraichir', et dans ce bouton, tu mets le code : ExecuteTraitement(table3, trtInit) (je ne suis pas sur à 100% de la syntaxe, mais regarde l'aide de ExecuteTraitement pour vérifier)
    Tu pourras ainsi tester si le rafraichissement fonctionne.
    -Etape 2 : faire en sorte que ce rafraichissement ne soit pas sur demande de l'utilisateur, mais systématique dès que nécessaire.

    Pour ça, dans la table de l'onglet 2, tu peux copier l'instruction précédente, et faire en sorte qu'elle s'exécute 'A CHAQUE MODIFICATION DU CONTENU DE TABLE2'

    Ce que tu peux faire également, et c'est plus facile, c'est faire en sorte que l'instruction en question s'exécute à chaque fois que l'utilisateur quitte l'onglet 2 et affiche l'onglet3. Dans ce cas pas la peine de faire le rafrichissement à cchaque modification de la table2.
    Tu peux exécuter le code de ton choix à chaque fois que l'utilisateur change d'onglet , et donc en particulier dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    si onglet1=3 alors 
       info ( " on entre dans l'onglet 3 " ) // Je mets cette instruction, pour que tu puisses voir ce qui se passe 
       ExecuteTraitement(table3, trtInit)
    fin
    Regarde l'aide sur la Programmation événementielle , tu vas apprendre des choses utiles.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 72
    Points : 40
    Points
    40
    Par défaut table rupture mise à jour
    bonjour tbc92

    merci pour ta réponse. j'ai essayé les 3 propositions que tu m'as suggérées. rien n'y fait.
    j'ai mis le code en sortie de table2, rien, puis dans le code du bouton qui m'affiche le plan3, rien, puis dans le bouton qui m'affiche la table_rupture catégories, rien.
    j'ai parcouru l'aide pour executetraitement, j'ai mis toutes les possibilités relatives aux tables, sans succès.

    j'ai ma table mouvements sur le plan2, mes tables_Rupture catégories et clients sur le plan3, 1 bouton qui m'affiche le plan3 et 2 autres qui m'affichent ou catégories ou clients.
    mes deux tables rupture sont créées par des requêtes indexées par année et par catégories pour l'une et par année et par clients pour l'autre.
    tout se passe bien sauf cette mise à jour lorsque j'ajoute, modifie ou supprime une ligne de la table mouvements.

    par contre, les tableaux dynamiques, eux, se mettent à jour. ils sont basés directement sur le fichier mouvements.
    les 2 états pour catégories et clients se mettent eux aussi à jour. ils sont basés sur requêtes simples avec fichier catégories et mouvements et pour le second clients et mouvements.

    désolé.

    cordialement

  4. #4
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 881
    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 881
    Points : 5 449
    Points
    5 449
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Pour utiliser trtInit, il faut quelque chose dans le code d'initialisation de ton champ table.
    La programmation ce n'est pas, je teste toute les solutions possibles
    j'ai mis toutes les possibilités relatives aux tables
    et on verra bien si ça fonctionne.
    Tu veux que les changement effectués dans un champ table se répercutent dans un autre champ table.
    Il faut savoir récupérer les paramètre concernés et dire dans l'initialisation de la table qu'ils ont changé, .... sans oublier à l'issue d'afficher la table.
    Dans ton cas, j'ai l'impression que tu oublie le TableAffiche(table3,taRéExécuteRequete) dans ton code de suppression de ligne.
    Avec un trigger après en Ajout, Suppression, Modification, tu n'auras plus à te soucier de ce problème.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 72
    Points : 40
    Points
    40
    Par défaut table rupture mise à jour
    bonjour voroltinquo

    merci pour ton aide. Effectivement j'avais oublié le code que tu m'as soumis.
    je l'ai mis dans le code des trois boutons et cela fonctionne.

    merci beaucoup

    cordialement

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/11/2007, 19h27
  2. Vue multi table et mise à jour
    Par neptune dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/10/2007, 16h41
  3. [SQL] vs [VBA] comparaison de tables et mise à jour
    Par borisa dans le forum VBA Access
    Réponses: 4
    Dernier message: 09/02/2006, 10h15
  4. Duplication de table et mise à jour
    Par cyraile dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/01/2006, 09h53
  5. [MPD] Créé des tables de mise à jour
    Par Oberown dans le forum Schéma
    Réponses: 9
    Dernier message: 16/01/2005, 13h08

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