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 :

Collection de procédures - Ignorer une procédure [WD20]


Sujet :

WinDev

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Points : 57
    Points
    57
    Par défaut Collection de procédures - Ignorer une procédure
    Bonjour,

    Je suis actuellement dans une boite ou le SI est très imbriqués.

    Certaines procédures (de collections de procédures partagées) font références à des objets dont la classe utilise de l'IHM (de fenêtre d'autres projets) ou des variables globales (d'autres projets)...

    Bref cela génère des erreurs de compilation qui n’empêchent pas les applications de tourner mais qui rendent difficile la gestion des applications.

    Savez vous s'il est possible de récupérer une collection de procédure mais en "isolant" certaines procédures afin de ne pas avoir les erreurs.

    Explication :

    J'ai un projet A et un projet B. Dans le projet A j'ai la fenêtre A1 et A2, dans le projet B j'ai les fenêtre B1 et B2.

    J'ai une collection de procédure CP partagé entre les 2 projets, elle contient les procédure P1 et P2.

    P1 fait référence à un tableau de B1, du coup cela crée des erreurs dans le projet A même si le projet A n'utilise pas la procédure P1.

    Est-il possible de partager CP dans le projet A mais en excluant la procédure P1?

    Ou bien je dois détricoter?

    Merci, Bonne journée

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    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 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Pour moi tout ceci prouve surtout qu'il y a un problème de logique ici.
    Si une procédure, une classe... fait référence "en dur" à une fenêtre, les deux doivent être dans le même projet.
    Ici la seule solution "propre" que je vois est de découper la collection de procédure en 3 parties:
    1. La partie vraiment partagée, commune aux deux projets mais indépendante des 2 projets, qui finit dans un composant
    2. La partie A dans le projet A
    3. La partie B dans le projet B


    Une autre solution est de passer les noms de fenêtre en paramètres aux procédures et autre classe, et d'utiliser des indirections dans la collection de procédure.

    Tatayo.

  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
    Remplacer fenetre_b1.table1 par {"fenetre_b1.table1", indChamp} etc

    Ca me paraît un bon compromis, plutôt que vouloir tout réorganiser.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  4. #4
    Membre habitué Avatar de medbouh
    Inscrit en
    Mars 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mars 2006
    Messages : 152
    Points : 171
    Points
    171
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Remplacer fenetre_b1.table1 par {"fenetre_b1.table1", indChamp} etc

    Ca me paraît un bon compromis, plutôt que vouloir tout réorganiser.
    L'indirection serai un bon compromis à court terme, sinon la solution de tatayo est à prendre en considération comme solution à moyen et long terme.
    avant de poste pensez à c'est plus constructif.

    n'oublie pas d'utilise le bouton

    si vous trouvez la solution vous meme n'oublie pas de l'indiquer.

  5. #5
    Membre averti Avatar de tunizar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 573
    Points : 427
    Points
    427
    Par défaut
    Citation Envoyé par forca Voir le message
    Bonjour,

    Je suis actuellement dans une boite ou le SI est très imbriqués.



    Ou bien je dois détricoter?

    Merci, Bonne journée
    Bonjour,
    Il est temps de passer en POO...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Points : 57
    Points
    57
    Par défaut
    Merci à tous pour vos réponses.

    J'avais pensé à vos différentes solutions, mais une confirmation est positive.

    J'ai déjà fait des indirections et je vais vais continuer quand c'est possible, logiquement plus personne ne fait ça.

    Par contre il y a une procédure d'une collection de procédure qui fait appel à un objet qui n'est pas dans le projet que j'utilise, si j'importe l'objet, cela crée encore plus d'erreurs...

    Dans ce cas là je vais prendre la solution de tatayo, voir si on peut déplacer cette procédure vers une autre collection ou la restreindre à un projet.

    A moins que vous connaissiez une déclaration de variable par indirection!?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Points : 57
    Points
    57
    Par défaut
    Tunizar c'est déjà le cas mais on ne choisit pas de ce qu'on hérite!

    On ne peux pas malheureusement tout redevelopper, en maintenant l'existant + les projets etc.

  8. #8
    Membre averti Avatar de tunizar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 573
    Points : 427
    Points
    427
    Par défaut
    Citation Envoyé par forca Voir le message
    Tunizar c'est déjà le cas mais on ne choisit pas de ce qu'on hérite!

    On ne peux pas malheureusement tout redevelopper, en maintenant l'existant + les projets etc.
    Bonjour,
    La création d'une bibliothèque WDL qui se charge et décharge à la demande

  9. #9
    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
    {mavar, indvariable}
    Voir ici : http://doc.pcsoft.fr/fr-FR/?1512005
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Points : 57
    Points
    57
    Par défaut
    Ca c'est pour y accéder mais au moment de la déclaration ?

    Cas concret, déclaration d'une variable de type Obj_ext dans FG_Proc1 qui appartient à une classe de procédure partagée dans le projet P1 mais la classe Obj_ext n'appartient pas au projet P1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PROCEDURE FG_Proc1()
    gclObjExt est un objet Obj_ext dynamique

    Je voudrais que soit la fonction FG_Proc1() ne soit plus pris en compte dans le projet P1 ou bien trouver une autre syntaxe de déclaration qui ne générera pas d'erreur dans le projet P1.

    Merci

  11. #11
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    Bonjour,

    Pour éviter de compiler une partie du code selon la configuration, on peut utiliser la condition COMPILE SI
    On définit le nom de la configuration au niveau de chaque projet.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Points : 57
    Points
    57
    Par défaut
    Merci à tous, grâce à la dernière solution de Narwe avec Compile SI et toutes les solutions vu avant je vais corriger nos problèmes.

    Malheureusement je vais devoir attendre le passage en 21, nous ne sommes qu'en version 20.

  13. #13
    Membre averti Avatar de tunizar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 573
    Points : 427
    Points
    427
    Par défaut
    Citation Envoyé par Narwe Voir le message
    Bonjour,

    Pour éviter de compiler une partie du code selon la configuration, on peut utiliser la condition COMPILE SI
    On définit le nom de la configuration au niveau de chaque projet.
    Bonjour,
    Bonne idée !

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

Discussions similaires

  1. appel d'une procédure dans une procédure
    Par breizh76 dans le forum PL/SQL
    Réponses: 2
    Dernier message: 23/03/2010, 15h47
  2. [SQLServer] Traitement procédure dans une procédure
    Par vinze11 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/01/2007, 10h18
  3. Lancé une procédure stockée à une date précise
    Par Oberown dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/07/2006, 17h23
  4. [VBA-A] Lancer une procédure d'une application ArcMap
    Par TiT0f dans le forum VBA Access
    Réponses: 11
    Dernier message: 05/06/2006, 23h44
  5. stocker une procédure dans une string
    Par Coug1234 dans le forum Langage
    Réponses: 6
    Dernier message: 26/04/2006, 21h46

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