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 :

champ historique de saisie dans fiche agent [WD20]


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut champ historique de saisie dans fiche agent
    Bonjour à tous,

    Je débute dans le développement Windev. Je suis entrain de bosser sur une application qui gère la convocation d'agent à des commissions de santé.
    Pour résumé, j'ai fais une fenêtre genre "fiche contact" qui permet à l'utilisateur de renseigner civilité, nom, prénom, adresse etc.... et surtout un champ date de la commission, un champ de motif de saisine (sous forme de liste déroulante) et un champ de saisie libre (commentaire)
    Certains agents peuvent être convoqués à plusieurs reprises. De ce fait, je souhaiterai possible de retourner dans la fiche de l'agent, modifier la date de la commission, motif de saisine si besoin et champ libre commentaire et l'enregistrer. Cependant, il faudrait que j'ai un champ qui récapitule tous les changements de ces champs (champ multi-lignes par exemple ou autre??) pour avoir un genre d'historique des saisies agent?!!
    De plus, il faudrait que je puisse faire une recherche sur ce champ historique...
    Est ce que cela est possible? Pouvez-vous me donner des pistes ou des indications sur comment mettre cela en place?

    Merci d'avance pour vos retours.
    Bonne journée.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 914
    Points : 1 496
    Points
    1 496

  3. #3
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    Bonjour,

    Merci pour ce retour...
    Je me suis déjà penché sur la journalisation des fichiers HFSQL mais il me semble que cela ne réponds pas exactement à ma demande.
    Je vais essayer de d'écrire ce que je cherche à faire :

    première saisie
    les 3 champs de la fiche que je veux suivre :
    date de commission : 22/11/2017
    motif : accident de travail
    commentaire : ACT BP
    puis j'enregistre

    seconde saisie
    date de commission : 22/12/2017
    motif : prolongement arrêt suite à accident de travail
    commentaire : PROL ACT BP
    puis j'enregistre

    ensuite, il faudrait que sur la fiche en question, j'ai un champ récapitulatif:
    22/11/2017 -- accident de travail -- ACT BP
    22/12/2017 -- prolongement arrêt suite à accident de travail -- PROL ACT BP

    En espérant avoir été plus clair dans ma demande...
    Et il faudrait que je puisse faire une recherche texte sur le contenu de cet historique!
    Merci d'avance.

  4. #4
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Si je résume ton problème, un agent peut être convoqué à plusieurs commissions, chacune ayant une date et une heure précise, et une commission peut avoir plusieurs agents.
    Par ailleurs, tu veux faire une recherche texte, mais sur quelle colonne ?
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  5. #5
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    Oui oui c'est exactement ça !!
    Bin.... faudrait pouvoir faire une recherche sur l'historique de saisie reprenant date commission, motif et commentaire.
    En fait, je cherche à obtenir un historique des différentes saisines d'un même agent, dans une rubrique HFSQL si c'est possible?

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 914
    Points : 1 496
    Points
    1 496
    Par défaut
    Et bien un fichier historique avec un Id et les 3 champs.

  7. #7
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Globalement, la partie de ton analyse concernée par la question devrait ressembler à ça:
    Nom : 2017-10-22_15h14_20.png
Affichages : 269
Taille : 16,1 Ko

    Pour obtenir la liste des saisines d'un agent, la requête suivante (REQ_Saisine) devrait faire l'affaire (j'ai trié par date parce que cela me paraissait logique, mais ce n'est pas obligatoire):
    Code sql : 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
    17
    18
    19
    20
    21
    22
     
    SELECT 
      AGENT.PK_AGENT AS PK_AGENT,  
      COMMISSION.NDX_DateCommission AS Date,  
      COMMISSION.HeureCommission AS Heure,  
      COMMISSION.RemarqueCommission AS Remarque,  
      MOTIF.NDX_Motif AS MotifConvocation
    FROM 
      MOTIF,  
      COMMISSION,  
      PARTICIPER,  
      AGENT
    WHERE 
      AGENT.PK_AGENT = PARTICIPER.FK_AGENT
      AND    COMMISSION.PK_COMMISSION = PARTICIPER.FK_COMMISSION
      AND    MOTIF.PK_MOTIF = COMMISSION.FK_MOTIF
      AND
      (
        AGENT.PK_AGENT = {pAgent}
      )
    ORDER BY 
      Date ASC

    ou via l'éditeur de requêtes :
    Nom : 2017-10-22_15h28_06.png
Affichages : 265
Taille : 14,3 Ko

    Tu peux alors créer un champ Table ou un état basé sur cette requête
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  8. #8
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    ok! dans ce cas là, il faut que je fasse un fichier avec id en doublon possible? qui sauvegarde les 3 champs en question à chaque nouvel enregistrement?
    Et pour l'afficher dans la fiche de l'agent faire une requête sur ce fichier avec en paramètre l'ID de l'agent en question? C'est bien à cela que vous pensez?
    Il n'a pas de risque de trop lenteur si le fichier devient important en enregistrement?
    Ou alors il y a une façon plus simple et rapide à mettre en place?

    Merci de vos réponses.

  9. #9
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    OK OK!!
    j'ai l'impression que les choses commencent à s'éclaircir et se regrouper!
    Donc l'idée que j'évoque dans mon dernier post se confirme....
    Mais il est donc obligatoire de créer un enregistrement par date de commission!
    Je voulais essayer de contourner cela pour limiter la taille de la base mais si pas le chois ^^

  10. #10
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par samsam007 Voir le message
    ok! dans ce cas là, il faut que je fasse un fichier avec id en doublon possible?
    Jamais d'ID avec doublon.
    La requête REQ_Saisine demande en effet l'ID de l'agent.
    Citation Envoyé par samsam007 Voir le message
    Mais il est donc obligatoire de créer un enregistrement par date de commission!
    C'est le plus simple, cela permet aussi d'enregistrer les PV de réunion et les participants. Une petite requête et hop le PV est sorti
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  11. #11
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    Ok je dois donc faire un fichier qui va reprendre id agent (avec doublon possible), date_commission, motif_saisine et commentaire!!
    Pour afficher le résultat je me sers d'une requête (avec en paramètre id_agent) que j'affiche dans une table que je place dans la fiche de l'agent et qui je lance à l'initialisation de la fenêtre? C'est bien cela, j'ai tout compris?
    Cela ne vas pas être trop long et ralentir l'ouverture de la fiche agent?
    Et en ce qui concerne la recherche, je fais une fenêtre avec une table listant ce fichier en question et je peux faire une recherche sur la colonne commentaire?

  12. #12
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par samsam007 Voir le message
    Ok je dois donc faire un fichier qui va reprendre id agent (avec doublon possible)
    La requête fait déjà ce boulot

    Citation Envoyé par samsam007 Voir le message
    Pour afficher le résultat je me sers d'une requête (avec en paramètre id_agent) que j'affiche dans une table que je place dans la fiche de l'agent et qui je lance à l'initialisation de la fenêtre? C'est bien cela, j'ai tout compris?
    C'est cela

    Citation Envoyé par samsam007 Voir le message
    Cela ne vas pas être trop long et ralentir l'ouverture de la fiche agent?
    Cela va dépendre du nombre de convocations, mais la création d'une table historique qui alimenterait le champ table ne sera guère plus rapide. Essaye de faire un audit au besoin.

    Citation Envoyé par samsam007 Voir le message
    Et en ce qui concerne la recherche, je fais une fenêtre avec une table listant ce fichier en question et je peux faire une recherche sur la colonne commentaire?
    Il faut dans ce cas indexer la colonne commentaire (clé avec doublon)
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  13. #13
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    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 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Un premier fichier
    Clé unique = Id_Agent ==> nom, matricule, date de naissance ... ...

    Un 2ème fichier
    Clé unique = Id_Agent + Date de Convocation ==> Descriptif de la visite.

    Tu as peur pour les volumes ou les temps d'affichage. Aucune raison d'avoir peur. Il faut absolument créer la clé unique sur Id_Agent+date dans le 2ème fichier, et alors, aucun problème.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  14. #14
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    En ce qui concerne le temps d'affichage, pour 1200 enregistrements dans PARTICIPER, 30 dans AGENTS, 200 dans COMMISSION et 20 dans MOTIF, le temps maximum d'affichage est d'environ 800 µs
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  15. #15
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    Bonsoir à tous,

    Un grand merci pour toutes ses réponses!!
    Je vais mettre tout cela en place dès demain et reviens vers vous pour vous donner le résultat mais je pense qu'il n'y aura pas de soucis...
    Encore merci pour tous ses précieux conseils ^^
    Bonne soirée.
    A+

  16. #16
    Membre à l'essai
    Homme Profil pro
    Analyste developpeur
    Inscrit en
    Octobre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste developpeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2017
    Messages : 10
    Points : 21
    Points
    21
    Par défaut
    Hello,

    je viens mettre mon grain de sel sur un tout petit detail. Pour la cle composée Id_Agent + Date de Convocation, rajouter un compteur sur 1 ou deux chiffres a la fin sinon, le jour ou deux commissions vont voir le même agent, le même jour, tu va planter ta bdd.

    Autrement, il aurait tout a fait été possible de faire autrement ton besoin de départ mais conserver un enregistrement par convocation est la façon la plus sure et la plus propre de gérer sans compter que tu ne perdras aucune donnée ainsi. Et si ton volume un jour pose un souci, regarde du coté de tes index et de tes clés, pas du volume en lui-même de ta base.

  17. #17
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    Bonjour à tous!

    Avec l'ensemble de vos réponses j'ai réussi à mettre en place mon historique.
    Je vous remercie tous pour votre retour et vous souhaite une bonne journée.

    A bientôt.
    A+

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

Discussions similaires

  1. champs html en saisie dans popup : firefox
    Par digi12 dans le forum WebDev
    Réponses: 2
    Dernier message: 14/05/2016, 23h29
  2. Réponses: 4
    Dernier message: 15/09/2015, 17h26
  3. Réponses: 20
    Dernier message: 01/04/2011, 08h00
  4. Réponses: 0
    Dernier message: 29/06/2009, 09h49
  5. Réponses: 1
    Dernier message: 05/04/2008, 17h57

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