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 :

Travailler sur une table fichier [WD15]


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 42
    Points : 24
    Points
    24
    Par défaut Travailler sur une table fichier
    Bonjour à tous,

    Je suis en train de reprendre le travail d'un collaborateur qui est parti il y a peu.
    Il était fan de HF
    Il a donc tout programmé en HyperFile le problème étant que je n'en ai pas fait depuis des lustres.
    J'ai une ou deux petites questions :

    1 - J'ai une table en liaison avec un fichier, lorsque je modifie ce fichier j'aimerais que ma table se mette à jour, j'ai beau faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        TableAffiche(Table,<Position>)
    avec n'importe quelle position, cela fait tout et n'importe quoi, soit cela m'affiche les derniers enregistrements, soit les premiers, soit l'enregistrement sur lequel j'étais mais en aucun cas tous mes enregistrements...................auriez-vous une idée ou alors une autre façon de faire

    2 - Deuxièmement j'aimerais établir une condition de sélection sur cette table mais sans faire de requête intégré sur cette table parce que cela me fait tout planter, auriez vous une idée ? (En fait je veux juste afficher dans ma table les éléments non traiter, dans mon cas ou la rubrique Atraiter = 0)

    Merci d'avance pour votre aide et vive l'HyperFile

  2. #2
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Bonjour,

    Pour ton point 1 regarde l'aide de "FichierVersEcran"

    Pour ton point 2 regarde l'aide de "TableActiveFiltre"

    Ca devrais normalement t'aider.
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par mail.spam Voir le message
    Bonjour,

    Pour ton point 1 regarde l'aide de "FichierVersEcran"

    Pour ton point 2 regarde l'aide de "TableActiveFiltre"

    Ca devrais normalement t'aider.
    Bonjour,

    Pour la réponse à mon point 1 cela ne fonctionne pas, il garde en mémoire ce qu'il avait chargé auparavant

    Pour la réponse à mon point 2 cela ne fonctionne pas non plus vu qu'il prend avant tout en considération ce qu'il y a dans la Description de la table au niveau du Contenu

    Pour information, je fais partie des rares personnes qui consulte l'aide avant de poster un message, donc me demander de regarder l'aide ne sert pas à grand chose.
    Je ne dis pas ça méchemment mais ce genre de réponse ne fait pas avancer du tout les questions sur un forum, je ne demande pas à ce que l'on me crache le code, ça c'est mon boulot, mais me dire de regarder l'aide pour un Membre émérite je trouve ça un peu bizarre pour un forum sur www.developpez.net.

    Enfin bref merci de m'avoir accorder ces quelques minutes pour me dire de regarder l'aide.

    Cordialement

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

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

    @ GDev80,

    Je te trouve très injuste avec mail.spam.

    Il a t'a dit bien plus que "regarde l'aide"... il t'a donné un nom de fonction pour chacun des points abordés.
    Tu lis l'aide, et c'est tant mieux, mais elle est très vaste. Il n'est pas évident de savoir où chercher. Et on ne peut pas deviner l'étendue de tes connaissances.

    Passons à du concret.
    Alors sur le point 2, la fonction TableActiveFiltre devrait fonctionner sauf si la FAA (Fonctionnalités Automatiques de l'Application) est désactivée.
    Tu peux aussi nous montrer ton code, si tu veux être constructif.

    Au fait, ton champ table est de quel type ? Fichier à accès direct ou fichier chargé en mémoire ?
    http://doc.pcsoft.fr/fr-FR/?1013290&...s-acces-direct

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par OnePoint Voir le message
    Bonjour à tous,

    @ GDev80,

    Je te trouve très injuste avec mail.spam.

    Il a t'a dit bien plus que "regarde l'aide"... il t'a donné un nom de fonction pour chacun des points abordés.
    Tu lis l'aide, et c'est tant mieux, mais elle est très vaste. Il n'est pas évidemment de savoir où chercher. Et on ne peut pas deviner l'étendue de tes connaissances.

    Passons à du concret.
    Alors sur le point 2, la fonction TableActiveFiltre devrait fonctionner sauf si la FAA (Fonctionnalités Automatiques de l'Application) est désactivée.

    Au fait, ton champ table est de quel type ? Fichier à accès direct ou Fichier chargé en mémoire ?
    http://doc.pcsoft.fr/fr-FR/?1013290&...s-acces-direct
    Les différents types de tables : mémoire, fichier avec ou sans accès direct
    Je le répète je ne dis pas ça méchamment.
    Mais cela me rappel certains forums ou les membres sortent la phrase magique "Va voir l'aide".
    Mais bon Mea Culpa.
    Donc ma table est une table fichier chargé mémoire.
    Et oui ma FAA est désactivé car j'ai crée un menu contextuel sur cette table.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    En fait dés que je mets en place une requête intégrée dans le contenu de ma table, il exécute bien ma requête mais par la suite dés que je sélectionne un enregistrement il ne me récupère pas les informations de ce dernier, alors que si je ne fait aucune requête, juste la liaison sur mon fichier il me récupère les informations que je veux (Identifiant automatique, contenu des rubriques....)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 812
    Points
    812
    Par défaut
    Question:
    le filtre "Atraiter = 0" doit-il être appliqué en permanence ?
    ou bien tu veux pouvoir filtrer/défiltrer à la demande ?

    Citation Envoyé par GDev80 Voir le message
    Donc ma table est une table fichier chargé mémoire.
    Et oui ma FAA est désactivé car j'ai crée un menu contextuel sur cette table.
    Pour ce que je comprends...
    il est possible de ne pas afficher les FAA dans le menu contextuel, mais tout en les laissant actives. Non ?

    Si tu ne peux pas utiliser le filtre utilisateur (FAA), alors tu peux utiliser la fonction HFiltre.
    La page d'aide en parle bien: Filtres dans les tables fichier
    http://doc.pcsoft.fr/fr-FR/?1013202&...tables-fichier

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par OnePoint Voir le message
    Question:
    le filtre "Atraiter = 0" doit-il être appliqué en permanence ?
    ou bien tu veux pouvoir filtrer/défiltrer à la demande ?


    Pour ce que je comprends...
    il est possible de ne pas afficher les FAA dans le menu contextuel, mais tout en les laissant actives. Non ?

    Si tu ne peux pas utiliser le filtre utilisateur (FAA), alors tu peux utiliser la fonction HFiltre.
    La page d'aide en parle bien: Filtres dans les tables fichier
    http://doc.pcsoft.fr/fr-FR/?1013202&...tables-fichier
    En fait j'ai deux tables, une qui doit afficher les éléments dont "Atraiter = 0" et l'autre dont les éléments "Atraiter = 1".

    Concernant les FAA je ne savais pas que l'on pouvait le laisser actif sans les afficher.

    Je vais voir ce que je peux faire avec les filtres, voir si cela fonctionne.

    Merci

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 812
    Points
    812
    Par défaut
    Citation Envoyé par GDev80 Voir le message
    je mets en place une requête intégrée dans le contenu de ma table, il exécute bien ma requête mais par la suite
    La source du mal est peut être là.
    Si la requête est intégrée, elle est "confinée" dans le champ table et n'influence pas le reste du contexte HyperFile.

    Citation Envoyé par GDev80 Voir le message
    mais par la suite dés que je sélectionne un enregistrement il ne me récupère pas les informations de ce dernier, alors que si je ne fait aucune requête, juste la liaison sur mon fichier il me récupère les informations que je veux (Identifiant automatique, contenu des rubriques....)
    La "liaison directe entre un champ table et un fichier" a un impact sur le contexte HyperFile: sélectionner une ligne du champ table a pour effet de modifier la position de l'enregistrement courant dans le fichier lié.

    Je ne comprends pas ça:
    Citation Envoyé par GDev80 Voir le message
    il ne me récupère pas les informations de ce dernier,
    Concrètement, en quoi consiste "la récupération" ?

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par OnePoint Voir le message
    Question:
    le filtre "Atraiter = 0" doit-il être appliqué en permanence ?
    ou bien tu veux pouvoir filtrer/défiltrer à la demande ?


    Pour ce que je comprends...
    il est possible de ne pas afficher les FAA dans le menu contextuel, mais tout en les laissant actives. Non ?

    Si tu ne peux pas utiliser le filtre utilisateur (FAA), alors tu peux utiliser la fonction HFiltre.
    La page d'aide en parle bien: Filtres dans les tables fichier
    http://doc.pcsoft.fr/fr-FR/?1013202&...tables-fichier
    Alors réflexion faites je ne peux pas utiliser HFiltre, en effet ce filtre permet de "filtrer" sur un fichier, sachant que j'ai deux tables fichier utilisant le même fichier (excusez moi de me répéter) si je crée un Filtre sur mon fichier il va l'appliquer à mes deux tables.

    Suis je compréhensif ?

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par OnePoint Voir le message
    La source du mal est peut être là.
    Si la requête est intégrée, elle est "confinée" dans le champ table et n'influence pas le reste du contexte HyperFile.



    La "liaison directe entre un champ table et un fichier" a un impact sur le contexte HyperFile: sélectionner une ligne du champ table a pour effet de modifier la position de l'enregistrement courant dans le fichier lié.

    Je ne comprends pas ça:

    Concrètement, en quoi consiste "la récupération" ?
    Alors un exemple concret.
    Lorsque je ne fais aucune requête, que ma table est chargé via la liaison ua fichier, si dans le code de mon champ table "Selection d'une ligne" je fais un trace de MonFichier.MaRubrique il m'affiche bien ce que je veux.
    Si par contre je fais la même chose alors que j'ai exécute une requête intégrée il ne me trace rien.
    Cette exemple vous convient-il ?
    J'avoue que c'est dur à expliquer.

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 812
    Points
    812
    Par défaut
    Hé bien oui, je te l'ai dit.
    La requête intégrée et le fichier sont 2 choses distinctes.

    Si tu utilises une requête intégrée dans un champ table, alors une "source de données masquée" est crée dans le contexte HyperFile.
    Dans cette configuration, pour connaître les valeurs de la ligne sélectionnée dans la table, il vaut mieux aller "lire directement dans la table":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Trace(MaTable.MaRubrique)

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par OnePoint Voir le message
    Hé bien oui, je te l'ai dit.
    La requête intégrée et le fichier sont 2 choses distinctes.

    Si tu utilises une requête intégrée dans un champ table, alors une "source de données masquée" est crée dans le contexte HyperFile.
    Dans cette configuration, pour connaître les valeurs de la ligne sélectionnée dans la table, il vaut mieux aller "lire directement dans la table".
    Hé bien oui OnePoint je suis tout à fait d'accord avec toi.
    Le problème c'est que tout ce foutu code est géré par cette fameuse sélection de ligne, plusieurs traitement découle de ça (traitement mis en place par mon ancien collaborateur).
    Et modifier cela me prendrait trop de temps, enfin trop de temps au gout du client
    C'est pour cette raison que je voulais trouvé une autre solution qu'un requête intégrée.
    Mon champ Table est chargé au départ grâce à sa liaison avec le Fichier.
    Comme je l'ai dit j'ai deux champs Table liées à ce Fichier.
    Une pour Atraiter = 0 et l'autre ATraiter = 1.
    Je ne peux donc pas faire de HFiltre (vu que le filtre se fait sur un Fichier) et je ne peux pas faire de requête intégrée vu que les impacts en découlant sont trop long à modifier.

    Que faire ? Suis-je dans une impasse ?

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 812
    Points
    812
    Par défaut
    Tu n'es pas dans une impasse.

    N'utilises pas une requête intégrée.
    A la place utilise une requête indépendante, qui est gérée au niveau du projet (pas au niveau du champ table).

    Dans l'aide en ligne: Mode de création de requêtes : requête indépendante ou intégrée
    http://doc.pcsoft.fr/fr-FR/?2032040&...dante-integree

    A mon avis, si tu es pressé, crée des requêtes indépendantes pour chacun de tes champs tables, comme ça il n'y aura pas de conflit, et tu accèderas aux rubriques via chacune de ces requêtes.

    (on peut recréer une requête indépendante à partir d'une requête intégrée)

    Disons que dans une fenêtre, il y a 2 champs tables (TableA et TableB) qui utilisent leur propre requête indépendante (ReqA et ReB), pour ramener des données venant du fichier MonFic.

    Au niveau du contexte HyperFile, MonFic, ReqA et ReqB seront vus comme 3 fichiers HyperFile distincts.

    La sélection d'une ligne dans la TableA modifie la position de l'enregistrement courant dans ReqA.
    Mais pas dans ReqB, ni dans MonFic.
    Si toi ce que tu veux c'est que la sélection dans TableA modifie la position dans MonFic, il te faudra le faire par programmation.

    Ok ?

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par OnePoint Voir le message
    Tu n'es pas dans une impasse.

    N'utilises pas une requête intégrée.
    A la place utilise une requête indépendante, qui est gérée au niveau du projet (pas au niveau du champ table).

    Dans l'aide en ligne: Mode de création de requêtes : requête indépendante ou intégrée
    http://doc.pcsoft.fr/fr-FR/?2032040&...dante-integree

    A mon avis, si tu es pressé, crée des requêtes intégrées pour chacun de tes champs tables, comme ça il n'y aura pas de conflit, et tu accèderas aux rubriques via chacune de ces requêtes.

    (on peut recréer une requête indépendante à partir d'une requête intégrée)
    L'idée est bonne.
    Je vais regarder ça.
    Encore merci pour le temps que tu m'as accordé.

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 812
    Points
    812
    Par défaut
    attention, j'ai complété mon message ci dessus, avec un pseudo-exemple.
    Je confirme, il faut voir du côté des requêtes indépendantes.

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

Discussions similaires

  1. [WD17] filtrage sur une table fichier
    Par riad2108 dans le forum WinDev
    Réponses: 1
    Dernier message: 11/02/2014, 16h41
  2. Réponses: 1
    Dernier message: 31/07/2008, 12h13
  3. Travailler sur une copie d'une table
    Par spy1 dans le forum Requêtes
    Réponses: 1
    Dernier message: 16/04/2007, 16h49
  4. Quellue interface pour travailler sur une grosse table ?
    Par grinder59 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 22/12/2006, 16h25
  5. Copier/coller une table sur une autre fichier mdb
    Par berceker united dans le forum Access
    Réponses: 2
    Dernier message: 12/07/2006, 20h08

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