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 :

problème ajout enregistrement HFSQL sur même fenêtre [WD20]


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut problème ajout enregistrement HFSQL sur même fenêtre
    Bonsoir le forum,

    Je rencontre un soucis ou plutôt un problème de compréhension.Débutant sur Windev, j'ai crée une fenêtre qui me permet d'insérer des nouveaux enregistrements ou modifier ceux-ci dans un fichier HFSQL.
    Fin initialisation de ma fenêtre : fichierversecran()
    un bouton "enregistrer" avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    EcranVersFichier()
    SI dossier_cm..NouvelEnregistrement ALORS
    	HAjoute(dossier_cm)
    SINON
    	HModifie(dossier_cm)
    FIN
    RAZ()
    Celui-ci me permet d'ajouter 1 nouvel enregistrement ou de les modifier si besoin.
    En revanche, je suis bloqué lorsque je veux renseigner un autre nouvel enregistrement?? En fait, il efface le dernier enregistrement et le remplace alors que moi je souhaite un ajout après...
    J'ai pu remarqué que si je ferme et ré ouvre ma fenêtre il n'a pas de problème??
    Je pense que le soucis vient du fait qu'il doit falloir ré initialiser la fenêtre mais là je sèche un peu...
    Si quelqu'un pouvait me donner un petit coup de pouce et m'orienter ça serait super sympa ^^

    Merci d'avance pour vos réponses.

  2. #2
    Membre confirmé
    Homme Profil pro
    Admin - Gestion reconverti en informatique
    Inscrit en
    Septembre 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Admin - Gestion reconverti en informatique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 328
    Points : 493
    Points
    493
    Par défaut
    Normalement l'utilisateur sait bien s'il est dans le cas d'un nouvel enregistrement ou d'une modification
    et par conséquent ajouter ou modifier l'enregistrement. Ceci, sans passer le test SI dossier_cm..nouvelEnregistrement.

    Maintenant, pour différencier le cas ajout ou modif et vous passez toujours par le test,
    sachez que NouvelEnregistrement a un lien avec HRAZ()

  3. #3
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    En fait, il existe une autre fenêtre contenant une table de tous mes enregistrements. C'est à partir de là que l'utilisateur sélectionne un enregistrement pour le modifier (via bouton modifier) ou ajouter enregistrement(via bouton nouveau).
    Ce que je cherche à faire et que par exemple lorsque l'utilisateur choisit "nouveau" la fenêtre s'ouvre, il saisit les informations et enregistre. Mais il faudrait que sans changer ou fermer la fenêtre il puisse en ajouter d'autres.
    Or dans mon cas, cela ne fonctionne pas. a chaque nouvel enregistrement le dernier du fichier et remplacé, l'ajout ne vient pas s'enregistrer après...

  4. #4
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    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 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Dans un premier temps
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SI dossier_cm..NouvelEnregistrement ALORS
    HAjoute(dossier_cm)
    SINON
    HModifie(dossier_cm)
    FIN
    Peut être remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HEnregistre(dossier_cm)
    Dans un deuxième temps le RAZ() à l'issue du code ne fait qu'effacer les valeurs présentes dans les champ, en restant sur le même enregistrement, un HRAZ serait plus approprié
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  5. #5
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    Bonsoir,

    Ok je note pour le remplacement du code^Merci
    Oui c'est exactement cela, le RAZ() de la fin ne fait que vider les champs de saisies!!? Mais comment faire pour pouvoir réaliser un nouvel enregistrement en restant sur la fenêtre??

  6. #6
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    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 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    oops percussion de message pendant une modif
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  7. #7
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    J'ai pu constater qu'en fermant la fenêtre et la ré ouvrir ensuite le problème est résolu. Cependant, si l'utilisateur doit ajouter plusieurs dizaines d'enregistrement cette méthode n'est pas optimale ^^

  8. #8
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    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 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    HRAZ(dossier_cm)
    FichierVersEcran()
    Correspond parfaitement à ce que tu désires
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  9. #9
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    Ok pour le code!! effectivement à présent cela fonctionne mais.... plus possible de faire un modifier depuis cette fenêtre!?!? Existe-il une parade?
    Ou suis-je obligé de créer une fenêtre pour le bouton nouveau avec le code en question et une autre fenêtre pour le bouton modifier avec mon code initial??

  10. #10
    Membre actif
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Mai 2015
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur COBOL

    Informations forums :
    Inscription : Mai 2015
    Messages : 138
    Points : 270
    Points
    270
    Par défaut
    Citation Envoyé par samsam007 Voir le message
    Ok pour le code!! effectivement à présent cela fonctionne mais.... plus possible de faire un modifier depuis cette fenêtre!?!? Existe-il une parade?
    Ou suis-je obligé de créer une fenêtre pour le bouton nouveau avec le code en question et une autre fenêtre pour le bouton modifier avec mon code initial??
    Bonjour samsam007,

    donc une fenêtre qui contient les enregistrements avec des boutons.

    un bouton ajout
    et
    un bouton modifie

    au moment d'ouvrir tu passe un paramètre

    sur le bouton ajout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ouvre (mafenetre,"cre")
    sur le bouton modifie


    dans la declaration globale de la fenetre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    PROCEDURE mafenetre(modeouverture)
     
     
    SELON modeouverture
    	CAS "cre"
    		HRAZ()
    		RAZ()
     
    	CAS "mod"
    		FichierVersEcran()

    sur le bouton validation de la fenetre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ecranversfichier()
    selon modeouverture
           cas "cre"
                 hajoute(monfichier)
     
           cas "mod"
                 hmodifie(monfichier)
    voila comment je fais pour utiliser une même fenêtre pour ajouter et modifier des enregistrements.
    NB: tapé à la volé (il te faudra t'inspirer et adapter)

    NB2: si tu utilise un paramètre lors de ton ouvre à la première fois WinDev va râler en t'indiquant que tu passe un paramètre mais que ta fenêtre en attends aucun.
    pas grave dès que tu aura entré dans la déclaration globale de la fenêtre le paramètre tout rentreras dans l'ordre.

    NB3: vu que toi tu n'as qu'un bouton enregistrer il te faudra auparavant tester pour savoir si tu passe le paramêtre "mod" ou le paramêtre "cre"

    Voila en espérant que ça te permettras d'avancer.

  11. #11
    Membre confirmé
    Homme Profil pro
    Admin - Gestion reconverti en informatique
    Inscrit en
    Septembre 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Admin - Gestion reconverti en informatique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 328
    Points : 493
    Points
    493
    Par défaut
    Bonjour,

    Tout a dit par rudolfrudolf.
    Mais, ça ne répond pas à l'éventualité, saisir d'autres enregistrement durant la même session.

    Bouton Ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Ouvre(MaFenetre,"Ajouter")
    Bouton Modifier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Ouvre(MaFenetre,"Modifier")
    Dans code Déclaration globale MaFenetre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PROCEDURE MaFenetre(ModeOuverture)
    Dans code Fin initialisation MaFenetre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SI ModeOuverture = "Ajouter" ALORS
         HRAZ(dossier_cm)
    FIN
    FichierVersEcran()
    Bouton Valider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    EcranVersFichier()
     
    // valable pour ajout et modif
    HEnregistre(dossier_cm)
     
    // passage systématique pour un éventuel nouveau enregistrement
    HRAZ(dossier_cm)
    FichierVersEcran()

  12. #12
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    Bonjour,

    Un grand merci à vous 2 pour vos retours respectifs.
    J'ai mis en place le code de "rudolfrudolf" et il semble que tout fonctionne : je peux ajouter des enregistrements depuis la fenêtre et en rajouter aussi sans écraser le dernier...??
    Pas de soucis également pour la modification. Je regarderai tout ça d'un peu plus près ce week-end mais à première vue on est sur la bonne voie ^^
    En attendant encore un grand merci à vous 2.

  13. #13
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    Re Bonjour à tous,

    J'ai réussi à l'aide de vos différents codes à faire ce que je souhaitais... Un grand merci à tous pour vos réponses.
    Je mets le Post en "RÉSOLU"
    Bonne journée à tous ^^

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

Discussions similaires

  1. Problème ajout Modem USB sur Hyper V
    Par amine.rzig dans le forum Hyper-V
    Réponses: 1
    Dernier message: 16/05/2016, 12h44
  2. Problème ajout d'application sur page défault modifiée.
    Par Okamasu dans le forum SharePoint
    Réponses: 2
    Dernier message: 11/05/2016, 09h53
  3. Ajouter un bouton sur les fenêtres windows
    Par wesley974 dans le forum Windows
    Réponses: 2
    Dernier message: 08/03/2015, 19h40
  4. [Toutes versions] Requête Ajout Enregistrement basé sur un Champ Nombre
    Par javix79 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 16/11/2012, 13h11
  5. Réponses: 8
    Dernier message: 29/08/2008, 14h53

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