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 :

Aide pour remettre de l'ordre


Sujet :

WinDev

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12
    Points : 4
    Points
    4
    Par défaut Aide pour remettre de l'ordre
    Bonjour à tous

    Débutant.

    J'ai une Feuille avec une Table 4 colonnes - 4 Boutons "Nouveau" "Modifier" "Valider" "Annuler" "Supprimer"

    Code "Nouveau"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    HRAZ(Prescripteurs)
    HAjoute(Prescripteurs)
    Code "Modifier"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SI TableSelect(TABLE_DonnéesPrescripteurs)=-1 ALORS RETOUR
    TableAffiche(TABLE_DonnéesPrescripteurs, taCourantEnreg)
    Code "Annuler"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TABLE_DonnéesPrescripteurs..Etat=AffichageSeulement
    Code "Supprimer"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TableSupprime(TABLE_DonnéesPrescripteurs)
    TableAffiche(TABLE_DonnéesPrescripteurs, taCourantEnreg)
    ExécuteTraitement(TABLE_DonnéesPrescripteurs, trtSélection)
    Code "Valider"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    EcranVersFichier(FEN_Prescripteurs)
     
    SI Prescripteurs..NouvelEnregistrement=Vrai ALORS	
    	HAjoute(Prescripteurs)
    SINON
    	HModifie(Prescripteurs)
    FIN
     
    TableAffiche(TABLE_DonnéesPrescripteurs, taCourantEnreg)
    A ce niveau, le seul problème est : Quand je clic sur "Ajouter" puis "Annuler" et à nouveau "Ajouter", cela me créé bien mon enregistrement mais également une ligne vide dans ma table.

    Puis j'aimerais contrôler la saisie de mes 3 Combos "Ville" "Centre" "Service"
    J'ai donc, avec bien du mal créé 2 procédures locales
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ////////////////RECHERCHE SI TOUS LES COMBO SONT REMPLIS///////////////////////////////////////////////
    SI COMBO_VillePrescripteur="" OU COMBO_CentrePrescripteur="" OU COMBO_ServicePrescripteur=""	 ALORS
    	Info("Il faut remplir tous les champs ! - Annulation de la procédure")
     
    	TableAffiche(TABLE_DonnéesPrescripteurs, taCourantEnreg)
    	TABLE_DonnéesPrescripteurs..Etat=AffichageSeulement
    	RETOUR
    FIN
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //////////////RECHERCHE DE DOUBLONS/////////////////////////////////////////////////////
    TABLE_DonnéesPrescripteurs..RubriqueParcourue = Prescripteurs.CléCompPrescripteur..Nom
     
    HLitRecherchePremier(Prescripteurs, TABLE_DonnéesPrescripteurs..RubriqueParcourue, [COMBO_VillePrescripteur,COMBO_CentrePrescripteur,COMBO_ServicePrescripteur])
     
    SI HTrouve(Prescripteurs) ALORS
    	Info("Il existe déjà ce trajet !!! ")
    	//TableAffiche(TABLE_DonnéesPrescripteurs,taCourantEnreg)
    	TABLE_DonnéesPrescripteurs..Etat=AffichageSeulement
    	RETOUR
    FIN
    En gros, je n'arrive pas à mettre tout cela dans l'ordre !!!
    Depuis 2 jours, pas moyen d'y arriver

    Merci de votre aide

    David

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Bonjour,

    Concernant votre souci de ligne vide, c'est une mauvaise utilisation de la commande hAjoute():

    Si on suit votre algo :
    - je clic sur "Ajouter"
    --> Ca ajoute une ligne
    - j'annule
    - je clic sur "Ajouter"
    --> Ca ajoute une ligne

    Donc vous voyez bien que le hAjoute(), ajoute une ligne comme son nom l'indique. La subtilité que vous avez mal appréhendez, c'est que le hAjoute, valide (enregistre en base) votre saisie.

    Le hAjoute() ne doit pas se trouver dans le bouton "Nouveau"

    Ensuite votre test de champ doit se faire avec un retour de valeur.
    Actuellement vous indiquez à l'utilisateur si sa saisie est correcte ou non, mais à aucun moment vous l'indiquez à votre algorithme.

    Utiliser la syntaxe RENVOYER Vrai ou RENVOYER Faux à la place de votre RETOUR

    Je vous laisse consulter l'exemple de gestion commercial livré avec Windev en standard pour regarder comment l'appli gère l'ajout/suppression/modification de fiche client.

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 054
    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 054
    Points : 9 394
    Points
    9 394
    Par défaut
    Avant de penser à coder, il faut penser à l'interface utilisateur.
    Parce que une interface avec des boutons ajouter/modifier/valider/annuler ... ce n'est pas intuitif.

    Idéalement, je verrais 2 boutons ajouter/modifier
    Quand on clique sur l'un de ces 2 boutons, ça ouvre une autre fenêtre.
    Et là, on a des boutons Valider/Annuler.

    Et le seul bouton où on trouve des fonction hAjoute ou hModifie, c'est le bouton Valider.

    Eventuellement, on peut avoir une seule fenêtre, et jouer en grisant/activant certains boutons... mais c'est pour les développeurs de niveau 2.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Bonsoir Ry_Yo et tbc92

    Dans un premier temps, merci de vos réponses

    tbc92
    Quand on clique sur l'un de ces 2 boutons, ça ouvre une autre fenêtre
    Je suis d'accord et quand je fais avec 2 fenêtres, j'y arrive ! Mais j'aimerais tout sur une seule fenêtre !

    Eventuellement, on peut avoir une seule fenêtre, et jouer en grisant/activant certains boutons
    Je fais déjà comme ça. Quand je clic sur "Nouveau" OU "Modifier" les boutons "Valider" et "Annuler" s'affichent et les boutons "Modifier" et "Nouveau" se cachent. Et vice-versa

    Ry_Yo
    Le hAjoute() ne doit pas se trouver dans le bouton "Nouveau"
    Je pensais bien que le problème venait d’ici. Si j'enlève, plus rien s'affiche pourtant il reste un "hAjoute" dans "Valider" ??

    Je regarde les exemples fournis et les livres mais impossible. Je désespère ! bref, je ne sais plus ou j'en suis et que faire !

    e vous laisse consulter l'exemple de gestion commercial livré avec Windev
    Sur cette démo (et en général les autres) c'est toujours avec une nouvelle fenêtre qui s'ouvre.
    Je vais finir par faire comme ca et arriver au point 1 de tbc92 !

    Nom : Projet.jpg
Affichages : 250
Taille : 146,1 Ko

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 054
    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 054
    Points : 9 394
    Points
    9 394
    Par défaut
    Lis les conseils jusqu'au bout :

    Citation :
    Et le seul bouton où on trouve des fonctions hAjoute ou hModifie, c'est le bouton Valider.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Je pense que c'est bon maintenant. Merci de votre aide

    J'attaque l'incorporation de mes 2 procédures locales

    Déjà sont-elles bonnes ?

    Utiliser la syntaxe RENVOYER Vrai ou RENVOYER Faux à la place de votre RETOUR
    Je ne comprend pas

    Merci

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Je vous conseille de jeter un oeil sur l'exemple de la doc en ligne :

    http://doc.pcsoft.fr/fr-FR/?1510007&name=RENVOYER

    Ce qui vous faut comprendre afin de prendre de bonne base c'est de séparer votre algo en domaine fonctionnelle.

    Pour schématiser de ce que je lis, vous pouvez faire 2 fonctions :
    - ControleSaisieOK() --> renvoi VRAI si la saisie est valide, renvoi FAUX si il manque quelque chose.
    - SauvePrescripteur() --> renvoi VRAI si l'ajout ou modif c'est bien passé, renvoi FAUX si un souci est apparu

    Et votre algo ressemblerait à cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SI ControleSaisieOK() = Faux ALORS
    	Erreur("Merci de renseigner les champs obligatoires")
    SINON
    	SI SauvePrescripteur() = Faux ALORS
    		Erreur("une erreur est survenu lors de l'enregistrement")
    	FIN
    FIN
    Je vous rappel que Windev est orienté code évenementiel, donc je vous laisse imaginer sur quelle action implémenter ce type d'algo.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Bonsoir Ry_Yo et tbc92

    Dans un premier temps, merci de vos réponses et de votre patiente ! Il en faut !

    Bon tout fonctionne bien sauf ma recherche de doublon

    Dans mon bouton "Valider" j'en suis içi

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    /////////////////MISE EN FORME DES CONTROLES//////////////////
    TABLE_DonnéesPrescripteurs..Etat=AffichageSeulement
     
    LIB_Libellé_clignotant..Valeur="Mode VISUALISATION"
     
    BTN_Valider..Visible=Faux
    BTN_Modifier..Visible=Vrai
    BTN_Supprimer..Visible=Vrai
    BTN_Nouveau..Visible=Vrai
    BTN_Annuler..Visible=Faux
     
    ChampGrisé(COMBO_VillePrescripteur)
    ChampGrisé(COMBO_CentrePrescripteur)
    ChampGrisé(COMBO_ServicePrescripteur)
     
    // Lecture des informations saisies
    EcranVersFichier(FEN_Prescripteurs)
     
    /////////////VERIFICATION SI DES COMBOS SONT VIDES//////////////////////////////////////////////////
    SI COMBO_VillePrescripteur="" OU COMBO_CentrePrescripteur="" OU COMBO_ServicePrescripteur=""	ALORS
    Erreur("Merci de renseigner les champs obligatoires !!!")
    TABLE_DonnéesPrescripteurs..Etat=AffichageSeulement
    TableAffiche(TABLE_DonnéesPrescripteurs, taCourantEnreg)
    RETOUR
    FIN
     
    /////////////VERIFICATION DES DOUBLONS - COMBOS / TABLE////////////////////////////////////////////
    // Appel d'une procédure renvoyant vrai ou faux - Traitement différent selon la valeur de retour
     
    SI SauvePrescripteur() = Faux ALORS
    		///Si les conditions sont bonnes (Faux), on ajoute ou on modifie
    		SI Prescripteurs..NouvelEnregistrement=Vrai ALORS
    		HAjoute(Prescripteurs)
    		SINON
    		HModifie(Prescripteurs)
    		FIN
    SINON ///Si les conditions ne sont pas bonnes (Vrai), on vire
    Info("Prescripteur déjà connu dans la base ! ")
    TableAffiche(TABLE_DonnéesPrescripteurs,taCourantEnreg)
    TABLE_DonnéesPrescripteurs..Etat=AffichageSeulement
    FIN	
     
     
    // Sélection de la ligne modifiée ou ajoutée
    TableAffiche(TABLE_DonnéesPrescripteurs, taCourantEnreg)
    et dans ma procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //////////////RECHERCHE DE DOUBLONS/////////////////////////////////////////////////////
     
    PROCEDURE SauvePrescripteur()
     
    TABLE_DonnéesPrescripteurs..RubriqueParcourue = Prescripteurs.CléCompPrescripteur..Nom
    HLitRecherchePremier(Prescripteurs, TABLE_DonnéesPrescripteurs..RubriqueParcourue, [COMBO_VillePrescripteur,COMBO_CentrePrescripteur,COMBO_ServicePrescripteur])
     
    SI HTrouve(Prescripteurs) ALORS
    	RENVOYER Vrai
    SINON
    	RENVOYER Faux
    FIN
    Merci de vos conseils
    David

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Re,
    Une idée ?

Discussions similaires

  1. besoin d'aide pour le composant DBComboBox
    Par jane2002 dans le forum Bases de données
    Réponses: 8
    Dernier message: 28/02/2004, 19h01
  2. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48
  3. Besoin d'aide pour l'I.A. d'un puissance 4
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 17h05
  4. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 21h45

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