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 :

Question sur l'utilisation des vue et HModifie [WD19]


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Par défaut Question sur l'utilisation des vue et HModifie
    Bonjour,

    J'utilise depuis peu les vues (honte à moi) et je les utilise dans un premier temps en lecture et affichage et tout va bien.

    Mais je voulais savoir s'il était possible de s'en servir pour faire des modifications sur le fichier de la vue.

    Je m'explique avec du code qui ne fait pas ce que je souhaite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MaVuetheme1 est une Source de Données
    HCréeVue(MaVuetheme1, destheme, "Ficrefdest,ficrefthe,Ficlibthe", "", "Ficrefdest="+param1+"", hVueDéfaut)
    POUR TOUT MaVuetheme1
    	MaVuetheme1.Ficlibthe="TEST"
            HMODIFIE(MaVuetheme1)
    FIN

    Ici je voudrais que tous les destheme avec une valeur égale à param1 prennent Ficlibthe la valeur "TEST".

    En mettant une TRACE sur le hmodifie j'ai bien 1 mais la modification ne se fait pas.

    Est ce normal?

    Cordialement

    Forca

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Par défaut
    Premièrement je vous déconseille de travailler avec les "vues" de Windev qui n'ont de vue (d'un point de vue BDD) que le nom....

    Ensuite il est tout à fait logique qu'un hModifie sur une vue n'agisse pas sur le fichier car il ne s'agit pas d'un véritable fichier de données mais plutôt d'un fichier HF mémoire qui n'existe que le temps de l'exécution du programme (dont le contenu dépend de fichier du contenu de fichier de données). En mémoire votre modification doit certainement être prise en compte.

  3. #3
    Expert confirmé
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 591
    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 591
    Par défaut
    La vue fait "simplement" une extraction d'un fichier suivant les critères que tu donnes. C'est dans le principe, une requête SQL SELECT. Si tu veux modifier le fichier qui est à l'origine de cette vue, il faut alors que tu fasse une recherche dans ce fichier et mette ta valeur.
    Ton exemple n'est pas top dans le sens où tu aurais pu faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TANTQUE PAS HEndehors(destheme)
       si destheme.Ficrefdest=param1 alors
    	destheme.Ficlibthe="TEST"
            HMODIFIE(destheme)
       fin
    FIN
    Par contre, on peu imaginer que tu aies fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    MaVuetheme1 est une Source de Données
    HCréeVue(MaVuetheme1, destheme, "Ficrefdest,ficrefthe,Ficlibthe", "", "Ficrefdest="+param1+"", hVueDéfaut)
    POUR TOUT MaVuetheme1
    	Hiltrecherchepremier(destheme, iddestheme, MaVuetheme1.iddestheme)
    	 si htrouve(destheme) alors
    		destheme.Ficlibthe="TEST"
    	        HMODIFIE(destheme)
    	fin
    FIN

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 462
    Par défaut
    En SQL, l'avantage d'une vue est qu'elle permet de ne donner la visibilité qu'à un sous-ensemble d'une table.
    Il suffit de ne pas donner l'accès à la table, mais uniquement à la vue.
    Par exemple si plusieurs sociétés sont gérées dans la même base, le fichier client ne sera pas accessible directement, mais uniquement à travers une vue qui filtre par société.

    Une recherche de "updatable view" sur Internet permet de connaitre les conditions qui rendent une vue modifiable, en fonction du SGBD. J'avoue que je ne sais pas ce que permet HF de ce côté.

    Tatayo.

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Par défaut
    Le moteur HF ne gère pas de vue, c'est le programme qui gère une "vue virtuelle" en mémoire... il ne s'agit pas d'un concept BDD dans le contexte Windevien.

  6. #6
    Expert confirmé
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 591
    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 591
    Par défaut
    On a tendance à penser que le hcreevue est une sorte de hfiltre. Il s'agit bien d'une espèce de requête SQL SELECT qui va charger le résultat en mémoire. En aucun cas la modification d'une vue windev n'influe sur le fichier dont elle est issue.
    Tout comme le précisait Tatayo, elle peut être très utile pour faire des extractions.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Par défaut
    Bonjour à tous,

    Citation Envoyé par forca Voir le message

    J'utilise depuis peu les vues (honte à moi) et je les utilise dans un premier temps en lecture et affichage et tout va bien.

    Mais je voulais savoir s'il était possible de s'en servir pour faire des modifications sur le fichier de la vue.

    En mettant une TRACE sur le hmodifie j'ai bien 1 mais la modification ne se fait pas.

    Est ce normal?
    La fonction HVueVersFichier pourrait bien être la solution que tu attends.
    http://doc.pcsoft.fr/fr-FR/?3044021&...chier_fonction

    Par ailleurs, si j'ai bien lu les nouvelles fonctionnalités apportées par la version 20 de Windev, dans le futur HyperFile SQL supportera les vues SQL.

  8. #8
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Par défaut
    Je me permet d'insister un peu en vous signalant que c'est une très mauvaise orientation technique.

    Quoiqu'il en soit OnePoint marque un point (vive les contre-pétries !) car c'est exactement ce dont vous avez besoin.

  9. #9
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 462
    Par défaut
    Citation Envoyé par michel.souris Voir le message
    Je me permet d'insister un peu en vous signalant que c'est une très mauvaise orientation technique.
    Est-ce qu'on peut en savoir plus ?

    Tatayo.

  10. #10
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Par défaut
    Je ne trouve aucun avantage à la gestion des vues windeviennes :
    -> pas de rafraîchissement des valeurs de la vue (contrairement à une vue BDD)
    -> mauvaise gestion des accès concurrents (car pas de liaison réelle entre la vue et les tables)
    -> perte de l'avantage BDD avec une mutualisation des données et la gestion des accès concurrents puisqu'on se retrouve avec une table (au sens BDD) mémoire gérée par le client (...WTF ?)

  11. #11
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 462
    Par défaut
    Je pensais que tu parlais des vue en général, d'où ma question.
    Visiblement les "vues" WinDev ressemblent assez aux curseurs en SQL.
    J'y trouve parfois une utilité: par exemple dans le cas des inventaires, pour afficher des stats à l'utilisateur je crée un curseur qui lance une grosse requête de consolidation, puis je lance ensuite une requête de sélection sur ce curseur en fonction des critères de sélection utilisés.
    L'avantage est que ces requêtes sont extrêmement rapide, alors que la consolidation prend plusieurs secondes.

    Tatayo.

  12. #12
    Expert confirmé
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 591
    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 591
    Par défaut
    Pour moi la vue est plutôt à prendre comme une image d'une partie d'un fichier. Cela permet de faire une sorte d'export Excel. Dans ce sens là, je le trouve très intéressant. Je les ai beaucoup utilisé pour faire des extractions par type et travailler à partir de ces vues. J'ai bien dit à partir de ces vues et non pas sur ces vues.

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

Discussions similaires

  1. [Smarty] Question sur l'utilisation des générateur de template
    Par fongus dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 24/09/2007, 21h36
  2. Question sur l'utilisation des evenements
    Par Seth77 dans le forum C#
    Réponses: 2
    Dernier message: 12/06/2007, 23h27
  3. Question sur l'utilisation des onglets
    Par diden138 dans le forum Delphi
    Réponses: 20
    Dernier message: 16/11/2006, 19h48
  4. Débutant: Question sur l'utilisation des structures
    Par pdgnr dans le forum C++Builder
    Réponses: 5
    Dernier message: 26/10/2006, 13h03
  5. Réponses: 3
    Dernier message: 21/10/2006, 16h03

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