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 :

Enregistrer les modifications dans un enregistrement d'une Table affiche


Sujet :

WinDev

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 145
    Par défaut Enregistrer les modifications dans un enregistrement d'une Table affiche
    Bonjours,
    J'ai une fenetre "FEN_Liste_des_Courses" avec une "TABLE_REQ_ArticlesParNom" qui contient une collone "col_Selection" case à cocher
    base sur une requete "REQ_ArticlesParNomFournisseur"
    J'ai plusieurs familles d'articles que j'affiche avec le combo "COMBO_Categorie"
    L'Idée est cocher les Articles à acheter à l'aide de la case à cocher
    Le but étant de pouvoir imprimer ma liste des articles à acheter "etats" basé sur une requete "case coché = vrai " la requéte fonctionne

    mon probléme : je ne parviens pas à enregistrer les modifications Lorque je coche la case l'interupteur case à cocher
    mon fichier "T_Articles" contient :
    IDT_Article ==> Id Automatique
    Nom_Article ==> Texte
    PrixauConditionnement ==> Monétaire
    PrixKgsLitre ==> Monétaire
    IDT_CategorieArticle ==> Numerique
    Selection ==> Interupteur
    IDT_Fournisseurs ==> Numerique

    Comment enregistrer la mosification dans la T_Articles apres modification de la case à cocher
    Windev 28
    Merci de votre Aide
    Cordialement
    Images attachées Images attachées  

  2. #2
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2017
    Messages
    3 003
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2017
    Messages : 3 003
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Une lecture du chapitre "Fonctions de gestion des champs Table" t'aurais appris l'existence d'une fonction TableEnregistre.
    Une autre solution est le HModifie ou le UPDATE lors de l'évènement "A chaque modification de colonne".
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 145
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Bonjour,
    Une lecture du chapitre "Fonctions de gestion des champs Table" t'aurais appris l'existence d'une fonction TableEnregistre.
    Une autre solution est le HModifie ou le UPDATE lors de l'évènement "A chaque modification de colonne".
    Voici le code sur Modification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    nInd est un entier
    POUR nInd = 1 _À_ TableOccurrence(TABLE_REQ_ArticlesParNom)
    	SI COL_Selection[nInd]=Vrai ALORS
    		TableSelectPlus(TABLE_REQ_ArticlesParNom,nInd)
    			HEnregistre(T_Articles)
    	SINON
    		TableSelectMoins(TABLE_REQ_ArticlesParNom,nInd)
    		HEnregistre(T_Articles)
    	FIN
    FIN

  4. #4
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2017
    Messages
    3 003
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2017
    Messages : 3 003
    Billets dans le blog
    1
    Par défaut
    1-Un code, ça se balise.
    2-Pourquoi boucler ?
    3-Pourquoi contrôler la valeur de l'interrupteur.
    4-Tu n'affectes pas cette valeur donc la modification n'aura pas lieu.

    Remarque Attention au HEnregistre, il ne déclenche pas les triggers.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 993
    Par défaut
    Bonjour
    Líer la table a la requete.
    Cela fonctionne chez moi

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 145
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    1-Un code, ça se balise.
    2-Pourquoi boucler ?
    3-Pourquoi contrôler la valeur de l'interrupteur.
    4-Tu n'affectes pas cette valeur donc la modification n'aura pas lieu.

    Remarque Attention au HEnregistre, il ne déclenche pas les triggers.
    je me suis trompé de code voici celui qui se trouve sur la colonne selection après chaque modification il ne fonctionne pas pour autant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    nInd est un entier
    POUR nInd = 1 _À_ TableOccurrence(TABLE_REQ_ArticlesParNom)
    	SI PAS HEnDehors(T_Articles) ALORS
    //		TableSelectPlus(TABLE_REQ_ArticlesParNom,nInd)
    		HModifie(T_Articles,hNumEnrEnCours)
    	SINON
    //		TableSelectMoins(TABLE_REQ_ArticlesParNom,nInd)
    //		HEnregistre(T_Articles)
    	FIN
    FIN

  7. #7
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2017
    Messages
    3 003
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2017
    Messages : 3 003
    Billets dans le blog
    1
    Par défaut
    Balise déjà ton code.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 242
    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 242
    Par défaut
    J'ai modifié ton message, pour ajouter la balise Code ( le bouton # de la barre d'outils). Mais si tu n'es pas capable de le faire toi même, ce n'est pas surprenant que tu n'arrives pas à programmer, même des trucs simples.

    Pour comprendre ce qui se passe dans ton programme, tu peux utiliser la fonction TRACE(). Il y a aussi le mode DEBUG, mais c'est plus compliqué à expliquer.

    Donc tu peux modifier ton code, comme ceci par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    nInd est un entier
    POUR nInd = 1 _À_ TableOccurrence(TABLE_REQ_ArticlesParNom)
            Trace( " Traitement de la ligne ", nInd )
    	SI PAS HEnDehors(T_Articles) ALORS
                    Trace  ( "Appel de Hmodifie") 
    //		TableSelectPlus(TABLE_REQ_ArticlesParNom,nInd)
    		HModifie(T_Articles,hNumEnrEnCours)
    	SINON
    //		TableSelectMoins(TABLE_REQ_ArticlesParNom,nInd)
    //		HEnregistre(T_Articles)
    	FIN
    FIN
    Ca va te permettre de voir ce qui se passe. Peut-être que ton code, il ne s'exécute pas du tout !

    Et quand tu auras compris ce qui se passe, quand tu auras corrigé, il faudra bien sûr enlever cette fonction Trace(). L'utilisation du mode DEBUG est mieux, puisque quand ça marche, tu n'as rien à changer pour avoir la version finale.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

Discussions similaires

  1. Réponses: 10
    Dernier message: 07/07/2015, 19h12
  2. [AC-2003] modifier les données dans le champs d'une table en sql
    Par carlostropico dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 01/12/2009, 17h24
  3. Réponses: 2
    Dernier message: 07/12/2007, 16h20
  4. Rechercher un mot dans les enregistrements d'une table access
    Par codial dans le forum Bases de données
    Réponses: 3
    Dernier message: 08/11/2006, 22h35
  5. Réponses: 11
    Dernier message: 24/08/2006, 12h22

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