1. 1
Ville de Liège
Ecole de Commerce et d'Informatique
Enseignement de Promotion sociale
Rue Hazinelle 2 - 4000 LIEGE
Matricule : 6.188.038
04/221 37 86
Gestion de la production
de la société
« Gascoigne Melotte »
Travail de fin d'études présenté par
Vitali UDALOV
en vue de l'obtention du diplôme de
Gradué en Informatique
Année académique 2004-2005
2. 2
REMERCIEMENTS
Je tiens à remercier tout d’abord monsieur Jan DERLUYN pour m’avoir permis de
réaliser ce stage au sein de sa société , monsieur Jean-Claude LAHAYE, mon parrain
entreprise, pour le temps et les conseils.
Je tiens également à remercier monsieur Alain BAWIN, mon parrain école, pour sa
disponibilité et son aide de la rédaction de ce travail.
Je remercie aussi tous mes professeurs pour ces trois années de mes études, ainsi pour
m’avoir permis de réaliser avec succès les études dont je rêvais.
3. 3
TABLE DE MATIERE
INTRODUCTION………………………………………………………………...………...p.5
Etude préalable……………………………………………………………………………...p.6
1. Domaine et objectif de l’étude…………………………………………………..………p.6
1.1. Champ de l’étude……………………………………………………………....……..p.6
1.1.1 Contexte du projet…………………………………………………..…………..p.6
1.1.2 Domaine du projet ………………………………………………….…………..p.9
1.1.3 Description du projet……………………………………………..…………….p.10
1.2 Contraintes organiques……………………………………………………………….p.10
1.3 Modalité de déroulement…………………………………………………….……….p.12
1.3.1 Ressources humaines………………………………………………..………….p.12
1.3.2 Contraintes de planning………………………………………………………...p.12
1.3.3 Contraintes de budget…………………………………………………………..p.12
1.3.4 Contrôle et suivi…………………………………………………………..…….p.12
2. Rapport sur l’existant…………………………………………………………………...p.13
2.1 Analyse de flux d’information………………………………………………………...p.13
2.2 Modèle conceptuel des traitements……………………………………………………p.15
2.3 Modèles de données actuelles…………………………………………………………p.16
2.4 Rapport critique de la situation actuelle………………………………………………p.17
Etude détaillée……………………………………………………………………………....p.18
3. Solution proposée………………………………………………………………………...p.18
3.1 Orientations du futur système d’information………………………………………….p.18
3.2 Modèle conceptuel des données………………………………..……………………..p.18
3.2.1 Sous modèle de fabrication…………………………………………………….p.18
3.2.2 Sous modèle des travaux divers………………………………………………..p.19
3.2.3 Sous modèle des travaux divers autres………………………………….……..p.20
3.3 Modèle organisationnel des traitements…………………………………………..…..p.21
3.3.1 Postes de travail………………………………………………………………..p.21
3.3.2 Examen des tâches……………………………………………………………..p.22
3.4 Modèle organisationnel des données………………………………………………….p.22
3.4.1 Choix des données à mémoriser…………………………………………….…p.22
3.4.2 Répartition des données…………………………………………………….….p.22
3.4.3 Sécurité………………………………………………………………………...p.22
3.5 Modèle logique des données…………………………………………………………..p.23
3.5.1 Base de données………………………………………………………………..p.24
3.5.2 Description des tables………………………………………………………….p.24
3.6 Modèle orienté objet……………………………………………………….………….p.29
3.6.1 Diagrammes de cas d’utilisation……………………………………………….p.29
3.6.2 Diagrammes de séquence……………………………………………………...p.31
4. 4
4. Fonctionnalités du logiciel……………………………………………………………….p.32
4.1 Fenêtre principale « Suivi de production » ………………………………………..…p.32
4.2 Ecran « Gestion des opérateurs » …………………………………………………….p.34
4.3 Ecran « Gestion des postes de charge » ……………………………...………………p.35
4.4 Ecran « Contrôle de Production » ……………………………………………………p.36
4.5 Ecran « Contrôle de Montage » ……………………………………………………...p.37
4.6 Ecran « Contrôle des travaux divers » ……………………………………………….p.38
4.7 Barre de navigation…………………………………………………………………...p.39
Liste des applications utilisées……………………………………….……...……………..p.39
CONCLUSIONS…………………………………………………………..……………..…p.40
BIBLIOGRAPHIE……..……………………………………………………………….….p.41
ANNEXE ………………..…………………………………………………………….……p.42
5. 5
INTRODUCTION
Ce travail de mémoire de gradué en informatique a pour but de fournir une application
permettant d’améliorer de la gestion de la production.
La gestion de la production repose essentiellement sur l'utilisation de l'information à
toutes les étapes de la fabrication : prévision, décision, l’exécution et du contrôle. Cette
information est élaborée, traitée, diffusée et stockée au sein du système d’information et de
son infrastructure, le système informatique. Les systèmes d'information occupent aujourd’hui
une place centrale dans la gestion de la production.
Ce projet a comme objectif premier de développer les outils du contrôle qui donnent la
flexibilité quotidienne nécessaire pour réagir aux demandes requis d’atelier de Melotte SA. Il
s’agit de réaliser un programme qui permet de connaître en détail le pointage d’une journée
complète de chaque opérateur pour toutes les opérations.
Cette application doit être développée à l’aide du langage de programmation C#.
De plus cette application doit de se connecter à une base de données MS Access et à en
extraire les données et de les afficher dans un format que l’application peut traiter.
Bonne lecture et merci pour l’attention que vous avez accordé à mon mémoire.
6. 6
ETUDE PREALABLE
1. Domaine et objectif de l’étude
1.1. Champ de l’étude
1.1.1 Contexte du projet
Groupe Gascoigne Melotte
Gascoigne Melotte est un groupe international moderne, avec une forte capacité
d’innovation, un réseau de distribution mondial et une expérience de plus d’un siècle.
Il propose des solutions complètes à des problèmes compliqués dans l’agriculture et dans
l’industrie. Les problèmes sont de nature technique, économique et opérationnelle.
Gascoigne Melotte est le leader en ce qui concerne la conception et le développement des
machines à traire, et dispose d'installations dans plus de 60 pays du monde entier.
A l'origine du développement de Gascoigne Melotte, on trouve deux entreprises familiales :
La "Maison Melotte" d'origine, fondée en 1852, s'est engagée dans l'industrie laitière en
1888, après l'invention de l'écrémeuse Melotte par Jules Melotte, le fils du fondateur de la
compagnie. L'accueil enthousiaste que ce produit reçut dans le monde entier assura le futur de
Melotte dans l'industrie laitière.
La société Gascoigne fut fondée à Reading, en Angleterre, en 1927, par George H.
Gascoigne, et obtint rapidement une bonne réputation dans le domaine de l'équipement de traite
pratique et de qualité. .
Quand Gascoigne et Melotte fusionnèrent, il résulta de l'étendue de l'expérience et des
capacités d'innovation des deux compagnies une ligne de produits sans rivale. .
Aujourd'hui, au début du 21ème siècle, Gascoigne Melotte est toujours en tête, en développant des
méthodes pratiques utilisant la technologie des microprocesseurs pour la ferme, y compris le
système de traite robotisé Zenith entièrement automatisé. .
Avec des usines de fabrication en Belgique et en Allemagne, et des sociétés de distribution en
Hollande, en France, en Belgique, en Allemagne, en Irlande et au Royaume-Uni, Gascoigne
Melotte est le fournisseur idéal d'équipement de traite dans le monde entier. .
Et ceci concerne non seulement les zones traditionnelles d'élevage laitier en Europe, mais aussi
l'Afrique, le Moyen-Orient et l'Extrême-Orient. Gascoigne Melotte participe aux projets de
production alimentaire dans des zones qui, jusqu'à une époque récente, étaient des déserts arides.
L'équipement produit par Gascoigne Melotte permet de traire des vaches, des brebis, des chèvres et
des chameaux. .
Les systèmes de traite Gascoigne Melotte conviennent à toutes les fermes, que le troupeau soit
constitué de deux, ou de deux mille animaux. Les sociétés associées peuvent fournir tout autre
équipement de ferme, des pompes à purin aux citernes, des convoyeurs d'alimentation aux racloirs.
7. 7
Diagramme des activités
Groupe GM
Agriculture Industrie
Production
laitière
Electronique
Manutention
lourde
Sous
traitance
Conseil
Agro
alimentaire
Projet
clé en main
Froid
industriel
Production laitière :
- équipements traite
- des tanks à lait
- des pièces détachées
- silos ;
Electronique :
- gestion du troupeau
- identification automatique
- alimentation
- enregistrement de la production laitière
Conseil :
- étude de projet
- conduite de projet
- planning, service ;
Projet clé en main :
- projets agricoles
- infrastructure et développement rural ;
Manutention lourde :
- bandes transporteuses sur coussins d’ai
- bandes transporteuses traditionnelles
Agro-alimentaire :
- tunnels de cuisson
- industries laitières
Froid industriel :
- systèmes de refroidissement à eau glacé
8. 8
Les différents services opérationnels
Direction de la
production
Direction du
commerce
Direction
administrative et
financière
Directeur
général
Achats et
approvisionnem
ent
Gestion de
production
Fabrication
Comptabilité
Secrétariat
général
Personnel
Service clientèle
commande
Ventes et
commerciaux
Magasin et
expédition
Ordonnancement
Lancement
Montage et
transport
Outillage
Electricité et
électronique
STR
Bureau d' études
des méthodes
Président-Directeur général
Direction de
l'ingénierie
Direction régionale
du commerce
extérieur
Equipements en
aciers inoxydables
Fig. 1.1.1- Organigramme de Gascoigne Melotte
9. 9
Le siège du Groupe GM est situé à Remicourt à Belgique. GM est divisée en cinq
départements supervisés par le directeur général :
- Ingénierie ;
- Commerce extérieur ;
- Administrative et Finances ;
- Production ;
- Commerce.
Les différents services opérationnels sont en organigramme (Fig.1.1.1).
1.1.2 Domaine du projet
Le domaine du projet concerne le Service de production. Il s’occupe de :
Planification
- gestion de la production horaire des opérateurs, génération d’ordres de fabrication,
lancement des ordres de fabrication (vérification de la disponibilité des composants),
analyse des charges par poste et par des ordres de fabrication.
Ordonnancement
- ordonnancement par règles de priorité des ordres de fabrication.
Suivi de production
- sortie des composants, enregistrement des quantités fabriquées (pièces bonnes et rebutées)
et des temps passés, clôture des ordres.
Valorisations
- calcul du coût réel des ordres de fabrication terminés.
Le domaine présente en diagramme (fig.1.1.2).
Mat.prem. Produits
Res.humaines
Equipements
Production
Gestion de fabrication Information
Planification, ordonnancement, suivi de production
Fig. 1.1.2-Diagramme du domaine du projet
10. 10
La gestion de production – c’est la recherche d’une organisation efficace de la production
par la gestion des ressources :
Ressources humaines;
- des opérateurs
Informations
- données statistiques
Équipements
- postes de travail
Matières
- Matières premières, Composants, Stocks
1.1.3 Description du projet
Il faut écrire un programme qui compose de plusieurs outils :
- Outil de contrôle de la production horaire de chaque opérateur pour toutes les
opérations réalisées dans l’atelier afin de comparer leur production à la production
théorique. Ceci permettra de prévenir les dérives et de faire les corrections nécessaires
aussi de mettre en évidence les problèmes d’outillage et donc d’y remédier;
- Outil permettent de connaître en détail le pointage d’une journée complète d’un
opérateur afin de contrôler l’utilisation des différents codes à barres à leur disposition.
(Temps pour le rangement, pour aller chercher le matériel, pour la réalisation des
travaux divers etc.) ;
- Outil de lancement des commandes atelier par ajout d’un point de
réapprovisionnement et ce uniquement pour les pièces du premier niveau
(Transformation de la matière première en pièce) afin d’éviter les ruptures de stock
pour ces pièces mais aussi de commander au bon moment les matières nécessaires. (Si
on a ces pièces en stock, les assemblages peuvent être effectué rapidement et il n’est
donc pas nécessaire de stocker des sous-ensembles.) ;
- Outil de gestion « Charge machine ». Ce permet de connaître les commandes à réaliser
pour chaque poste de travail (ou machine). Ceci indispensable pour une bonne gestion
des commandes atelier. Des informations supplémentaires sont nécessaires : Ajouter le
mois pour lequel doit être fabriquer l’article afin d’éviter de produire une article qui
n’est pas nécessaire tout de suite.
1.2 Contraintes organiques
Actuellement l’environnement de Groupe GM relie deux réseaux Novell et Windows
NT. Ils sont utilisés dans six sites principaux. L’entreprise dispose d’un parc de 176
ordinateurs personnels et 5 serveurs (Fig.1.2.1).
11. 11
AT&T
INTERNET
Denmark Sweden
Germany
Swiss
Ireland
Belgium
Belgium
Netherlands
Netherlands
France
United Kingdom
FIREWALL
Router
Router
Router
Router
Router
Router
Fig.1.2.1 Environnement de Groupe GM
Dans le cas de ce projet, il faut de tenir compte un site – l’atelier de Remicourt
(Fig.1.2.2). L’atelier utilise :
- 6 terminaux de traitement de code barres,
- 17 ordinateurs personnels sous Windows 2000 ; Applications de bureautique (Word,
Excel, Access) ;
- 1 serveur AS/400 sous OS/400 ; Base de données DB/2 ;
- 1 serveur sous Windows 2000 Server; Base de données Access.
Les PC et les terminaux fonctionnent en réseau Ethernet TCP/IP.
Le programme doit être installer au PC du responsable d’atelier, sur plateforme
Windows 2000, Service Pack 4, Framework 1.1.4. Il doit utiliser comme base de données MS
Access 2000.
12. 12
1.3 Modalité de déroulement
1.3.1 Ressources humaines
Le programme a été commandé par la direction de la société « Gascoigne Melotte ».
Comité directeur : Mr. J.DERLUYN, présidant de GM ; Mr. J.BEAUFORT,
informaticien de GM et Mr. V.UDALOV, étudiant en informatique et
responsable de l'étude et du développement du projet.
Comité utilisateurs : Mr. J-C.LAHAYE, responsable d’atelier, Mr. G.FERON, ingénieur.
Groupe du projet : Mr. V.UDALOV, pour l'analyse et la programmation.
1.3.2 Contraintes de planning
- Remise de l'étude préalable : 26 février 2005
- Remise de l'étude détaillée : 15 avril 2005
- Remise de l’étude technique : 30 avril 2005
- Approbation finale du projet : 01 juin 2005
- Version bêta et essais par les utilisateurs : 08 juin 2005
- Remise du mémoire : 15 juin 2005
- Livraison du programme : 22 juin 2005.
1.3.3 Contraintes de budget
Il n'y a aucune contrainte de budget car cette étude est le résultat d’un mémoire et donc
ne peut être subsidié par des personnes ou des entreprises.
1.3.4 Contrôle et suivi
Le projet est réalisé sous la guidance de deux parrains : interne - Mr. A.BAWIN et
externe -Mr. J-C.LAHAYE.
13. 13
2. Rapport sur l’existant
2.1 Analyse de flux d’information
Le domaine entre en relation avec les autres. Les relations entre les domaines présenter en
diagramme (Fig.2.1.1). Dans le diagramme, on a ajouté quelques flux, qui ne concernent pas
directement le domaine du projet, mais permettent de comprendre la structure du système de
production et de gestion.
Direction Sa rôle est détermination des charges sur les ressources globales par
d’information statistique.
Plan de Production Programme de production à moyen terme (6 – 12 mois) qui fixe les
quantités qui devraient être produites. Le plan inclut des moyens de
production, des ressources et des périodes de fabrication.
Poste de travail Les moyens de production de l'entreprise. Un poste de travail peut
représenter :
- Machine particulière
- Ligne de fabrication
- Groupe de machines
On distingue deux types de postes de charge :
- Postes de charge qui se compose d'une ou plusieurs machines pour
lesquels le calcul du temps presté peux effectuer
- Postes de charge pour lesquels le calcul du temps presté ne peux pas
effectuer et doit être calculé manuellement.
Ordonnancement Opération qui consiste à définir la priorité des ordres de fabrication ou
des commandes sur les différents postes de travail d'un atelier.
Ordre Document donnant instruction à la fabrication de produire.
Fabrication Processus de fabrication des articles, c'est-à-dire la succession des
opérations ou phases à réaliser pour fabriquer un article. Une phase se
déroule sur un poste de charge. Ils incluent des cycles de fabrication.
Le cycle, c’est l'intervalle de temps nécessaire entre la date de
lancement et la date d'entrée en stock de produits finis ou la date de
livraison. C'est la somme des temps de préparation et réglage, des
temps opératoires, des temps d'attente etc.
Article Terme générique qui permet de définir tous les éléments achetés (matière,
fourniture,…), transformés (semi-ouvré, sous-ensemble, produit fini),
vendus (produit fini, négoce,…).
Vérification Il doit se faire en cohérence avec l'ordonnancement et après s'être assuré
que les matières, composants et outillages sont disponibles.
15. 15
2.2 Modèle conceptuel des traitements
Au début d’une période de travail (Exemple : une semaine), un responsable d’atelier
reçoit des ordres de fabrication (Mode opératoire de fabrication). Les dates limites des
périodes sont entrées dans un plan de production (Rôle de direction).
Le service de Commerce vérifie les statuts de composants (Exemple : DISP -disponible,
REFA - réservé à la fabrication, ENC - en cours de fabrication). La vérification permet
d’éviter les ruptures de stock par l’ordonnancement des opérations de fabrication qui doivent
permettre de satisfaire les ventes. Une fois que les ordres sont ordonnancés, il est possible de
passer à la phase de lancement de certains ordres en fabrication (à condition que les matières
et composants nécessaires soient disponibles).
Apres la vérification (à condition – positive, si négatif – passer OF à la file d'attente) le
responsable donne un ordre de fabrication au opérateur. L’opérateur doit pointer le début de
travail.
Le responsable d’atelier doit contrôler de la production de chaque opérateur pour toutes
les opérations (Fabrication). A la fin d’une période de travail, le responsable d’atelier doit
envoyer un rapport à la direction (OF lancé/clôturé, quantité, productivité).
OF – Ordre de fabrication
A et B
Composants disponibles Composants indisponible
Verification
PasserFile
LancerOF
EmisisonOF
Direction
D et C
OK Rebut
Fabrication
PointeDebut
D C
ClôrureOF Retouche
A B
Atelier
Service
Commerce
Service
Commerce
Ordonnancer
Fig.2.2 MCT
16. 16
2.3 Modèles de données actuelles
Une base de données existante compose de deux tables. Ces tables sont récupérées de
l’AS/400 et injectées dans MS Access via ODBC.
Cette base est placée sur le PC du responsable d’atelier. Le traitement sur le PC se limite
essentiellement à la validation les informations.
17. 17
2.4 Rapport critique de la situation actuelle
La gestion de la production se déroule sur quatre horizons :
- Horizon à long terme, c'est un horizon de 12 à 18 mois. A ce niveau, on détermine les
grands équilibres de charge.
- Horizon à moyen terme, de quelques mois, sur lequel on effectue le calcul des besoins
pour passer les commandes aux fournisseurs ; on vérifie également que la charge est
compatible avec la capacité.
- Horizon de court terme, de quelques semaines, sur lequel on effectue un planning
précis des fabrications prévues ; on peut encore ajuster la capacité main-d'oeuvre.
- Horizon de très court terme, une semaine en général, sur lequel on lance les
fabrications
Deux derniers horizons, ce sont les décisions opérationnelles pour des ordres de fabrication,
l’activité opérateurs et l’état de stock.
Actuellement, la direction détermine un programme de production à moyen terme (6 –
12 mois). Ce programme inclut des moyens de production, des ressources et des périodes de
fabrication. Mais, il n’y a pas les outils qui donnent la flexibilité quotidienne nécessaire pour
réagir aux demandes : pannes, absence, urgence, problèmes d’outillage, réalisation des
travaux divers etc.
La situation actuelle ne permet pas de connaître l'état de l'ordre de fabrication lancé à
tout moment.
De manière évidente, la création d’un programme de contrôle de production permettrait
le responsable d’atelier de faire les corrections nécessaires, reprenant les dernières données
connues.
18. 18
ETUDE DETAILLEE
3. Solution proposée
3.1 Orientations du futur système d’information
Le projet va tenter de résoudre des problèmes dans la gestion de production quotidienne :
- gestion des opérateurs
- gestion des postes de charge
- contrôle l’utilisation des différents codes à barres
- contrôle de la production horaire et la correction nécessaire
- gestion des ordres de fabrication de court terme (quelques semaines) et de très court
terme (une semaine en général)
3.2 Modèle conceptuel des données
Le modèle de production étant relativement complexe, je présente les entités et les
associations utilisées dans des sous modèles
Il y a trois différents situations :
- fabriquer des articles (Production, Montage)
- réaliser des travaux divers
- faire des travaux divers autres
3.2.1 Sous modèle de fabrication
Commande - Document donnant instruction à la fabrication de produire dans un délai fixé,
une quantité donnée d'un article (Mode opératoire de fabrication).
Ordre - Opération de la production ou de la réglage de la machine.
Opérateur - Personne qui doit faire des travaux. Pour suivre l'activité de la main-d'oeuvre,
on doit indiquer le code de l'opérateur dans les déclarations de production.
Retouche - Lorsque l'on déclare des pièces rebutées lors des déclarations de production, on
doit indiquer un code de cause de rebut. Cela permet d'établir des statistiques
de causes de rebut.
Article - Produits finis,
ClassPrior - Le code classe ABC permet de classer les commandes par leur priorité (Définir
dans le plan production)
Client - Promoteur de la commande
Comporter - Commande porte sur une ou plusieurs opérations.
Fabriquer - C'est l'intervalle de temps d’occupation pour chaque opération (temps de
préparation et réglage - Setup ou temps opératoires - Production).
19. 19
Un code Setup/Production doit être indiqué pour toutes les déclarations de
production.
Ordre
NoOrd
Descr
ProHor
TpMont
QntAprod
Commande
NoCmd
DateEms
Opérateur
NoMatr
Nom
Statut
Effectuer
DateTR
Comporter
NbrOper
Fabriquer
Début
Fin
Temps
SetProd
Clôt
Qnt
1,N
1,N
1,N 1,1
1,1
1,N
Article
NoArt
Libellé
Lg
La
Ht
PBrut
PNet
Composer
Qunté
0,N
1,N
Client
IdClient
Libellé
Appartenir1,N
1,1
Retouche
IdRet
Libellé
Faire
Début
Fin
Temps
0,N
0,1
ClassPrior
IdPrior
Libellé
Lier
1,N1,1
Fig.3.2.1 MCD - fabrication
3.2.2 Sous modèle des travaux divers
TravDiv - Travaux divers, on peut dire les ordres de travail non ordonnancés.
Réaliser - Temps de la réalisation de travail
Responsable - Le gestionnaire est la personne responsable de la gestion des travaux divers.
A chaque opération de travail divers est associé un code Responsable qui
doit figurer dans cette table.
21. 21
3.3 Modèle Organisationnel des Traitements
Période Direction Service Commerce Atelier Type
Manuel
Manuel
A et B
Dispon Indispon
Verification
Emission
OF
Passer
Fille
Lancer
OF
D et C
OK Rebut
Fabrication
Pointer
Debut
Clôture
OF
Retouche
Ordonnancer
Fig.3.2.3 MOT
3.3.1 Postes de travail
Il existe un seul poste de travail situé dans le bureau d’un responsable d’atelier, ce poste
permettra de réaliser toutes les tâches.
22. 22
3.3.2 Examen des tâches
La tâche est connaître en détail le pointage d’une journée complète pour chaque
opérateur.
On peut diviser cette tâche globale par :
1. Contrôle de Production
2. Contrôle de Montage
3. Contrôle des travaux divers
3.4 Modèle Organisationnel des Données
3.4.1 Choix des données à mémoriser
Le MCD présente toutes les entités nécessaires et aucune d’elles ne semble susceptible
de devoir être écartée.
3.4.2 Répartition des données
Car que le programme sera installé sur une seule machine, il n'y aura pas de répartition
des données sur d'autres machines.
3.4.3 Sécurité
Car le programme sera installé sur le PC du responsable d’atelier, il est la seule personne
qui a l'accès à la gestion de production. Afin de manipuler des données l’utilisateur doit
autoriser.
23. 23
3.5 Modèle logique des données
ORDRE_COMMANDE
ORDRE_FABRIQUE
FABRIQUE_MATRICUL
COMMANDE_EFFECTUE
EFFECTUE_MATRICUL
REALISER_MATRICUL
TRAVDIV_REALISER
COMMANDE_INCLURE
INCLURE_TDA
ORDRE_POSTETRA
COMPOSER_ARTICLE
COMMANDE_COMPOSER
ARTICLE_MODELE
UTILISER_OUTILLAG
ORDRE_UTILISER
RESPONSA_TRAVDIV
RETOUCHE_FAIRE
FAIRE_COMMANDE
Commande
NoCmd
DateEms
INT
DATE
<pk>
Ordre
NoOrd
NoCmd
NoMach
Mutat
NuSer
Libellé
PodHor
TpMont
QntAprod
INT
INT
TEXT
TEXT
INT
TEXT
DOUBLE
DOUBLE
DOUBLE
<pk>
<fk1>
<fk2>
Matricule
NoMatric
Nom
Statut
INT
TEXT
TEXT
<pk>
Fabriquer
NoOrd
NoMatric
Debut
Fin
Temps
Qunté
SP
Clot
INT
INT
DATETIME
DATETIME
DOUBLE
INT
TEXT
TEXT
<fk1>
<fk2>
Effectuer
NoCmd
NoMatric
DateTrv
INT
INT
DATE
<fk1>
<fk2>
Realiser
NoMatric
NoTD
Debut
Fin
Temps
INT
INT
DATETIME
DATETIME
DOUBLE
TravDiv
NoTD
IdRes
Libellé
INT
TEXT
TEXT
<pk>
<fk>
Inclure
NoCmd
NoTDA
Debut
Fin
T
INT
INT
DATETIME
DATETIME
DOUBLE
TDA
NoTDA
Libellé
INT
TEXT
<pk>
PosteTrav
NoMach
Libellé
Section
TEXT
TEXT
TEXT
<pk>
Composer
NoArt
NoCmd
Quanté
TEXT
INT
DOUBLE
<fk1>
<fk2>
Article
NoArt
NoMod
Libellé
LG
LA
HT
PBrut
PNet
TEXT
INT
TEXT
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
<pk>
<fk>
Modele
NoMod
Libellé
INT
TEXT
<pk>
Outillage
NoOutls
Libellé
TEXT
TEXT
<pk>
Utiliser
NoOutls
NoOrd
TEXT
INT
<fk1>
<fk2>
Retouche
NoRet
Libellé
INT
TEXT
<pk>
Faire
NoRet
NoCmd
Debut
Fin
Temps
INT
INT
DATETIME
DATETIME
DOUBLE
<fk1>
<fk2>
Responsable
IdRes
Nom
TEXT
TEXT
<pk>
24. 24
3.5.1 Base de données
Pour créer la base de données j’ai utilisé le script VBA (Voir Annexe).
Fig.7.1 Base de données
3.9.2. Description des tables
La base des données a créée en Microsoft Access 2000.
Table : Matricule
Elle regroupe les données des opérateurs qui travaillent dans l’atelier
Champ Donnée Clé Type Taille
NOMATR Numéro de badge Primary Numérique
NOM Nom et prénom Texte 30
STATUT Type de contrat Texte 16
25. 25
Table : Commande
Elle regroupe les informations des commandes de fabrication. La référence client est reprise
ici comme clé étrangère.
Champ Donnée Clé Type Taille
NOCMD N° de commande Primary Numérique
IDCLIENT Identif. du client Foreign Numérique
IDPRIOR Priorité Foreign Texte 1
DATEEMISS Date document Date
Table : Jobordre
Qui regroupe les caractéristiques de l’opération
Champ Donnée Clé Type Taille
NORDRE N° opération Primary Numérique
NOCMD N° commande Foreign Numérique
NOMACH N° machine Foreign Texte 6
MUTAT Mutation machines Texte 6
NUSER Nbr opérations Numérique
DESCROPER Description Texte 30
PROHOR Production horaire Numérique
TPMONT Temps montage Numérique
QNTEAPROD Quantité à produire Numérique
Table : Article
Qui regroupe les informations sur les articles.
Champ Donnée Clé Type Taille
NOART N° d’article Primary Texte 7
IDSITE N° de place Foreign Texte 8
IDMOD N° de modèle Foreign Numérique
LIBELLE Description Texte 30
LG Long Numérique
LA Large Numérique
HT Haut Numérique
PBRUT Poids brut Numérique
PNET Poids net Numérique
Table : PosteCharge
Qui regroupe les informations sur les machines. Touts les postes rattachés à la même section
auront donc les mêmes taux horaires.
Champ Donnée Clé Type Taille
NOMACH N° de machine Primary Texte 6
LIBELLE Description Texte 30
SECTION Nom section Texte 16
Table : TDA
Qui regroupe les informations sur les travaux divers autres
Champ Donnée Clé Type Taille
NOTDA N° opération Primary Numérique
DESCR Description Texte 30
26. 26
Table : TravDiv
Qui regroupe les caractéristiques des ordres de travail non ordonnancés
Champ Donnée Clé Type Taille
NOTD N° opération Primary Numérique
IDRES Responsable Foreign Texte 3
DESCR Description Texte 30
Table : Retouche
Elle regroupe les informations sur les retouches
Champ Donnée Clé Type Taille
CODERET Code retouche Primary Numérique
DESCR Description Texte 30
Table : Responsable
Table des gestionnaires qui sont des responsables de la gestion des travaux divers.
Champ Donnée Clé Type Taille
IDRES Texte 3
NOM Texte 30
Table : Pointage
Qui regroupe les informations sur Entrée/Sortie pour chaque opérateur
Champ Donnée Clé Type Taille
NOMATRIC N° badge Foreign Numérique
DEBUT Entrée Date/Heure
FIN Sortie Date/Heure
TEMPS Temps total, avec
les pauses
Numérique
Table : Client
Champ Donnée Clé Type Taille
IDCLIENT Identif. promoteur Primary Numérique
LIBELLE Nom Texte 30
Table : ClassPrior
Les informations sur la priorité de commande
Champ Donnée Clé Type Taille
IDPRIOR Identif. priorité Primary Texte 1
LIBELLE Description Texte 20
Table : Modele
Elle regroupe les informations sur les modèles (Ensemble des articles).
Champ Donnée Clé Type Taille
IDMOD Identif. modèle Primary Numérique
DESIGN Description Texte 30
27. 27
Table : Outillage
Elle regroupe les caractéristiques d’outil
Champ Donnée Clé Type Taille
IDOUTIL Identif. outil Primary Texte 6
LIBELLE Description Texte 30
Table : Radar
Lieu de stockage d’article
Champ Donnée Clé Type Taille
IDSITE Id place Primary Texte 8
LIBELLE Description Texte 30
Table : Composer
Qui permet de faire le lien entre la commande et les articles à produire
Champ Donnée Clé Type Taille
NOART N° article Foreign Texte 7
NOCMD N° commande Foreign Numérique
QNTE Quantité à produire Numérique
Table : Effectuer
Qui permet de faire le lien entre l’opérateur et les commandes de production
Champ Donnée Clé Type Taille
NOCMD N° commande Foreign Numérique
NOMATRIC N° badge Foreign Numérique
DATETR Date travail Date
Table : Fabriquer
Qui permet de faire le lien entre l’opérateur et les ordres de fabrication. Savoir le temps
chaque opération et la quantité a produire. Indiquer l’opération de production ou de réglage
aussi clôturer l’ordre de fabrication.
Champ Donnée Clé Type Taille
NOMATRIC N° badge Foreign Numérique
NORDRE N° ordre Foreign Numérique
DEBUT Début opération Date/Heure
FIN Fin opération Date/Heure
TEMPS Durée opération Numérique
QNTPROD Quantité produite Numérique
CODESP Setup/Production Texte 1
CODECLOT Clôture Texte 1
28. 28
Table : Faire
Qui permet de faire le lien entre la commande et la retouche.
Champ Donnée Clé Type Taille
CODERET Code retouche Foreign Numérique
NOCMD N° commande Foreign Numérique
DEBUT Début retouche Date/Heure
FIN Fin retouche Date/Heure
TEMPS Durée retouche Numérique
Table : Inclure
Qui permet de faire le lien entre la commande et les travaux divers spécieux. Calculer la durée
de travail.
Champ Donnée Clé Type Taille
NOTDA N° opération Foreign Numérique
NOCMD N° commande Foreign Numérique
DEBUT Début opération Date/Heure
FIN Fin opération Date/Heure
TEMPS Temps presté Numérique
Table : Produire
Qui permet de faire le lien entre l’opération et la quantité produite chaque article
Champ Donnée Clé Type Taille
NOART N° article Foreign Texte 7
NOTD N° opération Foreign Numérique
QNTE Quantité produite Numérique
Table : Realiser
Qui permet de faire le lien entre l’opération de travail divers et l’opérateur et savoir le temps
de travail
Champ Donnée Clé Type Taille
NOTD N° opération Foreign Numérique
NOMATRIC N° badge Foreign Numérique
DEBUT Début opération Date/Heure
FIN Fin opération Date/Heure
TEMPS Temps presté Numérique
Table : Utiliser
Qui permet de faire le lien entre l’ordre de fabrication et les outils de travail
Champ Donnée Clé Type Taille
NORDRE N° opération Foreign Numérique
IDOUTIL Id outil Foreign Texte 6
29. 29
3.6 Modèle orienté objet
3.6.1 Diagrammes de cas d’utilisation
Responsable
Ajouter opérateur
Modifier opérateur
Supprimer opérateur
Verifier matricule
Fig.3.6.1 Use case – Gestion des opérateurs
L’utilisateur veut ajouter, modifier ou supprimer des données de l’opérateur. Il doit
choisir le nom de l’opérateur.
Responsable
Modifier charge machine
Calculer charge
Verifier numéro
Donner période
Fig.3.6.2 Use case – Gestion des postes de travail
Si l’utilisateur veut modifier ou fichier Charge machine, il doit choisir le numéro d’une
machine. Il peut de calculer le temps de travail pour chaque machine.
30. 30
Responsable
Contrôler production
Contrôler montage
Contrôler TD
Calculer temps presté
Calculer productivité
Répartir temps
Classer par numéro
Fig.3.6.3 Use case – Suivi de production
L’utilisateur peut connaître toutes les opérations de production et de montage lancé dans
l’atelier, comparer la productivité réelle par la productivité théorique, savoir le temps pour
réalisation des travaux divers.
31. 31
3.6.2 Diagrammes de séquence
Lancer programme
Demande données
Envoi données
Afficher renseignements
Traiter données
Demande liste opérateurs
Ajouter données
Sauvegarder données
Enregistrer données
Quitter
Demande liste opérateurs
Affiche liste opérateurs
Verification données requis
Affiche message
Suivi production
Utilisateur
Base Données Gestion opérateur
Fig.3.6.2 Consulter le pointage global et ajouter des opérateurs
L’utilisateur lance le programme, le programme envoie des requêtes vers la base de
données et après la réception les informations, on les traite et affiche le résultat dans l’écran.
Si l’utilisateur veut ajouter des données d’un opérateur, il demande une liste des
opérateurs, il ajoute des données, il valide l’enregistrement. Le programme doit vérifier des
données introduites et l’affiche un message (ok ou erreur) et après la confirmation
d’utilisateur, on envoie ces données vers la base de données.
32. 32
4. Fonctionnalités du logiciel
4.1 Fenêtre principale « Suivi de production »
Suivi de production, il s’agit de contrôle quotidien :
- Calculer le temps total pour toute l’atelier
- Calculer le temps total et le pourcentage pour toutes les opérations de production
- Calculer le temps total et le pourcentage pour toutes les opérations de montage
- Calculer le temps total et le pourcentage pour touts les travaux divers
- Répartir le temps des travaux divers par : TDS (Travaux divers spécieux), TDA
(Travaux divers autres), Retouche
- Trier ces données par la date de travail
Problèmes :
1. Les données sont envoyées vers le serveur par les différents types de transaction:
- Temps presté sans le décompte des pauses
- Temps presté avec décompte des pauses
Il faut calculer le temps total sans pauses.
2. Il y a les situations : Job multiple et Montage commun, quand l’opérateur utilise deux
machine au même temps. On doit de faire la répartition du temps, si un des jobs
33. 33
multiples n'est pas complet (temps presté=0), aucun calcul de répartition n'est pas
possible
3. Pour plusieurs postes de charge, le temps presté est calculé sur base de la quantité
introduite multipliée par la production horaire. C'est-à-dire il y a des situations quand
l’opérateur n'a pas été pointé le début du travail.
Pour éliminer les temps des pauses et gérer des erreurs d’enregistrements, j’ai fait deux
fonctions en Visual Basic (contrôle dans une base de données) :
Option Compare Database
'==================================================================
' Fonction permettant éliminer des temps de pause
' Author Vitali UDALOV
'==================================================================
Public Function EliminerPauses(DEBUT As Variant, FIN As Variant, Temp As Double) As
Double
Dim TimeVar As Double
Const Debut1Pause = #9:00:00 AM#
Const Fin1Pause = #9:12:00 AM#
Const Debut2Pause = #12:00:00 PM#
Const Fin2Pause = #12:30:00 PM#
Const p1 = 0.2
Const p2 = 0.5
If IsNull(FIN) Then
EliminerPauses = 0
Exit Function
End If
If IsEmpty(FIN) Then
EliminerPauses = 0
Exit Function
End If
If (Format(DEBUT, "hh:nn:ss") < Debut1Pause And Format(FIN, "hh:nn:ss") >
Fin2Pause) Then
TimeVar = Temp - p1 - p2
ElseIf ((Format(DEBUT, "hh:nn:ss") < Debut1Pause) And (Format(FIN, "hh:nn:ss") >
Fin1Pause And _
Format(FIN, "hh:nn:ss") < Debut2Pause)) Then
TimeVar = Temp - p1
ElseIf ((Format(DEBUT, "hh:nn:ss") > Debut1Pause And Format(DEBUT, "hh:nn:ss") <
Debut2Pause) And _
Format(FIN, "hh:nn:ss") > Fin2Pause) Then
TimeVar = Temp - p2
Else
TimeVar = Temp
End If
EliminerPauses = TimeVar
End Function
34. 34
Requête pour avoir le temps total de production :
SELECT Sum(Fabriquer.TEMPS) AS SommeDeTEMPS
FROM (Commande INNER JOIN Jobordre ON Commande.NOCMD = Jobordre.NOCMD)
INNER JOIN Fabriquer ON Jobordre.NORDRE = Fabriquer.NORDRE
WHERE (((Fabriquer.DEBUT)>Date()-1 AND (Fabriquer.DEBUT)<Date()) AND
((Fabriquer.FIN) Is Not Null) AND ((Fabriquer.CODESP)<>"S") AND
((Commande.NOCMD)<>95007000));
Requête pour avoir le temps total de montage :
SELECT Sum(Fabriquer.TEMPS) AS SommeDeTEMPS
FROM (Commande INNER JOIN Jobordre ON Commande.NOCMD = Jobordre.NOCMD)
INNER JOIN Fabriquer ON Jobordre.NORDRE = Fabriquer.NORDRE
WHERE (((Fabriquer.DEBUT)>Date()-1 AND (Fabriquer.DEBUT)<Date()) AND
((Fabriquer.FIN) Is Not Null) AND ((Fabriquer.CODESP)<>"P") AND
((Commande.NOCMD)<>95007000));
Requête pour avoir le temps total des travaux divers :
SELECT Sum(Realiser.TEMPS) AS TempsDeTD
FROM Realiser WHERE (((Realiser.DEBUT)>Date()-1 AND (Realiser.DEBUT)<Date())
AND ((Realiser.FIN) Is Not Null));
Requête pour avoir le temps total des travaux divers autres:
SELECT Sum(Inclure.TEMPS) AS TempsDeTDA
FROM Inclure
WHERE (((Inclure.DEBUT)>Date()-1 AND (Inclure.DEBUT)<Date()) AND ((Inclure.FIN)
Is Not Null));
Requête pour avoir le temps total des travaux divers spécieux:
SELECT Sum(Fabriquer.TEMPS) AS TempsDeTDS
FROM (Commande INNER JOIN Jobordre ON Commande.NOCMD = Jobordre.NOCMD)
INNER JOIN (Matricule INNER JOIN Fabriquer ON Matricule.NOMATRIC =
Fabriquer.NOMATRIC) ON Jobordre.NORDRE = Fabriquer.NORDRE
WHERE (((Fabriquer.DEBUT)>Date()-1 AND (Fabriquer.DEBUT)<Date()) AND
((Fabriquer.FIN)<> Is Not Null) AND ((Commande.NOCMD) = 95007000));
4.2 Ecran « Gestion des opérateurs »
Tous les champs d’éditions ont été remplis par des données de l’opérateur reprises de la base
de données. Certains champs peuvent être vides.
Gestion des opérateurs
- ajouter, modifier et supprimer l’opérateur, la validation n’est faite que si les champs
Matricule et Nom ont été remplis.
36. 36
Gestion des machines
- ajouter, modifier et supprimer la poste de travail, la validation n’est faite que si le
champ Code Poste a été rempli
- calculer les frais pour chaque poste de travail, il faut choisir la période de travail, et
les enregistre dans un fichier.
4.4 Ecran « Contrôle de Production »
Contrôle de production, suivi des ordres de fabrication lancés
- Calculer la durée de l’opération
- Si l’ordre de fabrication clôturé, calculer le pourcentage
- Si la quantité n'a pas été pointée, corriger la quantité en consultant le fichier résultat de
travail
- Trier par la date
Problèmes :
1. La durée d’une opération est varié de ‘minute’ à ‘mois’. Il faut chercher les données :
temps et quantité, pour une même opération
2. Il faut éliminer le temps des pauses
37. 37
Requête pour afficher des opérations de production:
SELECT Matricule.NOMATRIC, Matricule.NOM, Commande.NOCMD,
Jobordre.NORDRE, Jobordre.DESCROPER, Article.NOART, Article.LIBELLE,
Fabriquer.DEBUT, Fabriquer.FIN, Fabriquer.TEMPS, Jobordre.PROHOR,
Jobordre.QNTEAPROD, Fabriquer.QNTPROD, Fabriquer.CODECLOT
FROM Article INNER JOIN (((Commande INNER JOIN Jobordre ON Commande.NOCMD
= Jobordre.NOCMD) INNER JOIN (Matricule INNER JOIN Fabriquer ON
Matricule.NOMATRIC = Fabriquer.NOMATRIC) ON Jobordre.NORDRE =
Fabriquer.NORDRE) INNER JOIN Composer ON Commande.NOCMD =
Composer.NOCMD) ON Article.NOART = Composer.NOART
WHERE (((Commande.NOCMD)<>95007000) AND ((Fabriquer.CODESP)<>"S") AND
((Fabriquer.CODECLOT)="C"))
ORDER BY Matricule.NOM, Fabriquer.DEBUT DESC;
4.4 Ecran « Contrôle de Montage »
Contrôle de montage, suivi des ordres de réglage machine lancés
- Calculer la durée de l’opération
- Si l’ordre de fabrication clôturé, calculer le pourcentage
- Trier par la date
38. 38
Requête pour afficher des opérations de montage:
SELECT Matricule.NOMATRIC, Matricule.NOM, Commande.NOCMD, Jobordre.NORDRE,
Jobordre.DESCROPER, Article.NOART, Article.LIBELLE, Fabriquer.DEBUT, Fabriquer.FIN,
Fabriquer.TEMPS, Jobordre.TPMONT, Fabriquer.CODECLOT
FROM Article INNER JOIN (((Commande INNER JOIN Jobordre ON Commande.NOCMD =
Jobordre.NOCMD) INNER JOIN (Matricule INNER JOIN Fabriquer ON Matricule.NOMATRIC
= Fabriquer.NOMATRIC) ON Jobordre.NORDRE = Fabriquer.NORDRE) INNER JOIN
Composer ON Commande.NOCMD = Composer.NOCMD) ON Article.NOART =
Composer.NOART
WHERE (((Commande.NOCMD)<>95007000) AND ((Fabriquer.CODESP)<>"P") AND
((Fabriquer.CODECLOT)="C"))
ORDER BY Matricule.NOM, Fabriquer.DEBUT DESC;
4.5 Ecran « Contrôle des travaux divers »
Contrôle des travaux divers
- Calculer la durée de l’opération
- Trier par la date
Requête pour afficher des informations des travaux divers:
SELECT Matricule.NOMATRIC, Matricule.NOM, TravDiv.NOTD, TravDiv.DESCR,
Realiser.DEBUT, Realiser.FIN, Realiser.TEMPS
FROM TravDiv INNER JOIN (Matricule INNER JOIN Realiser ON Matricule.NOMATRIC =
Realiser.NOMATRIC) ON TravDiv.NOTD = Realiser.NOTD
WHERE (((Realiser.FIN) Is Not Null))
ORDER BY Matricule.NOM, Realiser.DEBUT DESC;
39. 39
4.7 Barre de navigation
Il s’agit d’un composant utilisateur qui implémente l’ensemble des techniques de
navigation. Il m’évitera de réécrire systématiquement les mêmes méthodes.
Que fait ce composant :
- Il encapsule les problèmes de navigation et d’édition des données.
- Il permet d’appeler automatiquement une fonction lors de l’ajout d’un enregistrement
ou du déplacement dans le jeu d’enregistrements
- Il fournit un accès à l’enregistrement en cours
- Il facilite la mise à jour de la base de données en fournissant une méthode statique
- Il met en place la gestion des éventuelles erreurs lors de la modification des données.
Si on clique sur le premier bouton en partant de la gauche
- On se positionne sur le premier élément de la table
Si on clique sur le deuxième bouton en partant de la gauche
- On se positionne sur l’élément précèdent de la table
Si on clique sur le troisième bouton en partant de la gauche
- On se positionne sur l’élément suivant de la table
Si on clique sur le quatrième bouton en partant de la gauche
- On se positionne sur l’élément dernier de la table
Si on clique sur Valider :
- Vérification si les champs requis ont bien été remplis. Si non, un message d’erreur s’affiche
- Si OK, le système vérifie que l’id n’existe pas encore. Si existe un message d’erreur
s’affiche, sinon il y a sauvegarde des données
- On rafraîchit la table pour que le nouvel élément soit repris dans la liste
Si on clique sur Annuler :
- Annuler toutes les modifications
Liste des applications utilisées
- SmartDraw 7.01 - Logiciel graphique pour la création des diagrammes
- PowerAMC 9.0 - Outil de modélisation graphique
- CASE Studio 2 - Outil de modélisation de base de données
- Microsoft Word 2000 – Editeur de texte
- PDFEdit v7.1 - Editeur pdf
- Microsoft Visual Studio .NET 2003 - Outils de développement
- Dacris NetXP - Outil pour améliorer l'interface utilisateur de leurs applications
- Microsoft Access 2000 - Gestionnaire de bases de données
40. 40
CONCLUSIONS
L’objectif de ce travail a été atteint. Le programme de suivi de production embarqué
fonctionne. Ça donne les avantages pour d’organiser la production efficace.
Il n’a pas encore été testé dans une situation réelle, ce qui demanderait probablement
quelques modifications mineures spécifiques au type d’utilisation.
Ce programme est un module d’ensemble d’outils de gestion de l’entreprise. Mais elle
peut être utilisé de façon individuelle et de plus pourrait être intégré, sans trop de problèmes,
dans un logiciel GPAO.
Lors de cette étude, de nombreux problèmes, de ce domaine, n’ont pas étudiés, il s’agit de :
- gestion des stocks, réservation dans les stocks les composants du produit à fabriquer
- gestion de calendrier d’activité opérateurs
- ordonnancement de production par la capacité de machine
L’analyse de ces problèmes, c’est le travail de long temps.
La planification future?
Développer un programme qui permet de réaliser la gestion pour toutes les étapes de la
prévision, de la décision, de l’exécution et du contrôle.
Ce travail de fin d’études m’a, évidemment, permis d’appliquer toutes les connaissances
acquises lors de ces années d’études. Je me suis rendu compte de la difficulté de mettre en
pratique les matières vues dans les différents cours théoriques. Mais j’ai cependant appris à
gérer les contraintes humaines, mes choix et mon temps de travail… Toutes choses que l’on ne
trouve pas dans les manuels scolaires mais qui sont pourtant, fondamentales dans le monde
professionnel.
De plus ce travail m’a donné la connaissance d’avantage d’utilisation le système informatique
dans le domaine de la gestion des entreprises et j’envisage des formations ou des études dans
cette direction.
41. 41
BIBLIOGRAPHIE
Ouvrages
- Joseph Gabay Merise et UML pour la modélisation des systèmes d'information
Edition Dunod – ISBN: 2-10-005575-5
- Martin Fowler Le tout en poche UML
Edition CampusPress - ISBN: 2-7440-1336-6
- Jay Hilyard, Stephen Teilhet C# Cookbook
Edition O'Reilly – ISBN: 0-596-00339-0
- Simon Robinson, K. Scott Allen C# Professionnel
Edition Wiley – ISBN: 0-7645-5759-9
- Brian Johnson, Craig Skibo Inside Microsoft Visual Studio.NET 2003
Edition Microsoft Press – ISBN: 0-7356-1874-7
- Alain Courtois, Maurice Pillet, Chantal Martin-Bonnefous Gestion de production
Edition Organisation Eds D' – ISBN: 2-7081-2986-4
Support électronique
http://www.developpez.com/
http://www.csharpfr.com/
http://www.csharphelp.com/
www.codeproject.com/
www.uml.org
http://uml.free.fr/
http://www.sybase.fr
http://www.commentcamarche.net
FAQ Merise
http://uml.developpez.com/faq/merise/
FAQ UML
http://uml.developpez.com/faq/
42. 42
ANNEXE
Fichier de création de la base de données sous format MS Access :
' Created 25/01/2005
' Modified 04/03/2005
' Project Suivi de production
' Company Melotte SA
' Author Vitali UDALOV
' Version 1.0.3
' Database Access 2000
'=======================================================
'=== MS Access 2000 database
'===
'=== 1. Create a new database in the MS Access 2000
'=== 2. Create a new module
'=== 3. Copy the SQL script into the new MS Access 2000 module
'=== 4. Select from main menu "Tools" item "References..." and check the "Microsoft DAO
'=== 3.6 Object Library."
'=== 5. Place your mouse cursor somewhere in the main procedure Main()
'=== 6. Run the module code (Click the "Run Sub/UserForm" button or press F5)
'=======================================================
Public dbs As DAO.Database
Public tdf As DAO.TableDef
Public idx As DAO.Index
Public rel As DAO.Relation
Sub Main()
Set dbs = CurrentDb()
On Error GoTo ErrorHandler
Call CreateTables
Call CreatePrimaryKeys
Call CreateIndexes
MsgBox "Script successfully processed.", vbInformation
Exit Sub
ErrorHandler:
Select Case Err.Number
Case 3010
MsgBox "Table " & tdf.Name & " allready exist!", vbInformation
Err.Clear
Case 3284
MsgBox "Index " & idx.Name & " for table " & tdf.Name & " allready exist!",
vbInformation
Err.Clear
Case Else
MsgBox Err.Description, vbCritical
End Select
56. 56
idx.Unique = True
idx.IgnoreNulls = False
Call AddFieldToIndex( "NOTDS", False )
Call AddFieldToIndex( "NOCMD", False )
tdf.Indexes.Append idx
'=== Create primary key for table Effectuer ======
Set tdf = dbs.TableDefs( "Effectuer" )
Set idx = tdf.CreateIndex( "pk_Effectuer" )
idx.Primary = True
idx.Unique = True
idx.IgnoreNulls = False
Call AddFieldToIndex( "NOCMD", False )
Call AddFieldToIndex( "NOMATRIC", False )
tdf.Indexes.Append idx
End Sub
' Create indexes
'================
Sub CreateIndexes()
End Sub
' Add fields to table
'=====================
Sub AddFieldToTable(FieldName As String, DataType As String, SizeCol As Integer,
Attributes As Long, DefaultValue As Variant, ValText As String, ValRule As String, NotN
As Boolean, ZeroLength As Boolean)
Dim fld As DAO.Field
Set fld = tdf.CreateField( FieldName, DataType )
If SizeCol <> 0 Then fld.Size = SizeCol
If Attributes <> 0 Then fld.Attributes = Attributes
fld.Required = NotN
If DataType = dbText or DataType = dbMemo Then fld.AllowZeroLength = ZeroLength
fld.DefaultValue = DefaultValue
fld.ValidationRule = ValRule
57. 57
fld.ValidationText = ValText
tdf.Fields.Append fld
End Sub
' Add properties to table
'=========================
Sub AddPropertyToTable( PropertyName As String, Value As Variant, DataType As String)
Dim prp As DAO.Property
Set prp = tdf.CreateProperty(PropertyName, DataType, Value)
tdf.Properties.Append prp
End Sub
' Add properties to field
'=========================
Sub AddPropertyToField( FieldName As String, PropertyName As String, Value As Variant,
DataType As String)
Dim prp As DAO.Property
Dim fld As DAO.Field
Set fld = tdf.Fields( FieldName )
Set prp = fld.CreateProperty(PropertyName, DataType, Value)
fld.Properties.Append prp
End Sub
' Add fields to index
'=====================
Sub AddFieldToIndex( FieldName As String, Descending As Boolean )
Dim fld As DAO.Field
Set fld = idx.CreateField( FieldName )
If Descending = True Then fld.Attributes = dbDescending
idx.Fields.Append fld
End Sub