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 :

Déclaration d'une fenêtre ouverte


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Agent d'étude
    Inscrit en
    Novembre 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agent d'étude
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2015
    Messages : 30
    Points : 10
    Points
    10
    Par défaut Déclaration d'une fenêtre ouverte
    Bonjour,

    Je suis confronté à un problème(si c'en est un) ou je suis obliger d'ouvrir 2 fenêtres de recherche "Clients" soit par une fenêtre "Saisie Devis" soit par une "saisie commandes". J'aurai voulu n'avoir qu'une seule fenêtre de recherche pour les 2 fenêtres de saisie. Seulement je ne sais pas comment les déclarer actives en arrière plan.
    Comment déclare-t'on une fenêtre ouverte en arrière plan pour que je puisse différencier les 2 codes séparément dans un seule fenêtre recherche Clients.
    Ce ne doit pas être compliquer mais je ne trouve que des aides pour les champs.
    Merci par avance

  2. #2
    Membre à l'essai
    Homme Profil pro
    Agent d'étude
    Inscrit en
    Novembre 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agent d'étude
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2015
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    J'ai trouvé ce code pour ma fenêtre "recherche clients":

    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
    SELON FenEtat(FEN_NouvelleCommande)
    	CAS Actif
    	HLitRecherche(Client,NumClient, FEN_NouvelleCommande.COMBO_Client)
    SI HTrouve(Client) ALORS
    	Client.NumClient = FEN_NouvelleCommande.COMBO_Client
    	TableSelect(TABLE_Recherche_Client,tsLigneCellule)
    	TableAffiche(TABLE_Recherche_Client,taCourantEnreg)
    FIN	
    	AUTRE CAS
    		HLitRecherche(Client,NumClient, FEN_Nouveau_Devis.COMBO_Client)
    		SI HTrouve(Client) ALORS
    			Client.NumClient = FEN_Nouveau_Devis.COMBO_Client
    			TableSelect(TABLE_Recherche_Client,tsLigneCellule)
    			TableAffiche(TABLE_Recherche_Client,taCourantEnreg)
    		FIN			
    FIN
    La sélection de ma table client se fait bien quelle que soit la fenêtre de saisie
    Pourrais-je connaitre votre avis.
    Désolé de vous avoir faire perdre votre temps, mais je n'y croyais plus.
    Merci à tous.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Bonjour,
    Je pense que tu prends le problème à l'envers.
    Tu devrais passer le code client en paramètre à ta fenêtre de recherche, pour rendre cette dernière indépendante de la fenêtre d'appel.
    Sinon à chaque fois que tu voudras réutiliser cette fenêtre ailleurs, tu devras en modifier le code.

    Tatayo.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Agent d'étude
    Inscrit en
    Novembre 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agent d'étude
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2015
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    Merci de me répondre,

    J'avais commencé comme ça mais je n'arrivais pas à sélectionner le client dans la table de la fenêtre recherche client.
    Je vais réessayer, merci pour ces conseils.
    Je passais par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI ouvre(Fen_Recherche_Clients) alors
    combo_client = client.NumClient
    FIN
    Mais je ne savais quoi mettre dans ma fenêtre recherche une erreur à la fermeture de celle-ci me retournait que mon Si attendais un résultat en retour.
    Je m'y remets.
    encore merci

  5. #5
    Membre à l'essai
    Homme Profil pro
    Agent d'étude
    Inscrit en
    Novembre 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agent d'étude
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2015
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    Je n'ai pas trouvé comment faire à partir de mes fenêtres de saisies.
    Je ne pense pas que la table recherche clients servira à autre chose, je vais rester comme ça à moins que quelqu'un ait la solution.
    Encore merci pour votre aide.

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Le message d'erreur devrait te mettre sur la voie: il faut que ta fenêtre de recherche renvoie une valeur.
    Je te laisse chercher dans l'aide en ligne comment faire.

    Tatayo.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Agent d'étude
    Inscrit en
    Novembre 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agent d'étude
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2015
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    Tu m'en dit trop ou pas assez, quelle valeur ? quelle aide en ligne ?

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Comment quelle aide en ligne ? Tu as un problème avec la fonction Ouvre(), personnellement je commencerai par là.
    Quand à la valeur retournée, je dirai que c'est à toi de voir. Mais quand je vois ton code:
    Code WinDev : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SI ouvre(Fen_Recherche_Clients) alors
     combo_client = client.NumClient
     FIN
    Je dirai que la fenêtre doit renvoyer un booléen.

    Quoi qu'il en soit, si tu bloques sur un point aussi simple, je ne peux que t'encourager à suivre le guide d'auto-formation...

    Tatayo.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Agent d'étude
    Inscrit en
    Novembre 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agent d'étude
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2015
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    Bon, je crois avoir trouvé (avec du mal) dans mes fenêtres saisies "Devis et Cde" sur le clic du bouton recherche j'ai codé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    HLitRecherchePremier(Client,NumClient,COMBO_Client)
    SI HTrouve(Client) ALORS
    	Client.NumClient = COMBO_Client
    FIN
    Ouvre(FEN_Recherche_Client, Client.NumClient)
    Et dans ma fenêtre Table_recherche en procédure global j'ai déclaré:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PROCEDURE FEN_Recherche_Client(gNumclient = Client.NumClient)
     
    TableSelect(TABLE_Recherche_Client,tsLigneCellule)
    TableAffiche(TABLE_Recherche_Client,taCourantEnreg)
    Était-ce là la solution, cela fonctionne ?
    J'aurai aimé avoir ton avis car j'ai mis 3 jours avant de trouver.

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Je ne comprends pas la logique ici: tu passes le code client à la fenêtre de recherche, mais tu ne l'utilises pas.

    Je ne comprends pas non plus l'utilité ici de la fenêtre de recherche, vu que tu as déjà le code client concerné (via la combo). Je pensait que cette fenêtre permettait de chercher autre chose qu'un client (une facture, par exemple) depuis le code client.

    Si le but de la fenêtre de recherche est de trouver un client, je pense que le mieux serait non pas de lui passer en paramètre le code client, mais de lui faire renvoyer le code client, si un client a été sélectionné, et vide dans le cas contraire.

    Tatayo.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Agent d'étude
    Inscrit en
    Novembre 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agent d'étude
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2015
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    Bonjour et bonne année 2016,

    Ta réponse vient à me faire douter du bien fondé de cette recherche.
    je ne comprends pas ta remarque:
    Je ne comprends pas la logique ici: tu passes le code client à la fenêtre de recherche, mais tu ne l'utilises pas.
    Il me semblait l'utiliser pour sélectionner le client dans la table recherche.

    Je ne comprends pas non plus l'utilité ici de la fenêtre de recherche, vu que tu as déjà le code client concerné (via la combo). Je pensait que cette fenêtre permettait de chercher autre chose qu'un client (une facture, par exemple) depuis le code client.
    Cette recherche sert à pouvoir modifier les paramètres d'un client et/ou d'en consulter l'historique.

    Si le but de la fenêtre de recherche est de trouver un client, je pense que le mieux serait non pas de lui passer en paramètre le code client, mais de lui faire renvoyer le code client, si un client a été sélectionné, et vide dans le cas contraire.
    Cette recherche est ponctuelle et pas systématique elle ne sert que dans le cas décrit précédemment.

    Encore merci pour ton aide, mais plus ça va, plus je suis dans le flou (je ne suis qu'un amateur de WD et non un programmeur)

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

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Citation Envoyé par Mophus Voir le message
    Il me semblait l'utiliser pour sélectionner le client dans la table recherche.
    Et pourtant je ne vois pas de gNumClient autre part que dans la déclaration des paramètres de la fenêtre...

    Citation Envoyé par Mophus Voir le message
    Cette recherche est ponctuelle et pas systématique elle ne sert que dans le cas décrit précédemment.
    Par expérience je sais qu'un code qui "ne doit service qu'une fois, juste ici", finit par être utilisé ailleurs. Et puis c'est un bon exercice de faire un code réutilisable (qui sera réutilisé un jour ou l'autre).

    Tatayo.

  13. #13
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2010
    Messages : 283
    Points : 263
    Points
    263
    Par défaut
    Bonjour,

    Si j'essaie de comprendre, tu as une fenêtre disons "FEN_NouvelleCommande", tu veux ouvrir une fenêtre pour lister l'historique des devis OU des commandes?


    Si c'est le cas, le plus simple est de passé en paramètre lors de ton Ouvre(), le type d'info que tu veux obtenir. (ex : dev,comm) et dans ta déclaration globales de ta fenêtre de recherche, tu ajoute un SELON Type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    PROCEDURE MaFenêtre(type,numclient)
     
    SELON Type
     
    	CAS "dev"
     
    		//Ta requête de devis avec le num client en Param1
    	CAS "comm"
     
                    //Ta requête de commandes avec le num client en Param1
     
    FIN

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    HLitRecherchePremier(Client,NumClient,COMBO_Client)
    SI HTrouve(Client) ALORS
    	Client.NumClient = COMBO_Client
    FIN
     
    Ouvre(FEN_Recherche_Client, Client.NumClient)
    Ici ton "Client.NumClient = COMBO_Client" est inutile. Créer toi une variable globale ou locale "NumClient" et affecte-y ton Client.NumClient.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    NumClient est un entier
    HLitRecherchePremier(Client,NumClient,COMBO_Client)
    SI HTrouve(Client) ALORS
    	NumClient =  Client.NumClient
    FIN

    Ensuite tu ouvre ta fenêtre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ouvre(FEN_Recherche_Client,"comm",numClient)

    Lorsque ta fenêtre sera ouverte, tu aura quel type d'informations recherché et l'id du client. Avec ses 2 informations, tu est capable de créer tes requêtes et d'afficher les infos dont tu as besoin.


    Bon dev

Discussions similaires

  1. Reaffiche le contenu d'une fenêtre ouverte par showModalDialog
    Par Delphi-ne dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/09/2008, 16h26
  2. Accéder à une fenêtre ouverte
    Par birdie01 dans le forum Windows
    Réponses: 4
    Dernier message: 22/10/2007, 19h07
  3. Réponses: 2
    Dernier message: 06/02/2007, 17h18
  4. Positionner une fenêtre ouverte par un shell
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 08/12/2006, 08h33
  5. Centrer une fenêtre ouverte avec window.open et statusbar
    Par Michaël dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 02/01/2006, 13h07

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