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 Communication entre deux fenêtres [WD22]


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2019
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2019
    Messages : 20
    Points : 13
    Points
    13
    Par défaut Problème de Communication entre deux fenêtres
    Bonjour, Je suis débutant Windev et je suis le guide d'autoformation.
    J'ai un Champ Table par programmation :
    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
     
    donneesTable est une Source de Données
    requeteTable est une chaîne = "SELECT ID_Véhicule, Libelle, Immatriculation, Type, Capacité, Marque, Année, En_fonction, Typedeplaque, Code, Poids_réel FROM Véhicule"
     
    SI HExécuteRequêteSQL(donneesTable,requeteTable) ALORS 
    	HLitPremier(donneesTable)
    	HAjoute(donneesTable)
    	TANTQUE HTrouve(donneesTable)
    			TableAjoute(Fentable_Princip,donneesTable.ID_Véhicule + TAB + donneesTable.code  + TAB + donneesTable.Libelle + TAB + donneesTable.Immatriculation + TAB + donneesTable.Type + TAB + donneesTable.Capacité + TAB + 
    donneesTable.Marque + TAB + donneesTable.Année + TAB + donneesTable.En_fonction + TAB + donneesTable.Typedeplaque + TAB + donneesTable.Poids_Réel  )	//ChampCreer(Fentable_Princip,donneesTable.Libelle)
    		HLitSuivant(donneesTable)
    	FIN	
            EcranVersFichier()
            HAnnuleDéclaration(donneesTable)
    SINON 
    	Erreur()
    FIN
    Jusqu’à la tout vas bien.
    J'ai un bouton "Modifier" Qui m'ouvre une seconde fenêtre dans laquelle je peux remplir des champ texte/cmb qui sont reliés a mon analyse(à différentes rubriques).
    Mon problème c'est que la fenêtre s'ouvre mais, tout les champ textes sont vierges au lieu d'avoir les informations de mes différentes rubriques.
    Le code du Btn_Modifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    donneeModifier est une Source de Données
    requeteModifier est une chaîne = "SELECT ID_Véhicule, Libelle, Immatriculation, Type, Capacité, Marque, Année, En_fonction, Typedeplaque, Code, Poids_réel, Transporteur FROM Véhicule WHERE ID_Véhicule = 1  "
    SI TableSelect(Fentable_Princip) = -1 ALORS RETOUR //Sélectionne une ligne 
    SI HExécuteRequêteSQL(donneeModifier,requeteModifier) ALORS  
    	HLitPremier(donneeModifier,hNumEnrEnCours)//HEnregistre(donneeModifier)
    	SI TableSelect(Fentable_Princip.ID_Véhicule) ALORS  
    		Ouvre(fenFicheXX,"MODIFICATION",donneeModifier.ID_Véhicule)
    	FIN
    SINON
    	Erreur(HErreurInfo())
    FIN
    Voila Merci a ce qui prendront le temp de m'aider :)

  2. #2
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Si tu as bien renseigné tes champs de la deuxième fenêtre, regardes du côté de FichierVersEcran.

    Autrement, pourquoi tu n'utilises pas le RAD automatique?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2019
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2019
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Je n'utilise pas le RAD car je préfère tout faire manuellement pour comprendre le fonctionnement complet.

    Pour ce qu'y est de La Commande FichierversEcran Sa ne marche pas J'ai déjà essayé :/

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 038
    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 038
    Points : 9 347
    Points
    9 347
    Par défaut
    Tu n'utilises pas le RAD, et à mon avis, tu as raison. Le RAD permet de faire très vite une application valable, mais les évolutions ensuite peuvent être très compliquées.
    Du coup, dans ta fenêtre fiche, il n'y a aucune instruction nulle part pour initier l'affichage.

    S tu fais clic-droit sur les différents champ de saisie, et que tu affiches l'onglet 'Liaison', il n'y a aucune liaison, c'est bien ça ?

    Dans le code d'INIT de ta fenêtre, tu dois donc Initialiser tes champs :

    Tu as reçu en paramètre l'identifiant Id_vehicule qui te permet d'aller rechercher l'enregistrement du véhicule à afficher (hLitRecherche Vehicule ,...) , puis tu dois faire SAI_marque = vehicule.marque etc etc.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 162
    Points : 9 112
    Points
    9 112
    Par défaut
    Bravo à toi de ne pas l'utiliser. Le RAD est à proscrire !

    La fonction ecranversfichier() fonctionne très bien. Il faut surtout que les champs de ta fenêtre soient liés aux rubriques concernées (onglet liaison de la description du champ).

    Dans le code de ta fenêtre appelée : tu peux faire qqchose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure mafenappelée (parmId)
    SI hlitrecherchepremier(Véhicule, ID_Véhicule, parmId) ALORS
    SAI_Libelle =Véhicule
    SAI_Immatriculation = Véhicule.Immatriculation
    SAI_Type = Véhicule.Type
    ...
    SINON
    erreur("Véhicule non trouvé !")
    FIN
    Autre méthode : lier les champs avec les rubriques du fichier véhicule et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure mafenappelée (parmId)
    SI hlitrecherchepremier(Véhicule, ID_Véhicule, parmId) ALORS
    fichierversecran()
    SINON
    erreur("Véhicule non trouvé !")
    FIN
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2019
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2019
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Tout d'abord Merci pour vos réponses

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	HLitRecherche(Véhicule,ID_Véhicule,idvehicule)
    		cds_Code=idvehicule
    		cds_Libelle = donneeModifier.Libelle
    		cds_Année=donneeModifier.Année//cds_Année = Véhicule.Année
    		cds_Capacité =donneeModifier.Capacité
    		cds_Immatriculation = donneeModifier.Immatriculation
    		cds_Marque = donneeModifier.Marque
    		cds_Type = donneeModifier.Type
    		Cmb_Transporteur = donneeModifier.Transporteur
    		sel_TypePlaque = donneeModifier.Typedeplaque
    Cela m'affiche bien mes valeurs mais je ne peux pas les modifier or mon Bouton "Modifier" a pour but de modifier ces informations.
    C'est pourquoi j'ai créer une requête SQL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    donneeModifier est une Source de Données
     
    requeteModifier est une chaîne = "SELECT ID_Véhicule, Libelle, Immatriculation, Type, Capacité, Marque, Année, En_fonction, Typedeplaque, Code, Poids_réel, Transporteur FROM Véhicule where ID_Véhicule = "+idvehicule
    Et j'aimerais grâce a cette requête que sa enregistre les informations que je rentre dans mes différents champs

    J’espère avoir été assez clair ^^.

    Si tu fais clic-droit sur les différents champ de saisie, et que tu affiches l'onglet 'Liaison', il n'y a aucune liaison, c'est bien ça ?

    Pour te répondre tout mes champ de saisie ont une liaison

  7. #7
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    Salut Hatcode.

    reprenons depuis le début. Pour charger les valeurs dans tes champs de formulaire, tu as quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    hfiltre(Véhicule, ID_Véhicule, hvalMin, hvalMax, "ID_Véhicule = " + idvehicule)
    SI hlitpremier(Véhicule) ALORS
       fichierVersEcran()
    SINON
       Erreur("Véhicule non trouvé")
    FIN
    Et puisque tu as bien fait les liaisons entre tes champs et tes rubriques de BD, pour enregistrer les modifications, il suffira de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    EcranVersFichier()
    hModifie(Véhicule)
    A noter aussi qu'il est préférable d'écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SI HLitPremier(Rs) ALORS
        POUR TOUT Rs
            ...
            ... 
        FIN
    FIN
    qui est plus performant que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    HLitPremier(Rs)
    TANTQUE HTrouve(Rs)
    	...
            ...
    	HLitSuivant(Rs)
    FIN
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  8. #8
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2019
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2019
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Merci A tous mon Bouton Modifier Marche bien
    Manque plus que j'actualise mon tableau a chaque fois que je modifie

    Problème Résolu !

  9. #9
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 162
    Points : 9 112
    Points
    9 112
    Par défaut
    @tcb92 : télescopage de message

    @droliprane, oui mais non. Pour une requête, je suis d'accord, par contre, pour un parcours de fichier, un POUR TOUT est plus lent (et plus gourmand) qu'un HLITPREMIER / TANTQUE PAS HENDEHORS. Il vaut mieux faire un
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  10. #10
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    @frenchsting :

    C'est vrai que je suis parti du principe que Rs est un recordset qui contient le résultat d'une requête.

    Et je n'ai jamais mesuré la différence de performance sur un parcours de fichier car je n'en fais pas, mais je ne vois pas pourquoi il en serait autrement. Mais ça m'intéresse de savoir
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  11. #11
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 162
    Points : 9 112
    Points
    9 112
    Par défaut
    @droliprane,

    Le test est simple : tu affiche une table avec plusieurs milliers d'enregistrements (4000 mini) d'un fichier, et cet affichage va chercher des infos dans d'autres fichiers. Ajoute là-dessus, un réseau pourri de chez pourri et tu auras une grosse lenteur, voire un crash de l'appli avec le pour tout. Et "simplement" une lenteur en utilisant le tantque.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

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

Discussions similaires

  1. MVVM Communication entre deux fenêtres
    Par Oberown dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 24/01/2012, 01h54
  2. Problème de communication entre deux fonctions
    Par AyManoVic dans le forum Langage
    Réponses: 0
    Dernier message: 24/10/2011, 16h47
  3. Problème rafraichissement edmx entre deux fenêtres
    Par Finality dans le forum Entity Framework
    Réponses: 2
    Dernier message: 25/07/2011, 15h18
  4. Communication entre deux fenêtres
    Par ManuV dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/02/2009, 11h31
  5. [RMI] Problème de communication entre deux machines distantes
    Par georges_jung dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 10/04/2007, 19h03

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