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 :

création d'une fenêtre Ligine


Sujet :

WinDev

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    avril 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : avril 2012
    Messages : 17
    Points : 5
    Points
    5
    Par défaut création d'une fenêtre Ligine
    bonjour!

    je suis étudiante en programmation, j'ai développé une petite application en langage Windev23, en voulant limiter l'accès au menu par une fenêtre avec login et mot de passe en suivant un tuto sur Youtube, ca marche très bien quand je teste la fenêtre mais le problème c'est quand l'exécutable est généré ca ne marche pas. quelqu'un a une idée?
    merci d'avance pour votre aide. voici le code utilisé
    Code windev : 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
    SI SAI_Login1 = "" ET SAI_password ="" ALORS
    	Info(" Veullez saisir votre nom d'utilisateur et le mot de passe")
    	RepriseSaisie(SAI_Login1)
    SINON
    	SI SAI_Login1<> "" ET SAI_password="" ALORS
    		Info("Merci de saisir votre mot de passe!!")
    		RepriseSaisie(SAI_password)
    	SINON 	
    		SI SAI_Login1="" ET SAI_password <> "" ALORS
    			Info("Veuillez saisir votre nom d'utilisateur")
    			RepriseSaisie(SAI_Login1)
    		SINON
    			HLitRecherche(Administrateur,Login,SAI_Login1)
    			SI HTrouve(Administrateur) ALORS 
    				SI SAI_password = Administrateur.Mot_de_passe ALORS
    					Utilise(FEN_Menu)
    				SINON 
    					Info("Le nom d'utilisateur ou le mot de passe est invalide")
    					SAI_Login1 = "" 
    					 SAI_password = ""
    					 RepriseSaisie(SAI_Login1)
    				FIN
    			FIN
    		FIN
     
    	FIN
    FIN

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    janvier 2009
    Messages
    4 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : janvier 2009
    Messages : 4 599
    Points : 10 903
    Points
    10 903
    Par défaut
    Bonjour,
    Où se trouve ce code ?
    Qu'est-ce que tu entends par "ça ne marche pas" ?

    En attendant, je vois déjà un gros problème dans ton code:
    Pose un point d'arrêt à la première ligne, et dans la fenêtre ente "n'importe quoi" dans les deux champs de saisie.
    Tu devrais rapidement voir ce qui ne va pas.

    C'est peut-être ce que tu cherches, ou pas, mais on ne peut pas savoir avec un simple "ça ne marche pas".

    Tatayo.

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    3 282
    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 : 3 282
    Points : 7 536
    Points
    7 536
    Par défaut
    Il y a des problèmes de logique ( les ET et OU ...) comme signalé par Tatayo.
    Ce serait plus simple de traiter d'abord le login. S'il est vide ... tu mets un warning, et tu quittes la procédure, avec une instruction RETOUR ou RENVOYER
    Puis un peu la même chose avec le password.

    Mais ici, c'est sûrement autre chose.
    C'est un piège courant avec Windev : ça marche en mode test, et pas quand l'exécutable est créé.

    Le truc, c'est que en mode test, le programme va chercher les données dans un certain répertoire.
    Et en mode 'Exécutable', le programme va chercher les données dans un autre répertoire.

    Tu dois pouvoir le vérifier en ajoutant l'instruction info (hnbenr(administrateur)) avant le code que tu montres.
    En mode test, ton programme te dira qu'il y a une ligne (ou plus ?) dans le fichier administrateur.
    Et avec l'executable, cette instruction devrait afficher 0.


    Tu peux déplacer les fichiers ... mais mieux, il faut utiliser les commantes hChangeRep() pour maitriser par toi même cette gestion des répertoires.

    Edit : cf la FAQ : https://wind.developpez.com/faq/?pag...ers-de-donnees
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  4. #4
    Membre expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    juin 2017
    Messages
    1 847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : juin 2017
    Messages : 1 847
    Points : 3 240
    Points
    3 240
    Par défaut
    Bonjour,
    Les tutos vidéo, c'est bien, à condition que la personne qui les réalise soit compétente.
    A priori ce n'est pas le cas, les erreurs ne sont pas gérées.
    Il y a peut être plus simple, mais ça tourne

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    avril 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : avril 2012
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    merci pour vos réponses
    vous pouvez être plus clair tbc92 s'il vous plait

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    avril 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : avril 2012
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    l'instruction m'a affiché 1

  7. #7
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    3 282
    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 : 3 282
    Points : 7 536
    Points
    7 536
    Par défaut
    Là , c'est à toi d'être plus clair.
    L'instruction affiche 1 , en mode test ?
    Est-ce qu'elle affiche la même chose en mode test et en mode 'Exécutable' ?

    Normalement, avec les indications données, tu as dû aller voir cette page de l'aide. Ca t'aide, ou pas ?
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  8. #8
    Membre expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    juin 2017
    Messages
    1 847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : juin 2017
    Messages : 1 847
    Points : 3 240
    Points
    3 240
    Par défaut
    Outre les remarques faites précédemment j'en ajouterais 2
    1-Pourquoi vérifier si les saisies sont vides alors qu'il suffit de cocher la case "saisie obligatoire"
    2-A partir d'un certains nombre d'imbrication (3 ou +) de SI...ALORS...SINON il y a certainement des simplifications possibles. Il y a des méthodes pour gérer les cas complexes (Tables de vérité associées aux maxterms et aux minterms, algorithme de Quine McCluskey, ...)

    Dans ton cas, en supposant que tu veuilles gérer la vérification de saisie "à la main", pourquoi commencer par un cas particulier ? Si le Login ou le mot de passe sont vide on ne trouvera pas de correspondance.
    Il y a peut être plus simple, mais ça tourne

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    avril 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : avril 2012
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Là , c'est à toi d'être plus clair.
    L'instruction affiche 1 , en mode test ?
    Est-ce qu'elle affiche la même chose en mode test et en mode 'Exécutable' ?

    Normalement, avec les indications données, tu as dû aller voir cette page de l'aide. Ca t'aide, ou pas ?
    Bonsoir

    l'instruction affiche 1 en mode test et 0 en mode exécutable

  10. #10
    Membre expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    juin 2017
    Messages
    1 847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : juin 2017
    Messages : 1 847
    Points : 3 240
    Points
    3 240
    Par défaut
    Si en mode exe HNbEnr=0 c'est qu'il n'y as pas d'enregistrement dans la table.
    As tu un HAjoute quelque part dans ton code d'initialisation ?
    Il y a peut être plus simple, mais ça tourne

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    avril 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : avril 2012
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    non

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    janvier 2009
    Messages
    4 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : janvier 2009
    Messages : 4 599
    Points : 10 903
    Points
    10 903
    Par défaut
    Bonjour,
    Que fait la fonction hNbEnr() ? Si elle renvoie 0 ici, qu'est-ce que tu en conclues ?
    Que fait la fonction hAjoute() ? Tu n'as n'en a pas dans ton code, qu'est-ce que tu en conclues ?

    Est-ce que tu as mis un point d'arrêt pour avancer pas à pas dans ton code, histoire de voir ce qu'il se passe ?
    Si tu le fais, tu vas noter qu'un cas que tu n'as pas prévu va arriver. En croisant avec les réponses aux questions précédentes, et aux diverses remarques qui t'ont été faites, tu devrais trouver rapidement ce qui ne va pas.
    Une fois l'origine du "dysfonctionnement" identifié, tu devrais trouver la solution.

    Dans le cas contraire, je t'invite à suivre le cours d'auto-formation, car il semble qu'il te manque des bases concernant Windev, HyperFile et les fonctions associées.

    Tatayo.

  13. #13
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    3 282
    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 : 3 282
    Points : 7 536
    Points
    7 536
    Par défaut
    Faut prendre un peu d'initiatives !

    Je recopie des choses déjà dites :

    en mode test, le programme va chercher les données dans un certain répertoire.
    Et en mode 'Exécutable', le programme va chercher les données dans un autre répertoire.
    .../...
    il faut utiliser les commantes hChangeRep() pour maitriser par toi même cette gestion des répertoires.
    On peut ajouter un autre test pour confirmer tout ça.
    Dans la ligne où tu as mis info( hnbenr(Administrateur) ), tu peux mettre :

    info( hnbenr(Administrateur) , administrateur..repertoire )

    Pareil , j'ai déjà donné le lien vers cette page : propriété répertoire

    Tu peux aussi regarder via l'explorateur de fichiers Windows, tu dois avoir 2 fichiers administrateur.fic, dans 2 répertoires différents. Tu peux regarder leur contenu, et tu peux aussi remarquer que le plus récent a été créé quand tu as utilisé pour la première fois l'exécutable.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

Discussions similaires

  1. [Débutant] Création d'une fenêtre de saisie de données par l'utilisateur
    Par Alucard9800XT dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 13/04/2007, 22h38
  2. [D5] Création d'une fenêtre d'attente
    Par MelkInarian dans le forum Delphi
    Réponses: 11
    Dernier message: 20/03/2007, 15h36
  3. Création d'une fenêtre de chargement
    Par mattyeux dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 11/02/2007, 01h34
  4. création d'une fenêtre d'identification
    Par ghyosmik dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/11/2005, 15h29

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