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 :

POO polymorphisme et Etat


Sujet :

WinDev

  1. #1
    Membre éprouvé

    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    402
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 402
    Points : 915
    Points
    915
    Par défaut POO polymorphisme et Etat
    Bonjour à tous,

    Dans un soft windev (17) de gestion j'utilise une centaine d'états.
    Jusqu'alors chaque état intégrait une requête SQL montée en fonction de plusieurs combos (exemple choix vente / pertes / reglements...)

    Afin de simplifier mes appels j'utilise aujourd'hui une classe abstraite et l'appel de plusieurs classes dérivées pour construire une requête SQL en fonction de choix utilisateurs (polymorphisme).

    En gros la classe parent "Document" possède une méthode "ConstruitReqTxtSQL()" et les classes dérivées "docVentes", "docPertes", "docOfferts",... possèdent la même méthode (héritage direct).

    Lorsque j'effectue mes choix dans l'interface j'alloue le bon objet.
    Dans l'interface l'appel Document.ConstruitReqTxtSQL()
    Lance la bonne méthode docVentes.ConstruitReqTxtSQL() en fonction de l'allocation dynamique de l'objet voulu.

    Tout cela fonctionne à merveille et est très pratique.

    Problème : lorsque mes clients veulent modifier l'état ils voient bien l'appel de la méthode sur la classe parente mais n'ont pas accès au code de la méthode.
    Ce qui se comprends bien pour des raisons évidente de sécurité et d'intégrité du code mais c'est un gros handicap pour les clients.

    Avez vous une solution pour accéder à une classe ou à une "copie" de classe depuis Etat et requête?

    Si il n'y a pas de solution avez vous une piste pour palier à ce problème?

    Je voudrai que le client ait une requête de base qu'il pourrait modifier un peu comme lorsque la requete est codée directement dans l'état.

    Merci d'avance pour vos idées.

  2. #2
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Malheureusement et si j'ai bien compris la question, il n'est pas possible de créer un état modifiable dans "états et requêtes" qui soit basé sur une source fourni par le code.

    Voir : http://doc.pcsoft.fr/fr-FR/?1011055&...e-donnees-etat

    Entre autre le paragraphe :
    Sous le logiciel Etats & Requêtes, il n'est pas possible de créer :
    des états sur un vue HyperFileSQL.
    des états sur une zone mémoire.
    des états sur un champ Table.
    des états sur une source de données programmée.
    Pour plus de détails, consultez Limitations du logiciel Etats & Requêtes.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  3. #3
    Membre éprouvé

    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    402
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 402
    Points : 915
    Points
    915
    Par défaut Limitations
    Tout d'abord merci d'avoir pris le temps de me répondre.
    Après une bonne nuit de réflexion il me semble que non seulement celà n'est pas possible mais surtout cela n'est pas souhaitable !

    En effet laisser la main à l'utilisateur pour modifier une méthode de classe est tout à fait stupide, et pour le moins dansgeureux !

    Nota concernant la solution pour dépasser les limites de l'éditeur d'Etat et Requête

    Impossible de créer des états sur un vue HyperFileSQL. (logique on ne peut pas créer de vue depuis E&R)
    Impossible de créer des états sur une zone mémoire.(idem)

    Par contre s'il est vrai qu'on ne peut pas créer un champ Table on peut tout à fait lire la table dans la fenêtre qui lance l'état (dans le code de l'état) et transformer la table en variable globale de type tableau de structure puis faire du databinding sur la variable globale.

    Pour des états sur une source de données programmée je ne vois pas trop ou est la limite. J'ai pas mal d'états programmés avec une requête SQL comme source de l'état. C'est même parfois une faille de sécurité importante.

    Merci donc et [Resolu]

Discussions similaires

  1. [POO] polymorphisme avec PHP5
    Par novices dans le forum Langage
    Réponses: 6
    Dernier message: 23/07/2011, 15h48
  2. [POO] Surcharge et polymorphisme
    Par swampsnake dans le forum Langage
    Réponses: 12
    Dernier message: 06/08/2009, 11h34
  3. [POO] Polymorphisme
    Par lina22 dans le forum Langage
    Réponses: 6
    Dernier message: 31/07/2009, 11h03
  4. POO : difference entre heritage et polymorphisme
    Par Melvine dans le forum Langages de programmation
    Réponses: 13
    Dernier message: 13/07/2009, 19h14
  5. [POO] MVC Half-Edge et polymorphisme
    Par TanEk dans le forum C++
    Réponses: 8
    Dernier message: 14/12/2008, 17h28

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