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 de EcranVersFichier à partir des volets d'un Onglet


Sujet :

WinDev

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Windev
    Inscrit en
    Novembre 2018
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Windev

    Informations forums :
    Inscription : Novembre 2018
    Messages : 68
    Points : 0
    Points
    0
    Par défaut Problème de EcranVersFichier à partir des volets d'un Onglet
    Bonjours.
    J'ai un onglet qui contient 5 volets, et chaque volet contient plusieurs champs de saisie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HMofifie()
    EcranVersFichier()
    ne fonctionne pas correctement. Plus le volet est à droite des autres volets la modification devient impossible. Mais ça marche très bien si le volet est à l'extrême droite dans l'onglet.
    Comment faire pour que ça marche même à partir du volet de l'extrême gauche. Merci d'avance

  2. #2
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    Normalement c'est le EcranVersFichier avant le HAjoute , non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    // Clic sur le bouton "Ajouter"
    EcranVersFichier()
    HAjoute(Client)
    SI HErreurDoublon() = Vrai ALORS
    Erreur("Ce numéro existe déjà")
    FIN

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Windev
    Inscrit en
    Novembre 2018
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Windev

    Informations forums :
    Inscription : Novembre 2018
    Messages : 68
    Points : 0
    Points
    0
    Par défaut
    Bonjour.
    Merci pour votre réponse. Je m'explique:
    J'ai déjà une base de données avec des ajouts , envoyés à partir du volet 5 qui est tout à droite des autres volets. (Ça marche correctement )
    Alors si je veux modifier l'une des données de la base à partir d'un volet 1 qui est tout à gauche, la modification ne se fait pas.
    Mais si je déplace le volet 1 tout à droite des autre volets, ça marche.
    Je ne sais pas est ce que c'est normal ou pas?

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    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 053
    Points : 9 393
    Points
    9 393
    Par défaut
    EcranVersFichier() est une fonction sympa, mais c'est un cadeau empoisonné.

    Déjà regardons ce que fait cette fonction EcranVersFichier() dans une fenêtre simple. Disons une fenetre qui affiche n°client + nom client + adresse_client.
    La fonction FichierVersEcran() pourrait parfaitement être remplacée par 3 instructions.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //Code n°1 
    sai_idClient = client.idClient
    sai_nomClient = client.nomClient
    sai_adresseClient = client.adresseClient
    Et la fonction EcranVersFichier() peut être remplacée par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //Code n°2 
    client.idClient = sai_idClient
     client.nomClient = sai_nomClient
     client.adresseClient = sai_adresseClient
    Ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //Code n°3
    Commande.idClient = sai2_idClient
    commande.montant = sai2_montant
    Dans une fenêtre où il y a plusieurs plans, chaque plan initialisé par FichierVersEcran(). Par un coup de chance, l'affichage marche bien. J'ai une vague idée de pourquoi le fichierVersEcran() fonctionne, mais ce n'est pas le débat.
    Quand on appelle EcranversFichier(), si on a dans cette fenetre des champs liés au fichier client, et d'autres champs liés au fichier Commande, Windev ne peut pas savoir s'il doit applique les instructions de Code n°2, ou les instructions de code n°3.

    La solution la plus simple, c'est de ne pas utiliser EcranVersFichier(), mais une série de quelques instructions toutes simples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Commande.idClient = sai2_idClient
    Commande.montant = sai2_montant
    Comme ça, tu contrôles parfaitement ce que tu fais.

    Une autre solution, c'est d'utiliser des fenêtre internes. Dans chaque plan, tu mets une fenêtre interne. En mettant les fonctions EcranVersFichier() dans chaque fenêtre interne, Windev devrait s'en sortir. C'est une piste, mais plus je réfléchis, moins je suis confiant.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Windev
    Inscrit en
    Novembre 2018
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Windev

    Informations forums :
    Inscription : Novembre 2018
    Messages : 68
    Points : 0
    Points
    0
    Par défaut
    Ok merci.
    C'est très logique ce que vous avez écrit
    On peut remplacer le *EcranVersFichier()*par ces codes. Le problème c'est que j'ai une procedure globale qui contient un très long code, et des volets avec énormément de champs de saisie.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 195
    Points : 156
    Points
    156
    Par défaut
    Bonjour

    j'ai eu ce genre de problème avec notre programme qui contient des volets dynamiques.
    On a créé une procédure genre FIversFichier qui liste les champs du volet en cours, et si liaisonFichier du champ est non vide, alors on modifie la rubrique fichier.


    Bon courage

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 83
    Points : 66
    Points
    66
    Par défaut
    Salut Bzik59. Tu seras plus compréhensible en utilisant des figures dans tes explications comme tcb92 le fait
    N'oubliez pas le petit pouce, si mon message vous a été utile.

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/09/2010, 22h33
  2. Réponses: 2
    Dernier message: 30/12/2008, 15h29
  3. Problème de mise à jour des données sur un onglet
    Par PenPen_lepingouin dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/06/2008, 17h49
  4. Problème installation à partir des sources de GTK+
    Par Shugo78 dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 29/08/2007, 15h00
  5. Problème de recherche à partir des dates(VB 6)
    Par Saamdpawendé dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/08/2006, 16h11

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