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 :

Lier des données


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Lier des données
    Bonjour,

    je bloque sur une liaison de fichiers.
    Voici ma fenetre:


    Le poste et la fiche sécurité sont déjà rattachées a l'atelier.
    Au clic du bouton valider ,je souhaite rattacher la fiche sécurité au poste.
    Voici mon code:

    Code :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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    nAteSelect,nPosteSelect,nFicheSelect est un entier
     
     
     
    SI ListeSelect(COMBO_Atelier_2)>0 ET ListeSelect(COMBO_Fiche)>0 ET ListeSelect(COMBO_Poste)>0 ALORS	
     
    	nAteSelect = COMBO_Atelier_2[ListeSelect(COMBO_Atelier_2)]..ValeurMémorisée	
    	HLitRecherchePremier(Fichesécurité, IDAtelier, nAteSelect)
    	SI HTrouve(Atelier)=Vrai ALORS
    		nFicheSelect = COMBO_Fiche[ListeSelect(COMBO_Fiche)]..ValeurMémorisée	
    		HLitRecherchePremier(Fichesécurité,IDFichesécurité,nFicheSelect)
    	FIN
    	SI HTrouve(Fichesécurité) =Vrai ALORS
    		nPosteSelect = COMBO_Poste[ListeSelect(COMBO_Poste)]..ValeurMémorisée	
    		HLitRecherchePremier(Fichesécurité,IDPoste,nPosteSelect)
    	FIN
     
    	SI HTrouve(Fichesécurité)=Vrai ALORS
    						Fichesécurité.IDPoste =nPosteSelect 
    						Fichesécurité.IDAtelier = nAteSelect
    						Fichesécurité.IDFichesécurité=nFicheSelect
    						//EcranVersFichier()
    		HModifie(Fichesécurité)
    		Info("La fiche"+COMBO_Fiche[ListeSelect(COMBO_Fiche)]..ValeurAffichée+"a bien été ajoutée au poste"+...
    		COMBO_Poste[ListeSelect(COMBO_Poste)]..ValeurAffichée+"pour l'atelier"+...
    		COMBO_Atelier_2[ListeSelect(COMBO_Atelier_2)]..ValeurAffichée)	
    	FIN
    SINON
    	Info("Veuillez sélectionnez tous les champs")
    	RETOUR
    FIN		
     
    ExécuteTraitement('FEN_Fiches_sécurité',trtInit)


    Votre aide est la bienvenue.Merci

  2. #2
    Membre chevronné
    Bonjour,
    Avant d'entrer dans le vif du sujet, je voudrais faire quelques remarques.
    Dans un premier temps tes ListeSelect sont inutiles voire déconseillé.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    nAteSelect = COMBO_Atelier_2[ListeSelect(COMBO_Atelier_2)]..ValeurMémorisée

    correspond à
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    nAteSelect = COMBO_Atelier_2


    Dans un deuxième temps, lors de ton HModifie, l'affectation de la PK est inutile (dans le cas d'un ID auto) voire dangereuse dans les autre cas (on risque de "perdre" des relations e.g. changement d'un numéro de châssis). Dans ton code tu veux changer ou affecter un atelier et un poste à une fiche données, i.e. on connait déjà Fichesécurité.IDFichesécurité.

    Enfin, les ExécuteTrairement sont à fuire comme la peste, pour des raisons de test, et de maintenance.
    En général, les champs ne sont là que pour appeler des fonctions/procédures. Que fait cette procédure d'initialisation ?

    En ce qui concerne le problème que tu nous soumets. A priori, ton MLD est incomplet voire erroné. Il nous faut plus d'indication.
    La fiche est-elle propre au poste (de travail ? je suppose) e.g. port des chaussures de sécurité ou à l'atelier e.g. Consigne incendie ?
    Il y a peut être plus simple, mais ça tourne

  3. #3
    Membre éprouvé
    Tout d'abord simplifions un peu ton code
    Code :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
    23
    24
    SI ListeSelect(COMBO_Atelier_2)>0 ET ListeSelect(COMBO_Fiche)>0 ET ListeSelect(COMBO_Poste)>0 ALORS	
    	HLitRecherchePremier(Fichesécurité, IDAtelier, COMBO_Atelier_2)
    	SI HTrouve(Atelier)=Vrai ALORS -->Ici il manque la recherche sur Atelier, tu risques donc de passer dans ce bout de code totalement par hasard
    		HLitRecherchePremier(Fichesécurité,IDFichesécurité,COMBO_Fiche)
    	FIN
    	SI HTrouve(Fichesécurité) =Vrai ALORS
    		HLitRecherchePremier(Fichesécurité,IDPoste,COMBO_Poste)
    	FIN
     
    	SI HTrouve(Fichesécurité)=Vrai ALORS
    		Fichesécurité.IDPoste =nPosteSelect 
    		Fichesécurité.IDAtelier = nAteSelect
    		Fichesécurité.IDFichesécurité=nFicheSelect
    		HModifie(Fichesécurité)
    		Info("La fiche"+COMBO_Fiche..ValeurAffichée+"a bien été ajoutée au poste"+...
    		COMBO_Poste..ValeurAffichée+"pour l'atelier"+...
    		COMBO_Atelier_2..ValeurAffichée)	
    	FIN
    SINON
    	Info("Veuillez sélectionnez tous les champs")
    	RETOUR
    FIN		
     
    ExécuteTraitement('FEN_Fiches_sécurité',trtInit)


    1- On constate que tu vérifies si tu es positionné sur l'enregistrement atelier sans avoir cherché ce fameux atelier. Tu peux donc te retrouver sur le mauvais enregistrement et passer dans ce code.
    SI HTrouve(Atelier)=Vrai ALORS
    HLitRecherchePremier(Fichesécurité,IDFichesécurité,COMBO_Fiche)
    FIN
    2- A priori pour que ta recherche soit juste, il faut que IDFichesécurité = COMBO_Fiche et IDAtelier = COMBO_Atelier_2 et IDPoste = COMBO_Poste. Il te faut donc créer une clé composée dans la table Fichesécurité qui regroupe IDFichesécurité, IDAtelier et IDPoste. De cette manière, tu pourras écrire ta recherche comme ci-après et ce sera beaucoup plus lisible pour toi et pour ceux qui passeront derrière toi.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    SI HLitRecherchePremier(Fichesécurité, CleComposee, [COMBO_Fiche,COMBO_Atelier_2,COMBO_Poste])
    	Code ...
    FIN


    Ca donnerait au final
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SI ListeSelect(COMBO_Atelier_2)>0 ET ListeSelect(COMBO_Fiche)>0 ET ListeSelect(COMBO_Poste)>0 ALORS
    	SI HLitRecherchePremier(Fichesécurité, CleComposee, [COMBO_Fiche,COMBO_Atelier_2,COMBO_Poste])
    		Fichesécurité.IDPoste =nPosteSelect 
    		Fichesécurité.IDAtelier = nAteSelect
    		HModifie(Fichesécurité)
    		Info("La fiche"+COMBO_Fiche..ValeurAffichée+"a bien été ajoutée au poste"+...
    		COMBO_Poste..ValeurAffichée+"pour l'atelier"+...
    		COMBO_Atelier_2..ValeurAffichée)	
    	FIN
    SINON
    	Info("Veuillez sélectionnez tous les champs")
    	RETOUR
    FIN		
     
    ExécuteTraitement('FEN_Fiches_sécurité',trtInit)
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  4. #4
    Membre à l'essai
    Merci pour vos réponses.

    Philouz ca ne fonctionne pas.J'ai compris ton code et je pense qu'il est bon mais je dois avoir une erreur dans mes fichiers de données car ça ne fonctionne pas.Le numéro poste ne change pas.


    J'ai aussi un code créer la fiche sécurité.Elle se crée,se met bien dans l'atelier voulu mais elle se met toujours dans le poste n°8 de la colonne idposte alors que je ne spécifie rien.L'ajout dans le poste ne fais même pas parti du code.pour aider voici des captures des fichiers de données:





    Les enregistrements autre que 8 pour la colonne Idposte sont des ajouts manuels pour test.

    mon code pour l'ajout de la fiche sécurité:

    Code :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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    nAteSelect est un entier
     
    SI ListeSelect(COMBO_Atelier_2)>0 ALORS
    	nAteSelect = COMBO_Atelier_2[ListeSelect(COMBO_Atelier_2)]..ValeurMémorisée	
     
    	SI nAteSelect > 0 ALORS
    		HLitRecherchePremier(Atelier,IDAtelier,nAteSelect)	
    		SI HTrouve(Atelier) ALORS
     
    			HLitRecherchePremier(Fichesécurité,Fichesécurité,SAI_Nom_de_la_fiche)
    			SI HTrouve(Fichesécurité)ALORS
     
    				ToastAffiche("Ce poste existe déjà pour cet atelier",toastLong,cvMilieu,chCentre)
    				RETOUR
    			SINON
     
    				SI PAS HTrouve(Fichesécurité) ALORS
     
    					//EcranVersFichier
    					Fichesécurité.Fichesécurité = SAI_Nom_de_la_fiche
    					Fichesécurité.IDAtelier = nAteSelect				
    					Fichesécurité.Date_de_création=DateHeureSys()
    					HAjoute(Fichesécurité)
    					ToastAffiche(SAI_Nom_de_la_fiche+" a bien été ajouté à "+ nAteSelect,toastLong,cvMilieu,chCentre)
     
    				FIN
    			FIN		
    		FIN
    	FIN
     
     
    FIN
     
    HRAZ(Fichesécurité)
    ExécuteTraitement('FEN_Fiches_sécurité',trtInit)

  5. #5
    Expert éminent
    Bonjour,

    Vérifie tes cardinalités : des (0,1) des 2 côtés, c'es très louche...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Make it real not fantasy.

  6. #6
    Membre à l'essai
    Citation Envoyé par frenchsting Voir le message
    Bonjour,

    Vérifie tes cardinalités : des (0,1) des 2 côtés, c'es très louche...
    Je vais regarder.on dirait que ca garde en memoire le poste 8 et que ca l'y inscrit d'office.

  7. #7
    Expert éminent
    Je parlais de la liaison DonnéesDesUtilisateurs et Atelier. J'ai un doute... Mais je n'ai peut-être pas compris ton modèle.

    Concernant ta valeur "8", je serais toi, je regarderais avec le débogueur lors du remplissage de ta combo, puis lors de la validation de ta fiche quelles sont les valeur "réelles" de ta combo.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Make it real not fantasy.

  8. #8
    Membre à l'essai
    Citation Envoyé par frenchsting Voir le message
    Je parlais de la liaison DonnéesDesUtilisateurs et Atelier. J'ai un doute... Mais je n'ai peut-être pas compris ton modèle.

    Concernant ta valeur "8", je serais toi, je regarderais avec le débogueur lors du remplissage de ta combo, puis lors de la validation de ta fiche quelles sont les valeur "réelles" de ta combo.


    l'idatelier est bon,l'idfichesécurité aussi par contre je ne vois pas pourquoi il me cherche l'idposte et le rattache.Surtout que cet idposte est d'un autre atelier.

  9. #9
    Membre à l'essai
    c'est bon ça fonctionne!!!

    J'ai supprimé la liaison entre le fichier de données atelier et le fichier poste.Ainsi ca me renvoi idposte a 0.

    Et j'ai remis mon code pour la liaison et ca fonctionne .Merci a vous pour votre aide!!!

  10. #10
    Membre éprouvé
    Ce n'est pas ta liaison qui est fausse mais ton HRAZ(Fichesécurité) qui n'est pas fait au bon endroit.

    Lorsque tu veux ajouter un enregistrement, il est indispensable de faire un HRAZ() du fichier afin de vider le buffer de ses données. Ensuite tu peux faire soit un EcranVersFichier() soit affecter les valeurs manuellement et tu n'auras plus de problème d'ajout.

    Tu aurais donc du faire:
    Code :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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    nAteSelect est un entier
     
    SI ListeSelect(COMBO_Atelier_2)>0 ALORS
    	nAteSelect = COMBO_Atelier_2[ListeSelect(COMBO_Atelier_2)]..ValeurMémorisée	
     
    	SI nAteSelect > 0 ALORS
    		HLitRecherchePremier(Atelier,IDAtelier,nAteSelect)	
    		SI HTrouve(Atelier) ALORS
     
    			HLitRecherchePremier(Fichesécurité,Fichesécurité,SAI_Nom_de_la_fiche)
    			SI HTrouve(Fichesécurité)ALORS
     
    				ToastAffiche("Ce poste existe déjà pour cet atelier",toastLong,cvMilieu,chCentre)
    				RETOUR
    			SINON
     
    				SI PAS HTrouve(Fichesécurité) ALORS
    					HRAZ(Fichesécurité)
    					Fichesécurité.Fichesécurité = SAI_Nom_de_la_fiche
    					Fichesécurité.IDAtelier = nAteSelect				
    					Fichesécurité.Date_de_création=DateHeureSys()
    					HAjoute(Fichesécurité)
    					ToastAffiche(SAI_Nom_de_la_fiche+" a bien été ajouté à "+ nAteSelect,toastLong,cvMilieu,chCentre)
     
    				FIN
    			FIN		
    		FIN
    	FIN
    FIN
     
    HRAZ(Fichesécurité)
    ExécuteTraitement('FEN_Fiches_sécurité',trtInit)
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  11. #11
    Membre averti
    Bonjour,

    Pourquoi vous avez prévu pour chaque opérateur : 3 postes alors qu'un seul suffirait ?

  12. #12
    Membre à l'essai
    Citation Envoyé par midou23175 Voir le message
    Bonjour,

    Pourquoi vous avez prévu pour chaque opérateur : 3 postes alors qu'un seul suffirait ?
    Bonjour,

    Je suis débutant et par facilité j'ai fais 3 colonne sur une table avec un fichier vers ecran .
    Mais je pense que je vais finalement faire une table hierarchique comprenant l'opérateur et en déroulé tous les postes qu'il fera

  13. #13
    Membre averti
    Bonjour,

    En voyant la structure du fichier DonnéesDesOpérateur avec 3 rubriques "poste", j'ai compris tout de suite votre besoin :
    mémoriser l'historique des différents postes occupés par un opérateur. Vous vous êtes dit que 3 postes, c'est suffisant.

    Dans le cas contraire, vous ne pouvez pas ajouter le 4ème poste lors d'un renouvellement du contrat (modification de la fiche)
    à moins de modifier le contenu du 3ème poste avec celui du nouveau poste. Mais l'historique sera faussé

    A mon avis, dans le fichier DonnéeDesOpérateur, les 3 rubriques poste1, poste2, poste3 sont à remplacer par la rubrique IDPoste identifiant automatique du fichier Poste, en tant que clé doublon, et donc lors ajout ou modif d'une fiche, c'est le IDPoste du poste sélectionné (combo) qui devrait être affecté à la rubrique Opérateur.IDPoste

    Lorsque le fichier DonnéesDesOpérateur est affiché dans une table fichier :
    c'est vrai la colonne DonnéeDesOpérateur.IDPoste avec des chiffres,ça ne veut rien dire, modifier le type de la colonne en texte et dans le volet liaison, sélectionner liaison multi-fichier (fichier de base "DonnéesDesOpérateur", avec le fichier Poste, au moyen liaison DonnéesDesOpérateur.IDPoste avec Poste.IDPoste et sélectionner la rubrique Poste.Libellé)
    résultat : un identifiant exemple 3 sera affiché en texte Décor

    Pour ce qui est de l'historique, cela devrait s'enregistrer dans un autre fichier à créer : exemple historique des fonctions (postes) avec au minimum rubriques :
    IDDonnéesDesOperateur
    IDPoste
    Date début d'occupation du poste
    Date fin d'occupation du poste

    Quant à l'interface à utiliser pour afficher l'historique, vous avez l'embarras du choix : liste, table ...
    Généralement, l'historique des postes occupés par un agent est nécessaire, lors de l'établissement d'un certificat de travail.

  14. #14
    Membre chevronné
    Citation Envoyé par midou23175 Voir le message

    Généralement, l'historique des postes occupés par un agent est nécessaire
    Il y a une ambiguitéqui n'a toujours pas été levée par dewe64y. Lorsqu'il parle de poste, s'agit-il d'un emploi occupé comme tu sembles de supposer un d'un poste de travail e.g. Fraiseuse de marque X à l'emplacement Y.
    Dans tout les cas de figures il faut en effet une table de relation entre les Tables Opérateurs et Poste. Je lui avais déjà fait cette remarque lors d'un sujet précédent.
    Citation Envoyé par dewe64y Voir le message

    J'ai supprimé la liaison entre le fichier de données atelier et le fichier poste.Ainsi ca me renvoi idposte a 0.
    Si la liaison a été créée, c'est qu'elle est nécessaire, en l’occurrence pour récupérer les postes d'un atelier.
    Ce n'est pas le MLD qui doit s'adapter au code, c'est le contraire.
    Tu viens de dire :

    J'ai demandé à Maurice de faire ça, il m'a fait autre chose, je l'ai tué.
    Le problème est que tu t'étais mal exprimé (mauvais codage) et que Maurice n'avait pas compris ce que tu demandais.
    Il y a peut être plus simple, mais ça tourne

  15. #15
    Membre éprouvé
    A mon avis, dans le fichier DonnéeDesOpérateur, les 3 rubriques poste1, poste2, poste3 sont à remplacer par la rubrique IDPoste identifiant automatique du fichier Poste, en tant que clé doublon, et donc lors ajout ou modif d'une fiche, c'est le IDPoste du poste sélectionné (combo) qui devrait être affecté à la rubrique Opérateur.IDPoste
    En réalité, les rubriques poste1, poste2, poste3 et atelier devraient être remplacées par un fichier de relation "operateur_poste" contenant au minimum le IDOperateur et le IDPoste et éventuellement comme le précise @midou23175 les dates de début et de fin de poste. L'atelier est quant à lui directement lié par le poste.

    Ca simplifie grandement les choses...
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  16. #16
    Membre à l'essai
    Citation Envoyé par midou23175 Voir le message
    Bonjour,

    En voyant la structure du fichier DonnéesDesOpérateur avec 3 rubriques "poste", j'ai compris tout de suite votre besoin :
    mémoriser l'historique des différents postes occupés par un opérateur. Vous vous êtes dit que 3 postes, c'est suffisant.

    Dans le cas contraire, vous ne pouvez pas ajouter le 4ème poste lors d'un renouvellement du contrat (modification de la fiche)
    à moins de modifier le contenu du 3ème poste avec celui du nouveau poste. Mais l'historique sera faussé

    A mon avis, dans le fichier DonnéeDesOpérateur, les 3 rubriques poste1, poste2, poste3 sont à remplacer par la rubrique IDPoste identifiant automatique du fichier Poste, en tant que clé doublon, et donc lors ajout ou modif d'une fiche, c'est le IDPoste du poste sélectionné (combo) qui devrait être affecté à la rubrique Opérateur.IDPoste

    Lorsque le fichier DonnéesDesOpérateur est affiché dans une table fichier :
    c'est vrai la colonne DonnéeDesOpérateur.IDPoste avec des chiffres,ça ne veut rien dire, modifier le type de la colonne en texte et dans le volet liaison, sélectionner liaison multi-fichier (fichier de base "DonnéesDesOpérateur", avec le fichier Poste, au moyen liaison DonnéesDesOpérateur.IDPoste avec Poste.IDPoste et sélectionner la rubrique Poste.Libellé)
    résultat : un identifiant exemple 3 sera affiché en texte Décor

    Pour ce qui est de l'historique, cela devrait s'enregistrer dans un autre fichier à créer : exemple historique des fonctions (postes) avec au minimum rubriques :
    IDDonnéesDesOperateur
    IDPoste
    Date début d'occupation du poste
    Date fin d'occupation du poste

    Quant à l'interface à utiliser pour afficher l'historique, vous avez l'embarras du choix : liste, table ...
    Généralement, l'historique des postes occupés par un agent est nécessaire, lors de l'établissement d'un certificat de travail.
    Vous avez bien résumé ce que je souhaite faire.
    J'ai des interimaires qui travaillent dans un atelier et qui doiventlire et signer des fiches sécurité papier en fonction du poste ou ils sont affectés.On perd beaucoup de temps tous les jours a chercher les fiches sécurités dans les classeurs suivant le poste ou ils doivent aller.Pas evident en pleine prod.

    Le but du projet est de:

    -Créer la fiche opérateur quand il arrive,
    -sélectionner le poste ou les postes auquels il sera affecté pendant sa semaine/mois de mission
    -ouvrir dans une fenetre pdf les fiches sécurité affiliées au poste choisi pour qu'il les lise.
    -une fois les fiches lues je clic sur un bouton qui m'ouvre une fiche de synthèse me montrant toutes les fiches qu'il a lu.Je n'ai plus qu'a l'imprimer et lui faire signer.
    -sa signature donnera la date du jour dans le tableau opérateur car au bout de 3 semaine d'absence,les fiches doivent être resignées.La date de derniere signature apparaîtra en rouge dans le tableau si c'est le cas.


    J'ai bien avancé sur le projet.j'ajoute les postes,les fiches et je fais les liaisons .
    Mais il est vrai que je ne sais pas trop encore comment je vais me représenter l'historique des fiches signées.Peut etre une table.
    J'ai commencé a faire ce que m'a suggéré midou.

  17. #17
    Expert éminent
    Hello,

    A l'arrache, comme ça, je ferais ceci :
    - Remplacement des poste1, poste2, poste3 par id poste dans DonnéesDesOpérateurs
    - Changement de la cardinalité entre DonnéesDesOpérateurs et Atelier. (Note : C'est pour cela que tes cardinalités 0,1 me chiffonnaient)...
    - Ajout d'une cardinalité entre DonnéesDesOpérateurs et Poste.

    A méditer quand même par rapport à ton besoin.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Make it real not fantasy.

  18. #18
    Membre chevronné
    Sauf si cette appli doit être utilisée par les RH (et encore...), la relation Atelier-Opérateur est inutile. Une fois qu'on a le poste de travail, on a l'atelier.
    Qui plus est, elle ne concerne pas le domaine d'étude.
    Il y a peut être plus simple, mais ça tourne

  19. #19
    Membre averti
    Citation Envoyé par Voroltinquo Voir le message
    Sauf si cette appli doit être utilisée par les RH (et encore...), la relation Atelier-Opérateur est inutile. Une fois qu'on a le poste de travail, on a l'atelier.
    Qui plus est, elle ne concerne pas le domaine d'étude.
    Je partage ton avis sur ce point.
    Les fichiers Atelier et Poste dit "Champs de sélection", ont pour rôle principal de remplir (par sélection), les champs du fichier DonnéesDesOpérateur.
    la rubrique DonnéesDesOpérateur.Atelier est à remplacer par IDAtelier
    avec liaison de relation entre fichiers :
    pointe à partir du fichier Poste (origine) vers le fichier DonnéesDesOpérateur (destination) type (0,n) (0,1) clé liaison IDPoste
    pointe à partir du fichier Atelier (origine) vers le fichier DonnéesDesOpérateur (destination) type (0,n) (0,1) clé liaison IDAtelier

    La configuration des fichiers Atelier et Poste, je pense devrait être repensée, car certaines rubriques sont inutiles. En perspective, il y a du pain sur la planche ...

  20. #20
    Membre chevronné
    Citation Envoyé par midou23175 Voir le message

    la rubrique DonnéesDesOpérateur.Atelier est à remplacer par IDAtelier
    Elle n'a même pas de raison d'être dans le domaine

    avec liaison de relation entre fichiers :
    Citation Envoyé par midou23175 Voir le message

    pointe à partir du fichier Poste (origine) vers le fichier DonnéesDesOpérateur (destination) type (0,n) (0,1)
    Un employé peut être affecté à plusieur poste. Donc (0,n)-(0,n) (avec éventuellement la date afin de retrouver l'employé en cas de problème dans la production.) Je pense que tu fais une confusion entre poste (de travail) et emploi (affectation à un poste de travail.)
    Il y a peut être plus simple, mais ça tourne

###raw>template_hook.ano_emploi###