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 :

Modification à partir d'une clé dans une table


Sujet :

WinDev

  1. #1
    Membre averti Avatar de Moez.B
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Mars 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 219
    Points : 370
    Points
    370
    Par défaut Modification à partir d'une clé dans une table
    Bonjour tout le monde ,
    Voilà je suis tout nouveau en Windev et je veux créer mon annuaire d'amis il y a juste un petit probléme quand je veux faire une petite modification .
    J'ai créé un fichier hyperfile amis (id auto , nom , prénom , numéro_de_téléphone) , dans la fenêtre principale j'ai créé une table qui comporte la liste des amis par programmation ( ce que j'ai compris c'est que c'est une table mémoire ) et puis 5 boutons(ajouter , supprimer ,modifier, imprimer, Quitter)

    Le bouton modifier ouvre une fenetre de saisie qui comporte seulement 1 seul champs(rélié au numéro de téléphone ) et 2 boutons valider pour la mise à jour ou bien annuler pour retourner à la fenêtre principale .Mon idée est quand je clique sur une ligne de ma table puis je clique sur ce bouton de modifier je veux changer seulement la valeur du numéro de téléphone de la ligne en cours dans cette table . MAIS , le résultat est autre que ça car j'obtiens toujours la derniére ligne dans ma table qui est modifiée et pas la ligne que j'ai cliqué.Dans la base aussi , je vois que le changement se fait dans le dernier enregistrement

    Voila le code associé au bouton valider dans la fenetre de modification

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    HRecherche(Amis,IDAmis,listeamis.tableamis.clé) 
    SI HTrouve(Amis) ALORS
    	SI numerotel ="0" OU numerotel="" ALORS
    		Info("Entrez le numéro de téléphone") 
    		RETOUR
    	FIN
    	EcranVersFichier(modif,Amis)
    	HModifie(Amis)
    	Info("modification effective")
    	ExécuteTraitement(listeamis,trtPriseFocus)
    	Ferme
    SINON
    	Info("Trés grave erreur")
    FIN
    Pouvez vous en déduire ou est la faute dans ce code ?
    S'il vous aider moi car je suis tout nouveau en Windev et je ne suis que le cours d'autoformation
    Merci d'avance
    "L'homme supérieur est celui qui a une bienveillance égale pour tous, et qui est sans égoïsme et sans partialité." [Confucius]
    "Celui qui n'évolue pas disparaît." [Charles Darwin]
    “Without requirements or design, programming is the art of adding bugs to an empty text file.” [Louis Srygley]

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Je verrais plus quelque chose dans ce genre :


    Soit une fenêtre A qui contient la table des amis avec un bouton modifier.
    Soit une fenêtre B qui permet de modifier l'enregistrement(numéro de téléphone) d'un ami par un bouton valider.


    Fenêtre A :

    Dans le code du clic sur le bouton modifier je ferais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    IDTable est un entier = TableSelect(Table_Ami)
    SI IDTable >0
      Ouvre("Fenetre B" , Table_Ami[IDTable].IDAmi)
    SINON
     Erreur("Aucune ligne sélectionnée")
    FIN
    Fenêtre B :

    Initialisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Procedure Fenetre_B (PIdAmi)
    Code clic sur modifier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SI CS_NumTel<>NULL
      HDesactiveFiltre(Amis)
      HLitRecherche(Amis,IDAmis,PIdAmi,HIdentique)
      Si HTrouve(Ami) 
        Amis.NumTelephone=CS_NumTel;
        HModifie(Amis)
       Info("Contact mis à jour")
      SINON
       Erreur(ErreurInfo())
      FIN
     SINON
     Erreur("Renseignez un numéro de téléphone") 
    FIN

    A quelques éléments prêt on va dire.

    Ca nécessite que dans la description du champs numero de téléphone tu spécifies de renvoyer NULL au cas ou le champs est laissé vide.
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Citation Envoyé par mozmozen
    j'ai créé une table qui comporte la liste des amis par programmation ( ce que j'ai compris c'est que c'est une table mémoire )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EcranVersFichier(modif,Amis)
    Il y a déjà ici une contradiction
    La fonction EcranVersFichier() est utilisée dans les tables fichiers, pas dans les tables mémoires.

    Si je puis me permettre un conseil :
    Il est important de saisir les concepts de développement de WD et la philosophie de travail à adopter. Faute de quoi, vous n'utiliserez jamais toute la puissance de WD

    Par ex. :
    Pour faire un annuaire d'amis, il faut :
    1- créer l'analyse (description du/des fichier(s))
    2- créer une fenêtre principale avec le menu si nécessaire
    3- créer une Table fichier (ou une fenêtre avec Table Fichier si la table n'est pas sur le fenêtre principale)
    4- créer une Fenêtre fiche
    5- créer un État sur Table
    Il n'y a normalement pas une seule ligne de code à taper.

    Bien entendu, rien n'empêche de travailler différemment, mais il me semble que cela ne devrait se faire qu'après avoir bien assimilé WD.

  4. #4
    Membre averti Avatar de Moez.B
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Mars 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 219
    Points : 370
    Points
    370
    Par défaut ça marche enfin
    Salut Hegros et Guardian et meric beaucoup pour les réponse ,
    Bon pour hegros , puisque je suis un peu nouveau sur Windev et déja la version que j'utilise est la version 10 dés le début , donc j'ai copié le code de hegros et ça a bon marché et quand j'ai voulu tester pourquoi mon code s'il me semblait trés cohérant et logique ça na pas fonctionné ,
    Bon , d'est ce que j'ai compris , moi j'ai utilisé la fonction hrecherche qui renvoie seulement selon l'aide Windev oui ou bien non donc elle ne renvoie pas autre chose et c'est pourcela que toujours aprés une modification ça ne fonctionne qu'à la fin du fichier car il ne teste que sur l'exsitance ...
    J'ai chagé seulement dans mon code au lieu de hrecherche par hlitrecherche qui est en plus du oui ou non de la fonction hrecherche raméne toutes les informations de l'enregistrement recherché et ça a bon marché aprés de divers tests ...
    Ma deuxiéme faute c'était surtout par l'attention de Guardian parce en faite Ecranversfichier(amis) est contradictoire à ce que je programme comme table mémoire et donc c'est vrai Hegros je vois que bien sur on doit affecter juste le champs numerotel et on modifie dans notre fichier amis
    Pour Guardian , je vous dis que seulement moi je connais que Windev est tout puissant et que son wlangage minimise presque à 90% du code mais ce que j'ai voulu vous dire Guardian c'est moi j'ai testé le RAD , RID , j'ai fait même la table fichier et ça a marché mais ce que j'ai voulu faire maintenant c'est avancer un peu plus dans le domaine de la programmation à la fois événementielle , orienté objet et des bases de données de Windev ...
    J'avoue que je ne suis pas trés bien adapté à Windev car j'étais sur Oracle , Access , MySql avec Forms, Reports et Vb98 , VB.NET comme interfaceur donc le changement me semble un peu plus radicale que pour toute plateforme de développement ...
    Merci d'avance pour vos réponses et vos suggestions
    J'espére que ce sujet est maintenant abordé( résolu)
    Cordialement
    "L'homme supérieur est celui qui a une bienveillance égale pour tous, et qui est sans égoïsme et sans partialité." [Confucius]
    "Celui qui n'évolue pas disparaît." [Charles Darwin]
    “Without requirements or design, programming is the art of adding bugs to an empty text file.” [Louis Srygley]

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

Discussions similaires

  1. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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