REPUBLIQUE DEMOCRATIQUE DU CONGO
ENSEIGNEMENT SUPERIEUR, UNIVERSITAIRE ET RECHERCHE
SCIENTIFIQUE
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn1.png)
INSTITUT SUPERIEUR PEDAGOGIQUE
BP : 854 BUKAVU
SECTION DES SCIENCES COMMERCIALES, ADMINISTRATIVES ET
INFORMATIQUE
DEPARTEMENT D'INFORMATIQUE DE GESTION
DEVELOPPEMENT D'UNE ARCHITECTURE « CLIENT-
SERVEUR » POUR LA GESTION DES COOPERATIVES D'EPARGNE ET DE
CREDIT
Par : MWEZE RWAGAZA Théophile
Travail de fin de cycle présenté en vue
l'obtention
du diplôme de licencié en
Pédagogie Appliquée
Option : Informatique de Gestion
Directeur : TASHO KASONGO Issa
Chef des travaux
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn2.png)
EPIGRAPHE
« L'erreur est humaine mais un
véritable désastre nécessite un ordinateur. » -
Bill Gates
« Le succès est un mauvais professeur.
Il pousse les gens intelligents à croire qu'ils sont
infaillibles. » - William Henry
« Les gagnants seront ceux
qui restructurent la manière dont l'information circule dans leur
entreprise. » -Bill Gates
« Les grandes réalisations sont toujours
précédées par de grandes idées » - Steve
Jobs
IN MEMORIAM
En ta mémoire regrettée grande soeur
Espérance KINJA MUHIGIRWA qui nous a quitté pendant qu'il
n'était pas encore temps mais le destin était si fort et cela ne
t'a pas permis de jouir des fruits de tes études car tu as
succombé trop tôt au chemin de la croix des
études.
A vous grand pères, grand mères,
oncles, cousins, cousines, neveux, nièces qui nous ont quitté et
Dieu n'a pas voulu que nous soyons ensemble en ce moment.
Que vos âmes reposent en paix.
DEDICACE
A nos parents MUHIGIRWA Léonard et M'KARHIBULA
Agathe pour le sacrifice consenti à notre égard.
A mes frères et soeur : Jacques KADESIRWE
MUHIGIRWA et sa famille, FURAHA MUHIGIRWA et sa famille, CIKWANINE MUHIGIRWA et
sa famille, KAJIBWAMI MUHIGIRWA et sa famille, NABINTU MUHIGIRWA et sa famille,
Juvénal MUHIGIRWA, Patrick BYUMANINE MUHIGIRWA, Vital MUHIGIRWA et Aline
MUHIGIRWA ;
A la future mère de nos
enfants ;
A mes tantes et oncles ;
A mes grands-parents ;
A mes cousins et cousines ;
A mes neveux et nièces ;
A nos biens aimés camarades et compagnons de
lutte.
A tous les nôtres qui nous ont soutenus de
près ou de loin dans l'ombre ou dans la lumière au cours de notre
parcours universitaire.
Je dédie ce travail
Théophile MWEZE RWAGAZA
REMERCIEMENTS
La réalisation du présent travail est le
résultat non seulement de notre effort personnel mais aussi et surtout
le fruit du concours de plusieurs personnalités dont nous voudrions
qu'elles trouvent ici l'expression de notre profonde gratitude.
Tout d'abord, nous remercions le bon Dieu pour le don de la
vie ainsi que tout ce qu'il fait pour nous jour au jour.
Notre gratitude s'adresse tout naturellement au chef des
travaux TASHO KASONGO Issa qui, malgré ses multiples
occupations, a accepté de nous diriger pour la réalisation du
présent travail.
Notre gratitude s'adresse d'une manière
particulière à tous les enseignants du département
d'Informatique de Gestion à l'ISP, qui se sont donnés
corps et âme pour nous guider jusqu'à l'achèvement de notre
parcours d'étudiant.
Que tout le corps professoral de l'Institut Supérieur
Pédagogique de Bukavu (ISP), trouve ici l'expression de notre gratitude
pour avoir fait de nous un futur cadre de ce pays.
Notre gratitude s'adresse ensuite à nos chers parents
pour leurs sacrifices, affection parentale, sens de responsabilité ainsi
que leurs précieux conseils, qui nous ont fait arriver à ce jour
mémorable.
Que notre chère famille trouve ici l'expression de
notre profonde gratitude pour le bon climat d'attente et d'harmonie qui la
caractérise, expression d'encouragements que nous avons eu tout au long
de nos études.
Il serait enfin ingrat de clore cette page sans remercier nos
amis et familles amies ainsi que tous ceux qui d'une façon ou d'une
autre, nous ont soutenu au cours de notre parcours universitaire.
SIGLES ET ABREVIATIONS
ASP.NET : Active Server Pages .NET ;
BD : Base de données;
CETE : Centre d'Etudes Techniques de
l'Equipement ;
COOPEC : Coopérative d'Epargne et de
Crédit ;
DB : Data base;
DBMS : Data base Management System;
GRH : Gestion des Ressources Humaines ;
IDE : Integrated Development Environment ;
MCD : Modèle Conceptuel de Données ;
MERISE : Méthode d'Etude et des Réalisations
Informatiques pour le Système d'Entreprise;
MFC : Microsoft Fondation Class ;
MLD : Modèle Logique de données ;
MLDR : Modèle Logique de Données
Relationnelles
MPD : Modèle Physique de données ;
MVC : Model View Controler ;
NTCI : Nouvelle Technologie de la Communication et de
l'Information ;
OS : Operating System;
PA : Point d'Accès;
SGBD : Système de Gestion des bases de données;
SQL : Structured Query Language
TDS : Tabular Data Stream
T-SQL : Transact - Structured Query Language;
VB.Net : Visual Basic. Net;
VPN : Virtual Private Network
WCF : Windows Communication Foundation;
WFA : Windows Forms Application;
WPF : Windows Presentation Foundation;
RESUME
Le présent travail s'inscrit dans le cadre de
l'informatisation des actifs et de l'évaluation de la circulation de
l'information au sein de la Coopérative d'Epargne et de Crédit
Nyalukemba (COOPEC NYALUKEMBA).
Il suggère une première idée visant
à informatiser les opérations dans cette Coopérative. La
seconde idée vise à doter cette dernière d'un
système de partage de données en réseau en vue de
faciliter la tâche aux agents y oeuvrant et leurs épargner de
recourir au mode manuel. Actuellement avec l'évolution de la technologie
le mode manuel est considéré comme archaïque,
entraînant une mauvaise compilation des données y relatives.
La Coopérative Nyalukemba, oeuvre en République
Démocratique du Congo, précisément au Sud Kivu, ville de
Bukavu. Cette dernière oeuvre dans le domaine d'octroi des
crédits, d'épargne des fonds des membres et elle se retrouve se
retrouve face à plusieurs cas à gérer, notamment :
l'adhésion des membres, le dépôt et retrait des fonds,
l'octroi des crédits, la reconduction d'un crédit et biens
d'autres opérations se réalisant encore manuellement. Pour
rendre ceci effective, il nous faut concevoir une base de données
pouvant permettre l'automatisation de ces activités faites encore
manuellement au sein de cette Coopérative en vue de faciliter la
tâche aux utilisateurs.
Vu cette nécessité, il revient à nous
Informaticiens de réfléchir sur l'algorithme et la mise au point
d'un modèle informatique répondant à leur besoin, en vue
d'apporter une pierre à l'édifice qu'est cette Coopérative
dans notre milieu. Ainsi je veux développer l'objet du temps
d'observation actif dans les différents services présent au sein
de la Coopérative en vue d'en avoir l'expérience surtout pour la
situation des membres de cette dernière.
Mots clés : Informatisation,
Gestion, Coopérative, Base de Données, Réseau
ABSTRACT
This work is part of the computerization of assets and the
evaluation of the flow of information within the Cooperative Savings and Credit
Nyalukemba.
He suggests an initial idea to computerize operations in the
Cooperative. The second idea is to equip it with a system of data sharing
network to facilitate the work of agents are working and saving to use the
manual mode. Currently with the evolution of technology manual mode is
considered archaic, leading to poor compilation of related data.
Cooperative Nyalukemba, work in the Democratic Republic of the
Congo, particularly in the South Kivu town of Bukavu. This latest work in the
field of granting loans, savings fund members and she finds herself faced with
a number of cases to manage, including: membership, the deposit and withdrawal
of funds, the grant credit, renewal of credit and many other operations are
still performing manually. To make this effective, we need to design a database
that can enable the automation of these activities still doing manually in the
Cooperative for the convenience of users.
Given this need, it is up to us Techies reflect on the
algorithm and the development of a computer model that meets their needs in
order to bring a stone to the edifice that cooperative in our midst. So I want
to expand the object of observation time active in the various services present
within the cooperative in order to have the experience, especially for the
situation of members of the latter.
Keywords: Computerization Management, Cooperative,
Database, Network
Introduction
générale
La recherche accorde ces dernières années
beaucoup d'importance à l'informatisation des entreprises. Ceci pour
plusieurs raisons : un nombre croissant de collection mise en
réseau soit intranet ou internet distribué au plan
régional, national ou international, le développement de cette
infrastructure de communication et de partage de données
nécessite l'automatisation en vue d'éviter le traitement manuel
des données qui s'avère être très couteux et en
personnel et en temps de production des rapports. Ceci nous pousse à
confirmer qu'actuellement une firme (Entreprise) ne faisant pas usage des
outils de la NTCI (Nouvelle Technologie de la Communication et de
l'Information) est au fond un corps sans âme.1(*)Ce qui est le cas de notre champ
de recherche qui est la Coopérative d'Epargne et de Crédit
Nyalukemba qui reste encore non informatisé et dont nous voulons
à tout prix informatisé ces services pour que cette
dernière bénéficie de ces technologies.
0.1.
Problématique
La mesure des différents paramètres
définissant l'action d'informatiser, de gérer et de suivre
exactement la situation des personnes, de leurs fonds et crédits prise
en charge dans une Entreprise ou dans un établissement plus
particulièrement dans une Coopérative d'Epargne et de
Crédit est soumise actuellement aux nouvelles technologies, à ses
méthodes et techniques prédéfinies et cela de façon
impérative.
L'informatique étant indispensable dans toute
organisation, notamment dans le domaine de la gestion des personnes et leurs
biens, les coopératives d'épargne aussi ne sont pas mises
à l'écart pour admettre cette technologie et arriver à
atteindre les objectifs.
Etant donné que la COOPEC NYALUKEMBA, une étude
de cas pour notre travail, ne possède pas de système
informatique, la procédure utilisée pour effectuer
l'adhésion des membres, les opérations de dépôt, de
retrait, d'octroi, de remboursement de crédit et reconduction d'un
crédit reste manuel. Cette méthode administrative est
considérée comme archaïque entrainant le mauvais traitement
des données y relative et donc un manque de perspicacité dans le
rendement attendu.
On remarque également la difficulté
d'établir rapidement et presqu'au même moment à un membre
la situation actualisée de son compte, de ses retraits, de son
crédit, la date de son adhésion, la date de son premier
dépôt ou retrait ou encore son premier crédit reçu,
le total de son montant en dépôt, le solde, et tant d'autres
situations liées aux mouvement des comptes des membres de la COOPEC.
Parmi les limites qu'accuse ce moyen manuel utilisé
pour la gestion des opérations liées aux membres de la
Coopérative NYALUEKEMBA, on note :
- Le manque à gagner dans la GRH ;
- La lenteur dans le traitement des actifs financiers et
administratifs ;
- Le rendement non maximisé partant de ses
objectifs ;
- Le moment de stress et de fatigue observé au niveau
des agents à la suite d'un travail pertinent à servir un membre
après l'autre.
Ce constat nous amène à nous poser le deux
questions suivantes :
1. Quelles stratégies de suivi et de contrôle que
doit adopter ce système pour accorder aux membres et agents de la
coopérative un service de qualité, fiable et
sécurisé?
2. Quel système faut-il mettre au point pour
centraliser et partager les données liées aux opérations
de la Coopérative dans tous ces services ?
Telles sont les différentes questions que nous nous
poserons tout au long du présent travail.
2. Hypothèse
Pour ce faire, partant des observations de ce qui se passe au
sein de la COOPEC NYALUKEMBA et dans le cadre du présent travail, nos
hypothèses méritent d'être formulées de la
manière suivante :
1. A ce sujet, il convient de recourir à la nouvelle
stratégie de gestion de données relatives aux Coopératives
d'Epargne et de Crédit au moyen de l'informatique, ce qui permettra
l'amélioration et le perfectionnement du travail pour une
rentabilité optimale.
2. La mise au point d'un SGBD partagée, conçue
spécialement pour la gestion des adhésions, des
dépôts ; des retraits, d'octroi, de remboursement des
crédits et biens d'autres, serait une solution efficiente et
rénovée pour faciliter ces différentes opérations
et minimiser la lenteur dans la production de certains rapports liés aux
membres de la coopérative et cette base de données servirait
à stocker diverses informations dont on se servirait plus tard pour
telle ou telle autre situation. Ce partage en réseau de la base de
données faciliterait au gérant, aux chargés de
crédits et risques, au guichetier et autres agents de la
coopérative d'avoir accès en temps réel aux informations
des membres, afin d'avoir une main mise sur toutes les activités et d'en
faire le calcul directe des soldes entre les différents
dépôts et retraits effectués au cours d'une période
donnée.
0.3. Choix et
intérêt du sujet
a. Choix
Le choix de ce sujet se justifie par notre souci de mettre
sur pied un modèle informatique de gestion des opérations au sein
de la COOPEC NYALUKEMBA répondant aux normes de l'architecture 2 tiers
et il servira pour d'autres Coopératives intéressées par
le présent modèle.
Et notre choix s'explique encore par le fait que le
gérant de la COOPEC, nous avait intéressés pour mettre sur
pied l'initiative pratique dans le domaine informatique en faveur de l'exercice
de leur fonction pour permettre un travail harmonieux au sein de la
Coopérative.
b. Intérêt
Le présent travail va constituer un outil de
référence dans le cadre de l'amélioration des conditions
de travail au sein de toute coopérative non encore informatisée
et en particulier la COOPEC NYALUKEMBA. Nous nous sommes
intéressés à ce dernier étant motivé par
l'option choisie à l'ISP qui est l'Informatique de Gestion et donc de
réaliser un travail scientifique y correspondant et enfin
d'élargir nos connaissances en associant les notions de la gestion
à celle de l'Informatique.
0.4. Etat de la
question
La recherche scientifique n'a jamais était à
terme et n'y sera jamais et que donc lorsque un chercheur entreprend la
recherche, la probabilité pour que le sujet abordé n'ait jamais
été traité par d'autres chercheurs est minime. Raison pour
laquelle, il est recommandé aux scientifiques de pouvoir lire et
fouiller d'avantage dans différentes bibliothèques pour
exploiter et lire la suite des travaux déjà publiés dans
son domaine de recherche, enfin d'éviter toute répétition
gratuite et inutile dans la science car le plagiat et la polycopie est
prohibée.
A ce point il convient de signaler qu'aucun système
informatique de ce genre n'a jamais été développé
au sein de la Coopérative NYALUKEMBA. Néanmoins, il existe des
travaux de fin d'études universitaires déjà publiés
et orientés vers les coopératives d'épargnes,
notamment :
1. LUFUNGULO BISIMWA, Mémoire
inédit ISP BUKAVU, 2009-2010 Conception d'un système
intégré de gestion d'une coopérative d'épargne et
de crédit relatif au domaine d'adhésion, épargne,
crédit, retrait et comptabilité, Cas de la COOPEC MOCC BUKAVU.
L'auteur a mis l'accent sur la création d'une base de données
dans l'environnement Access avec des interfaces conçus en langage Java,
ensuite procéder à la mise en réseau de cette
dernière.
2. Pascal Blaise KADIEBUE Kabasele,
Mémoire inédit Université Notre Dame de Kasaï,
2008-2009, Conception et la réalisation d'une base de données
pour la gestion des micro-crédits à impact visible, cas de la
COOPEC DEKOC, l'auteur a mis l'accent sur le développement d'une base de
données dans l'environnement Access pour faciliter et simplifier la
gestion des acteurs-bénéficiaires impliqués dans le micro
crédits.
Après avoir parcouru ces différents travaux,
nous avons dégagé que l'environnement de développement
(Access) choisit par les auteurs ne permet pas la gestion efficace. Les
technologies utilisées, restent limité pour le partage en
réseau en vue de faciliter le système des plusieurs utilisateurs
sur un serveur conservant la base de données. Quant à notre
travail nous avons opté pour les technologies VB.Net et SQL
Server qui nous ont l'implémentation de notre application
en intranet ou internet et permettre l'accessibilité en temps
réel pour plusieurs utilisateurs.
0.5. Délimitation du
sujet
a. Dans l'espace
Notre travail porte sur la Coopérative d'Epargne et de
Crédit Nyalukemba, qui est implanté en R.D Congo, province du
Sud Kivu, ville de Bukavu, dans la commune d'Ibanda, Quartier NYALUKEMBA, AV.
P.E LUMUMBA N° 0168 NGUBA mais les résultats de conception et de
réalisation peuvent s'appliquer à d'autres coopératives de
la place.
b. Dans le temps
Partant du facteur temps, le présent travail est
manufacturé en tenant compte de l'intervalle séparant
l'année pendant laquelle la COOPEC NYALUKEMBA a été mise
au point jusqu'à présent car toute les données en dur qui
sont classées seront encodées dans la base de données que
nous allons concevoir.
0.6. Méthodes et
techniques
a. Les méthodes
D'aucun n'ignore l'apport méthodologique pour un
travail scientifique, cela à partir d'une main forte qu'elle ne cesse
d'apporter au chercheur, qui en fait usage.
Ainsi les méthodes suivantes nous ont permis de
finaliser ce travail :
Ø La méthode historique
Elle nous a servi dans le cadre où elle a permis de
donner l'évolution ou une vue générale sur la COOPEC
NYALUKEMBA et les applications informatiques dont nous avons fait usage.
Ø La méthode d'observation
Elle nous a été utile dans le cadre où
elle nous a permis de décider sur le choix du présent sujet
partant des difficultés de gestion se présentant au sein de la
COOPEC NYALUKEMBA.
Ø Méthode structuro
fonctionnelle
Grâce à cette méthode, nous essayerons de
comprendre la structure fonctionnelle de la COOPEC NYALUKEMBA ainsi que son
système de fonctionnement entre les agents et les relations
extérieures qu'ils entretiennent.
Ø La méthode MERISE
Cette méthode nous a facilité l'analyse, la
conception et réalisation d'un système d'information
informatisé propre à notre projet de recherche.
b. Les techniques
Ø La technique de navigation sur
internet
Cette technique nous sera utile en ce sens
qu'elle nous a permet d'accéder à la bibliothèque
numérique (encyclopédie en ligne, site web, Forums
d'échange et d'entre-aide) qui d'ailleurs, sans elle, nous n'arriverons
complètement à rien pour la réalisation de ce
présent travail.
Ø Technique documentaire
Elle va également attirer notre attention, du fait
qu'elle est basée sur des lectures des ouvrages en dur abordant notre
sujet de recherche.
Ø La technique d'interview
Cette dernière étant basée sur
l'entretien entre le chercheur et l'enquêté, pour accéder
aux données jugées fiables, nous avons usé de cette
technique pour aborder le gérant de la Coopérative en vue d'avoir
plus d'information sur la circulation de l'information.
07. Plan sommaire du
travail
Hormis la partie introductive et la conclusion, ce travail
est subdivisé en quatre chapitres, notamment :
Le premier traitera de la
Généralité sur les bases de données et le
VB.Net où nous avons parlé des notions de base, de
l'Introduction aux bases de données, de quoi veut dire une base de
données, des avantages d'une base de données, des
caractéristiques d'une base de données, et des étapes de
conception d'une base de données.
Le second traitera sur la Présentation du
système d'information existant de la Coopec Nyalukemba
où nous avons fait la présentation de la COOPEC
NYALUKEMBA, la description des documents utilisés et des logiciels
existants au sein de la COOPEC et de la faisabilité du logiciel à
mettre en place.
Le troisième portera sur la Modélisation
du système d'une architecture client-serveur pour la gestion des
coopératives d'épargne et de crédit: il s'agira
dans ce dernier, de l'exploitation des modèles nécessaires de la
méthode MERISE susceptibles de nous faciliter la mise sur pied d'un
système de gestion complet.
Et enfin le quatrième et le tout dernier portera sur « La mise en
place d'une architecture Client-Serveur pour la gestion des coopératives
d'épargne et de crédit ». Dans ce chapitre, il
s'agira de la présentation de l'architecture matériel à
mettre en place, des utilitaires utilisés, de l'environnement de
développement, des configurations nécessaires à effectuer
au niveau du serveur des données et des ordinateurs clients pour faire
fonctionner l'application en réseau, le Manuel d'utilisation, les Codes
sources de la base de données
0.8. Difficultés
rencontrées
Malgré notre motivation portée au choix de ce
sujet, nous nous sommes heurtés à quelques difficultés:
- La coopérative constituant notre champ de recherche
avait été scellée par la banque centrale au cours de la
rédaction du présent travail mais heureusement nous étions
déjà servis en matière des données
nécessaires pour la réalisation de notre travail.
- La documentation livresque a été difficile.
Nous avons été obligés de faire toutes nos recherches sur
internet, ce qui nous a couté extrêmement cher du faite que nous
devrions surfer à tout moment dans les cybers café de la place
par manque d'une connexion fiable à l'ISP BUKAVU.
- En plus de ce qui suit, la plus part de documentations sur
les technologies .NET trouvées étaient en langue anglaise, ce qui
nous a demandé de fournir beaucoup d'effort et de temps pour les
comprendre et les exploiter dans notre travail.
Chapitre I :
Généralités sur les bases de données et le
VB.Net
« La paresse rend tout difficile,
le travail rend tout aisé, celui qui se lève tard, s'agite tout
le jour et commence à peine ses affaires quand il est déjà
nuit » 2(*)
I.1. Notions de base
I.1.1. Introduction
Les bases de données ont pris
aujourd'hui une place essentielle en informatique, plus particulièrement
en gestion. Au cours des trente dernières années, des concepts,
méthodes et algorithmes ont été développés
pour gérer les données sur les mémoires secondaires. Ils
constituent aujourd'hui l'essentiel de la discipline « bases de
données, (BD) ». Cette discipline est utilisée dans la
conception des nombreuses applications. Il existe un grand nombre de
Système de Gestion de Bases de Données (SGBD) qui permettent de
gérer efficacement de grandes bases de données. De plus, une
théorie fondamentale sur les techniques de modélisation de
données et les algorithmes de traitement a vu les jours. Les bases de
données constituent donc une discipline s'appuyant sur une
théorie solide et offrant de nombreux débouchés
pratiques3(*).
I.1.2. Qu'est-ce qu'une base de
données
· Une base de données : Une
base de données (son abréviation est BD, en anglais DB, Data
Base) est un ensemble d'informations relatives à un sujet, une
activité donnée en vue de permettre le stockage et la
modification des données de façon structurée avec le moins
de redondance possible. Ces données doivent être utilisées
par plusieurs utilisateurs différents en même temps si possible.
Ainsi, la notion de base de données est généralement
couplée à celle de réseau, afin de pouvoir mettre en
commun ces informations, d'où le nom de base. On parle
généralement de système d'information pour désigner
toute la structure regroupant les moyens mis en place pour pouvoir partager des
données.4(*)
· Une base de données
informatisée : est un ensemble structuré des
données enregistrées sur des supports accessibles par
l'ordinateur, représentant des informations du monde réel et
pouvant être interrogées et mises à jour par un arsenal
d'utilisateurs. La gestion et l'accès à une base de
données sont assurés par un ensemble de programmes que constitue
le système de gestion de base de données (SGBD).5(*)
I.1.2. Avantage d'une base de
données
Une base de données offre plusieurs avantages
notamment :
- Accès à l'information plus rapidement et
facilement ;
- Toute l'information se retrouve à un seul
emplacement ;
- Plus besoin d'essayer de regrouper l'information qui
provient des plusieurs sources ;
- La recherche ad hoc facile ;
- Meilleur suivi de l'information ;
- Meilleure gestion des données ;
- Meilleure analyse des données ;
- Meilleure prise de décision ;
- Automatisation de certaines tâches
répétitives6(*)
I.1.3. Caractéristiques
d'une base de données
La base de données étant un ensemble
structuré de données enregistrées sur des supports
accessibles par l'ordinateur pour satisfaire simultanément plusieurs
utilisateurs de façon sélective et en un temps opportun, doit
avoir un certain nombre de caractéristiques :
- Données structurées: les
informations contenues dans une base de données sont réparties en
enregistrements, chaque enregistrement ayant une structure bien
définie.
- Données non redondantes: Une
même information ne sera pas répétée plusieurs fois
dans la base de données.
- Données cohérentes: Il ne doit
pas être permis d'enregistrer dans une base des informations
incohérentes entre elles.
- Données accessibles :
l'accès aux données doit être direct et cela selon
de multiples critères
- Indépendance des programmes et des
données: La base de données doit être
indépendante des programmes qui y ont accès, on doit pouvoir
utiliser un autre programme pour traiter différemment ces données
sans avoir à toucher à ces données
- Sécurité des données
stockées: la base de données doit permettre un
système de sécurité permettant de gérer les droits
d'accès aux informations par les utilisateurs.
I.1.4. Etapes de conception
d'une base de données
Une des tâches essentielles des développeurs des
bases de données est la conception du schéma de base. L'objectif
est de structurer le domaine d'application de sorte à le
représenter sous forme de types et des tables. La représentation
doit être juste pour éviter les erreurs sémantiques,
notamment dans les réponses aux requêtes. Elle doit aussi
être complète pour permettre le développement des
programmes d'application souhaités. Elle doit enfin être
évolutive afin de supporter la prise en compte rapide des nouvelles
commandes.
En ce sens, nous pouvons retenir les étapes de
conception suivante :
· La perception du monde réel et capture des
besoins : Cette étape consiste à étudier les
problèmes des utilisateurs et à comprendre leur besoins. Elle
comporte des entretiens, des analyses des flux d'information et des processus
métiers.
· Elaboration du schéma conceptuel :
Cette étape est basée sur l'intégration des schémas
externes obtenus à l'étape précédente. Chaque
composant est un schéma entité-association ou objet. Il
résulte d'un modèle de problème représentant une
partie de l'application. La difficulté est d'intégrer toutes les
parties dans un schéma conceptuel global complet, non redondant et
cohérent en optant soit pour la méthode MERISE ou le langage
UML.
· Conception du schéma logique : Cette
étape réalise la transaction du schéma conceptuel en
structures de données supportées par le système choisi.
Avec un SGBD relationnel, il s'agit de passer à des tables. Avec un SGBD
objet-relationnel, il est possible de générer des types et des
tables.
· Affinement du schéma logique : une
question qui se pose est de savoir si le schéma logique est un
« bon » schéma. A titre de première
approximation, « un bon schéma » est celui sans
oublis ni redondances d'informations.
· Elaboration du schéma physique :
Cette étape est nécessaire pour obtenir des bonnes performances.
Elle nécessite la prise en compte des transactions afin de
déterminer les patterns d'accès fréquents. A partir de
là, il faut choisir des bonnes structures physiques : groupage ou
partitionnement des tables, index, etc. C'est là que se jouent pour une
bonne part les performances de l'application en respectant
l'intégralité référentielle des index dans les
différentes tables.7(*)
La gestion de la base de données se fait grâce
à un système appelé SGBD (système
de gestion de bases de données) ou en anglais DBMS (Data base Management
System). Le SGBD est donc un ensemble de services (applications logicielles)
permettant de gérer les bases de données. Il en existe
plusieurs, dont voici les plus connus8(*) :
- Microsoft SQL Server : le SGBD de
Microsoft, nous l'avons utilisé dans le présent travail. Notons
que ce dernier est payant
- MySQL : c'est un des SGBD les plus
populaires et reste gratuit.
- Oracle : c'est le SGBD le plus
utilisé en entreprise, le plus complet aussi...mais payant.
- PostgreSQL : ressemble un peu MySQL, avec
plus de fonctionnalités mais un peu moins connu.
De notre côté, nous allons prendre
SQL Server de Microsoft, mais sachez que la
majorité des requêtes qu'on y utilise, fonctionnent presque de la
même manière avec les autres SGBD ci haut cités. Donc le
SQL c'est parfaitement un langage des requêtes, mais chaque SGBD a son
propre langage SQL : ainsi, SQL Server utilise le
langage T-SQL (Transact-SQL) et dans cette optique,
nous utiliserons un langage SQL indépendant de tout SGBD.
I.1.5. VB.Net et le SGBD
a. Utilisation interactive de VB.Net et SQL Server
Le SQL Server persiste avec le seul problème, est que
l'on ne peut pas lui parler directement, c'est à ce moment là
qu'intervient le VB.NET par l'intermédiaire d'ADO.NET et de la chaine de
connexion de SQL Client. Le langage Visual basic. NET sert
d'intermédiaire entre l'utilisateur et SQL Server. Par exemple, un
utilisateur demande à VB.NET de demander à SQL Server de faire ce
que nous reprenons sur l'image ci-dessous :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn3.png)
Explication de la figure :
1. Le serveur utilise VB.NET
2. Le code VB.NET demande à SQL Server
d'enregistrer une information dans la base de données.
3. SQL Server va "répondre" à
VB.NET en lui disant "OK, c'est bon, je stocke l'information".
4. VB.NET va alors renvoyer au serveur que
tout c'est bien déroulé (donc SQL Server a bien fait son
travail).
b. Brève description des utilitaires à
utiliser
· Microsoft Visual Studio
La firme Microsoft a créé une suite logicielle
nommée « Visual Studio », qui rassemble :
- Visual Basic (WFA: Windows Forms Application, WPF
Application, Console Application, ASP.NET Web et MVC 2 Web Application, Class
Library, Silverligth Application, Silverligth Class Library, WCF Service
Application),
- Visual C#,
- Visual C++ (Win32 Console Application, MFC Application, ATL
Project,CLR Application,...) et
- Visual F#, etc
Alors, tous nous connaissons que la suite des applications
provenant de Microsoft, on peut facilement deviner qu'elle coûte une
certaine somme. Heureusement, l'éditeur nous propose
généralement une version « express » gratuite (version
student) de chaque logiciel de cette suite. Au début de ce
présent travail, nous avions commencé par le Visual Studio
Express 2010 qui est gratuit. Cet utilitaire a été
téléchargé au
http://download.microsoft.com/download/e/c/a/eca104b9-610e-435b-8268-447edf8c86e0/vb_web.exe
valide le 14 Avril 2012
Plus tard, nous avons eu à utiliser Microsoft Visual
Studio 2010 Professionnel qui est une version commerciale complète avec
toutes les fonctionnalités dans le but de réaliser un progiciel
professionnel.
Microsoft a déjà sorti plusieurs versions de
SQL Server, la dernière en date est SQL Server 2012 R2. J'ai
décidé de prendre ce SGBD car il s'adapte très bien avec
les suites Professionnel de Visual Studio. La première version de SQL
Server est sortie en 1989 sur les plateformes UNIX et OS/2, mais depuis,
Microsoft a préféré mettre SQL Server uniquement sous un
système d'exploitation Windows. En 1994, Microsoft a sorti la version
6.0 et 6.5 sur la plateforme Windows NT. Ensuite Microsoft a continué de
commercialiser le moteur de base de données sous le nom de Microsoft SQL
Server et a publié la version 2008 de Microsoft SQL Server, et enfin la
version 2008 R2.
Ce dernier est aussi en version student que nous avons
téléchargé sur le lien suivant
http://msdn.microsoft.com/fr-fr/gg699325,
mais plus tard, nous avons également opté pour la version
complète pour aller plus loin avec les fonctionnalités de notre
base de données.
Chapitre 2 :
Description du système d'information existant au sein de la
coopérative Nyalukemba
« Employez bien votre temps si vous voulez
mériter le repos et ne perdez pas une heure puisque vous n'êtes
pas sûr même d'une minute.9(*) »
2.1. Présentation
La Coopérative d'Epargne et de Crédit
NYALUKEMBA est une représentation de l'administration provinciale du
RESEAU COOCEC KIVU en commune et territoire provinciale. Elle est régie
par les dispositions générales des entreprises publiques de
l'Etat Congolais ayant la personnalité juridique spéciale
agrée par la Banque Centrale du Congo (BCC) sous
Gouv.ID.143/n°00097 du 02 Février 2002. La zone
d'intervention de la COOPEC s'étend dans les limites administratives de
la ville de Bukavu. Elle peut être élargie à d'autres
parties de la R.D Congo sur décision de l'Assemblée
Générale et après approbation de la Banque Centrale du
Congo. Son siège social est établi dans les limites de sa zone
d'action qui comprend le quartier NYALUKEMBA. Il peut être
transféré en tout autre lieu de la zone d'intervention sur
proposition du Conseil d'Administration et après approbation de la
Banque Centrale. L'objet social de cette COOPEC est généralement
de collecter l'épargner des membres sous toutes ses formes et de
consentir des crédits à ses membres.
2.1.1. Membres :
adhésion, catégories, perte de la qualité
a. Adhésion des membres
Peut être membre de la COOPEC toute personne physique ou
morale capable de contracter ce qui suit :
- Souscrire et libérer au moins une part sociale
- Signer une demande d'adhésion, sauf le cas d'un
fondateur
- S'engager à respecter le statut et les
règlements de la COOPEC
- S'acquitter du droit d'adhésion
La qualité de membre est constatée par
l'inscription au registre des membres tenu au siège social de la COOPEC
sur instruction du Conseil d'Administration
b. Catégorie de membres
La COOPEC compte deux catégories de membres à
savoir :
- Les membres effectifs (dont les fondateurs)
- Les membres auxiliaires qui sont considérés
comme des clients potentiels au sein de la Coopérative.
c. Perte de la qualité de membre
Un membre peut perdre sa qualité par :
- La démission donnée dans les conditions
prévues par le règlement d'ordre intérieur
- L'exclusion prononcée par l'Assemblée
générale sur proposition du conseil d'administration selon le cas
prévu dans le règlement d'ordre intérieur
- Le décès ou dissolution (pour une personne
morale)
Tout membre peut démissionner pour autant qu'il ne soit
pas emprunteur, débiteur ou endosseur d'un prêt.
2.1.2. Ressources
financières de la COOPEC
Les ressources financières de la COOPEC provient
des :
- Droit d'adhésion et parts sociales
- Cotisations et souscriptions des membres
- Dons, legs et subventions de l'Etat ou d'une autre
institution nationale ou internationale
- Intérêts sur les crédits consentis
- Recettes provenant de toute activité
génératrice de recettes ou de revenus organisés par la
COOPEC autres que la collecte de l'épargne ou de l'octroi du
crédit mais dont l'importance demeure limitée par rapport
à l'ensemble des activités principales et qui n'est pas
réputée constituer l'exploitation d'un commerce ou d'un moyen de
profit.
2.2. Fonctionnement des
organes
La COOPEC NYALUKEMBA comprend quatre organes à
savoir :
- Assemblée Générale (A.G)
- Conseil d'Administration (C.A)
- Conseil de surveillance (CS)
- Commission de Crédit (C.C)
Description des organes :
2.2.1. Assemblée
générale
L'Assemblée générale est l'instance
suprême de la COOPEC. Elle est constituée de l'ensemble des
membres réunis à cette fin. Généralement, il est
prévu deux sortes d'Assemblée Générale :
- L'A.G ordinaire qui se tient une fois l'an dans les trois
mois qui suivent la clôture de chaque exercice social. Elle est
convoquée par le président du C.A sur base d'une invitation
écrite envoyée aux membres avec accusé de réception
30 jours avant sa tenue. La date, l'heure et le lieu seront repris sur
l'invitation. L'Assemblée ne délibérera que sur les
questions inscrites à son ordre du jour.
- L'A.G extraordinaire qui peut être convoquée
sur demande du Conseil d'Administration, du Conseil de Surveillance, du 1/3 des
membres de l'Assemblée Générale, le Conseil
d'Administration de la COOCEC à laquelle la COOPEC est affiliée
ou de la Banque Centrale du Congo.
Attributions
Sans préjudice des dispositions de l'article 30 de la
loi n°002/2002 du 02 Février 2002 portant dispositions applicables
aux Coopératives d'Epargne et de Crédit, l'Assemblée
Générale est chargée de :
- Orienter la politique interne et externe de la COOPEC
- Prendre connaissance du rapport annuel du Conseil
d'Administration et du Conseil de Surveillance ;
- Nommer les Commissaires aux Comptes ;
- Donner mandat au Conseil d'Administration d'étudier
les possibilités de créer des nouvelles agences ;
- Déterminer les critères et les
modalités d'élection des mesures du C.A et des membres des autres
organes ;
- Décider de l'affiliation ou désaffiliation
à une COOCEC ;
- Prendre toute décision sur la bonne marche de la
COOPEC sur proposition du Conseil d'Administration.
2.2.2 Conseil
d'Administration
Le Conseil d'Administration est composé de cinq
Administrateurs minimums. Toutefois, un nombre impair plus élevé,
sans être supérieur à 9 administrateurs, peut être
prévu. Il se réunit dans les formes prévues par la loi
n°002/2002 du 02 février 2002 portant dispositions applicables aux
Coopératives d'Epargne et de Crédit. L'exercice de cette fonction
est incompatible avec celle de membres du Conseil de Surveillance de la
Commission de crédit et de la Gérance.
Attributions
Le Conseil d'Administration veille au fonctionnement et
à la bonne gestion de la COOPEC, sous réserve de l'avis favorable
de la COOCEC à laquelle elle est affiliée. Il a notamment
compétence pour :
- Nommer et révoquer le Gérant
- Voter le budget de fonctionnement et d'investissement
- Se prononcer en appel sur décisions de la Commission
de Crédit à l'endroit d'un membre
2.2.3. Conseil de
Surveillance
Le Conseil de Surveillance se compose de trois membres
élus par l'Assemblée Générale parmi les membres de
la COOPEC. L'exercice de cette fonction est incompatible avec celle de membres
du Conseil d'Administration de la Commission de Crédit et de la
Gérance.
Attributions :
Le Conseil de Surveillance est chargé de surveiller
les opérations de la COOPEC. Il a accès à toutes les
pièces et peut obtenir tous les renseignements qu'il requiert. Il doit
notamment :
- Veiller au contrôle périodique de la COOPEC par
les organes compétents ;
- Recevoir les plaintes des membres et les soumettre aux
organes compétents ;
- Entreprendre les vérifications ou inspections des
comptes, livres et opérations de la COOPEC.
2.2.4. Commission de
crédit
La Commission de crédit est composée de trois
membres élus par l'Assemblée Générale parmi les
membres de la COOPEC. Elle se réunit une fois par mois. Le Gérant
assure d'office le secrétariat et assiste avec voix consultative aux
réunions. La majorité des membres constitue le quorum de la
commission.
Attributions
La Commission de Crédit a la responsabilité de
gérer la distribution et le remboursement du crédit
conformément aux politiques et procédures définies en la
matière. Les décisions de la Commission sont prises à
l'unanimité.
2.2.5. La Gérance
- La Gérance est composée du Gérant de la
Coopérative, nommé par le Conseil d'Administration ainsi que des
agents dépendant de ses services.
- Le Conseil d'Administration fixe les modalités de
l'engagement et du licenciement du Gérant, la nature de son contrat, le
montant de sa rémunération ainsi que les autres avantages pouvant
lui être accordés ;
- Le Gérant exerce ses fonctions sous l'autorité
du Conseil d'Administration. Par ailleurs, il assiste avec voix consultative
aux réunions du Conseil d'Administration ainsi qu'à celles de la
Commission de Crédit. Il en assume le secrétariat.
- Le Gérant est chargé de la gestion courante de
la Coopérative. L'étendue de ses pouvoirs est
déterminée par le règlement d'ordre intérieur de la
COOPEC.
2.3. Description des documents
utilisés
L'établissement des documents et des rapports varie non
seulement d'un pays à un autre, d'une région à une autre,
d'un territoire à un autre mais aussi d'une Coopérative d'Epargne
et de Crédit à une autre. Les normes d'établissement ici
sont déterminées par l'administration générale de
la COOPEC NYALUKEMBA.
2.3.2. Documents
utilisés par le (la) caissier (ère)
Au niveau de la caisse il y a exécution des
opérations d'encaissement et de décaissement lorsque
demandées et assurer la garde des fonds encaissés. On y assure
aussi les services des membres (dépôts et retraits).
- Le bordereau de dépôt
A travers ce bordereau, la caissière y passe des
écritures conforment au montant qu'un membre doit déposer. Ce
dernier est toujours élaborer en plusieurs copies dont une copie
originale à remettre au membre qui a déposé et une souche
à garder dans les archives de la COOPEC.
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn4.png)
- Le bordereau de retrait
Pour ce bordereau, la caissière établie ce
dernier sur base du montant en solde dans le compte d'un membre donné
pour éviter des manquants éventuels. Ce bordereau est aussi
élaborer en deux copies pour chacune des parties.
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn5.png)
Les opérations se passant sur les deux documents
décrits ci-haut sont donc assurées par la caissière. On y
fait aussi référence pour exécuter les opérations
d'encaissement et de décaissement lorsque demandée.
- Carte d'adhésion
La carte d'adhésion constitue la validation et
l'admission d'un membre au sein de la COOPEC. Donc à l'ouverture d'un
compte, cette carte constitue un élément indispensable et comme
les rubriques l'indiquent, le membre doit se munir des pièces connexes
telles que la carte d'identité, parrain (membre reconnu par la COOPEC),
....
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn6.png)
Le verso de la carte d'adhésion reprend les rubriques
à compléter pour préciser l'héritier du compte en
cas de décès du membre.
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn7.png)
Carnet de membre :
Le carnet des membres constitue la référence de
l'évolution du solde d'un compte entre la COOPEC et un membre
donné. Cette première figure constitue la page de garde avec des
rubriques qui donnent l'information sur l'identité d'un membre titulaire
d'un compte au sein de la COOPEC
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn8.png)
Cette figure indique alors l'évolution proprement dite
de l'épargne d'un membre ou c'est repris la date de dépôt
ou de retrait, le numéro de la quittance, le montant
déposé ou retiré et en fin le solde restant en compte.
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn9.png)
2.4. Logiciels existants au
sein de la COOPEC
Un logiciel est un programme ou un ensemble
de programmes informatiques assurant un traitement particulier de
l'information. Le mot logiciel est la traduction de l'anglais
software.
Les applications utilisées dans la plus part des
activités des coopératives sont faites en Microsoft Excel. Pour
utiliser une application de ce genre on doit l'adapter à la politique de
l'entreprise (de la COOPEC) avant toute utilisation. Au sein de la COOPEC
NYALUKEMBA, nous avons pu retrouver que dans leur gestion, il y a implication
d'un progiciel nommé FINA, conçu sous Microsoft Office Excel. Ce
progiciel gère l'ensemble des balances comptables de chaque membre, mais
avec un très grand risque car lors de la saisie des
éléments de dépôt ou de retrait, l'utilisateur peut
accéder facilement aux formules et il suffit seulement de perde ou de
modifier une formule pour que la balance soit erronée. En plus un seul
utilisateur est autorisé à y travailler par manque d'un
système fiable autorisant plusieurs utilisateurs et par manque du
réseau également.
Voici en capture d'écran quelques feuilles de calcul
conçu sous Microsoft Office Excel qu'on y utilise :
- Balance âgée par mois
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn10.png)
Explication : Sur cette balance
âgée le comptable ou le caissier y reprend l'ensemble des
opérations que tout membre effectue au cours de chaque mois, ici haut en
image nous avons la situation pour le mois de Juillet 2012
- Ventilation des dépôts de la
clientèle des membres
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn11.png)
Explication : Au niveau de la
ventilation de la clientèle des membres on essaye de spécifier le
type de compte par rapport à l'ensemble des épargnes, des
dépôts à termes soit on est membre autonome, soit on est
membre d'un groupe solidaire ou autres tel que repris sur l'image ci
-dessus.
2.5. Critiques du
système informatique existant
Après analyse des systèmes en place, il nous
parait nécessaire de dégager les avantages et les
inconvénients liés au système de gestion des
activités dans une Coopérative d'Epargne et de Crédit
précitées ci haut et proposer des pistes de solution.
a) Critique des documents de
gestion
Le système actuel, bien que fonctionnant plus ou
moins correctement, ne correspond plus aux désirs et aspirations des
travailleurs qui, au lieu de s'épanouir dans leur travail, sont par
contre acculés par les surcharges de travail et ont actuellement besoin
d'assistance.
D'où les défaillances du système qu'on
peut aisément détecter au niveau du système d'information
existant sont les suivantes:
- La procédure utilisée pour effectuer
l'adhésion des membres, les opérations de dépôt, de
retrait, de virement des fonds, d'octroi, de remboursement de crédit et
reconduction d'un crédit se fait encore manuellement sur les documents
en durs comme nous les avons illustré plus haut dans ce chapitre et donc
cette méthode administrative est considérée comme
archaïque entrainant le mauvais traitement des données y relatives.
- Les ratures se multiplient lorsque par exemple le caissier
se met à compléter manuellement la fiche de prêt, la fiche
de remboursement et cela entraine une consommation élevée des
fournitures de bureaux.
- Les erreurs se multiplient sur les documents produits et il
devient dès lors difficile de les redresser en temps utile.
C'est pourquoi il est nécessaire d'envisager, pour les
Coopératives d'Epargne et de Crédit de la place, d'autres types
et modèles de technique de gestion capables de traiter des volumes
d'information plus élevées et de réaliser des tâches
complexes.
b) Critique des moyens
matériels
Les moyens matériels utilisés dans certains
services de gestion des opérations dans la Coopec NYALUKEMBA sont
jusque-là insuffisants. L'outil informatique n'intervient pas pour lui
faciliter la sortie de toute information nécessaire à la prise de
décision.
Si la gestion des activités des membres de la COOPEC
varie, à la limite, selon le degré d'attachement aux
activités de l'institution, sous l'angle des causes fondamentales de
faiblesse du système, on note l'utilisation d'un logiciel d'application
Microsoft Office Excel (Logiciel FINA) en l'occurrence et
autant non approprié que la probabilité du risque d'erreur reste
très élevée en particulier lors de l' édition
des données. Faute de faire usage d'un logiciel adapté, ce
système « primitif » est susceptible de constituer
une source de calculs erronés par suite d'inattention et d'aucune
politique de sécurité dans le partage de fichiers par exemple en
réseau local ou étendu : d'où l'insuffisance
avérée de la sécurité des données. En plus
ce logiciel n'est pas adapté aux différents services de la COOPEC
par manque de réseau.
c) Critique des ressources
humaines
Bien que le matériel utilisé dans certains
services de la COOPEC soit insuffisant, le personnel qui l'utilise fait tout ce
qu'il peut pour avoir toutes les informations possibles. Même si le
besoin de l'outil informatique s'avère très important, la
formation du personnel à la manipulation de cet outil relève
d'une grande importance.
2.6. Proposition des solutions
Le système de traitement d'informations a
évolué en vue de rendre plus efficace et plus rapide le travail
humain. Certes, les alternatives existent quant à leur coût, leur
temps d'élaboration et leur niveau d'intégration mais leur
application effective pose toujours des problèmes.
Ainsi, dans la recherche des nouvelles solutions nous
distinguerons quatre moyens de traitement de l'information :
· Le traitement manuel : où toutes les
fonctions du traitement sont assurées sans recours à des
machines. Il s'adapte au traitement des informations de faible volume.
· Le traitement mécanisé : où
toutes les fonctions élémentaires sont assurées par des
machines spécialisées. Il permet de traiter des volumes
d'information plus élevés que le traitement manuel et est
adapté aux tâches élémentaires.
· Le traitement semi-automatisé : où
l'homme est utilisé comme moyen de traitement, l'homme responsable de la
conduite générale du travail et une ou plusieurs machines
capables d'enchaîner des séquences d'opérations
élémentaires. Il s'adapte au traitement des volumes importants
d'informations et à la réalisation des tâches complexes.
· Le traitement automatisé : où des
machines évoluées (ordinateurs) sont utilisées. Il
s'adapte aux traitements répétitifs portants sur des gros volumes
d'informations.
Vu ce qui précède, le système devrait
être capable d'enchaîner toutes les séquences
d'opérations en impliquant l'existence d'une mémoire suffisante
étant donné que les opérations de calcul des fonds des
membres comportent des travaux répétitifs.
Nous envisageons donc que le traitement par ordinateur sera
le plus efficace car étant plus souple et plus rapide dans la
résolution des problèmes. Ceci nous permettra d'esquiver les
erreurs tout en minimisant le temps de travail.
Chapitre 3 : La
modélisation du système
« Il est tout à fait possible de coder
sans passer par une modélisation, bon nombre de programmeurs
professionnels ne savent même pas ce que veut dire
modélisation »10(*)
3.1. Pourquoi
une méthode d'analyse ?
Toute résolution de problème quel qu'il soit,
nécessite une, voire plusieurs phases de réflexion plus ou moins
longues en fonction de l'ampleur et du type du problème. Lors d'un
projet informatique, cette réflexion doit pouvoir être comprise et
reprise par toute personne intervenant sur le projet. C'est pourquoi, ont
été définies des méthodes d'analyse.
3.2. La modélisation
Les méthodes d'étude des systèmes
d'information ont pour objectif de décrire ces systèmes à
l'aide des modèles, puis réaliser les systèmes
informatisés qui en découlent. MERISE est l'une de ces
méthodes, la plus rependue d'analyse du système d'information
d'une entreprise.
3.3. Aperçu sur la méthode MERISE11(*)
MERISE est une méthode de conception, de
développement et de réalisation des projets informatiques.
L'objectif de cette méthode dans ce travail est d'arriver à
concevoir un système d'information. La méthode MERISE est
basée sur la séparation des données et des traitements
à effectuer en plusieurs modèles.
Pour rappel, la méthode MERISE date de 1978-1979, et
faite suite à une consultation nationale lancée en 1977 par le
ministère de l'industrie de la France dans le but de choisir des
sociétés de conseil en informatique afin de définir une
méthode de conception de systèmes d'information. Les deux
principales sociétés ayant mis au point cette méthode sont
le CTI (Centre Technique d'Informatique) chargé de gérer le
projet, et le CETE (Centre d'Etudes Techniques de l'Equipement) implanté
à Aix-en-Provence.
3.4. Niveaux d'abstraction12(*)
MERISE distingue trois niveaux de description des
systèmes d'information :
Le niveau conceptuel :
« décrit le QUOI faire et avec quelles
données ? ».
Son rôle consiste à définir
précisément les finalités de l'entreprise. Il
précise l'ensemble des règles de gestion à y appliquer au
niveau des concepts, sans tenir compte d'un quelconque matériel
informatique devant supporter ces informations, cela par le biais d'un
formalisme qui se traduit en terme de modèle conceptuel de
données (MCD) avec entité, association,
propriété.
Le niveau organisationnel ou
logique: « décrit QUI fait QUOI et
OU ? »
Son rôle est de définir l'organisation qu'il est
souhaitable de mettre en place dans l'entreprise pour atteindre les objectifs
souhaités. C'est à cette étape que l'on précise les
postes de travail, l'emploi des bases de données ou des fichiers, ... Il
se traduit en termes de modèle logique de données (MLD),
modèle relationnel, système de fichiers ou autre, ...
Le niveau physique ou
opérationnel : « décrit le
COMMENT faire ? ».
Il définit les choix techniques (logiciels et
matériels). Il se traduit en termes de modèle physique de
données (MPD) avec le choix des index, ...
3.5. Le modèle conceptuelle de données (MCD)13(*)
Le modèle conceptuel des données est une
représentation statique du système d'information de l'entreprise
qui met en évidence sa sémantique. Il a pour but de
décrire de façon formelle et structurée les données
qui seront utilisées par le système d'information.
3.6. Détermination des entités14(*)
L'entité est une représentation d'un
élément matériel ou immatériel, ayant une existence
propre, avec un rôle dans le système que l'on désire
décrie. Elle contient les informations qui la caractérise, ces
informations sont appelées propriétés. Ces
propriétés sont collectées lors de l'établissement
du dictionnaire de données.
Tableau descriptif des objets
/entités
Le tableau suivant contient les objets et leurs
propriétés que nous aurons à manipuler au moment de la
conception de notre base de données :
No
|
Entités
|
Description
|
Propriétés
|
01
|
T_PRET
|
Cette entité contient les informations relatives
au prêt d'un crédit
|
Id_pret
Type_credit
GarantieCredit
AutreGarantie
Montant_Pret
But
TauxInteret
Interet
TotalRembour
Date_pret
|
02
|
MEMBRE
|
Elle reprend toutes les informations sur le membre.
|
NumFolio
Nom
Postnom
Sexe
Etatcivil
Lieunais
Datenaissance
NumcarteId
Profession
Tel_Bureau
Tel_mobile
Commune
Quartier
DateAdhesion
Lieu_Adhesion
Photo
Montant_solde
Frais_ouverture
|
03
|
DEPOT
|
Reprend les informations ayant de rapport avec le
dépôt des membres.
|
Id_depot
M1
M5
M10
M20
M50
M100
Montant_depot
Depose_par
Ancien_solde
Nouvo_solde
Guichetier
|
04
|
RETRAIT
|
Reprend les informations ayant de rapport avec les
opérations de retrait.
|
Id_retrait
M11
M55
M1010
M2020
M5050
M100100
Montant_retire
Retire_par
Ancienn_solde
Nouveau_solde
Guichitier
|
05
|
DETAILREMBOURSEMENT
|
Reprend les détails sur le remboursement
|
Id_remboursement
Type_remb
Remboursement
Total_Remboursement
|
06
|
T_LOGIN
|
Reprend les informations ayant le rapport avec les
utilisateurs du système
|
Id_user
Identifiant
Pwd
Privilege
|
3.7. Détermination des propriétés15(*)
La propriété est une information
élémentaire, c'est-à-dire non déductible d'autres
informations qui présentent un intérêt pour le domaine
étudié. Le nom d'une propriété doit être le
plus explicite possible : à sa seule lecture on doit donc pouvoir
se faire une idée de ce que représente la
propriété
Tableau descriptif des
propriétés
NO
|
Propriétés
|
Significations
|
01
|
Id_pret
|
Numéro d'identification d'un prêt
|
02
|
Type_credit
|
Type de crédit octroyé au membre
|
03
|
GarantieCredit
|
La garantie pour un crédit
|
04
|
AutreGarantie
|
Autre garantie pouvant couvrir un crédit
|
05
|
Montant_pret
|
Montant à prêter au membre
|
06
|
But
|
Le but de demander un crédit ou un prêt
|
07
|
TauxInteret
|
Le taux d'intérêt pour le crédit
reçu
|
08
|
Date_pret
|
La date d'octroi du crédit
|
09
|
Interet
|
L'intérêt de l'institution pour le crédit
octroyé
|
10
|
TotalRembour
|
Le total à rembourser pour le crédit
reçu
|
12
|
NumFolio
|
Le numéro du compte d'un membre adhérer
|
13
|
Nom
|
Le nom du membre
|
14
|
Postnom
|
Le post nom du membre
|
15
|
Sexe
|
Le genre ou sexe du membre
|
16
|
Etacivil
|
L'Etat civil du membre
|
17
|
Lieunais
|
Le lieu de naissance du membre
|
18
|
Datenaissance
|
La date de naissance du membre
|
19
|
NumcarteId
|
Le numéro de la carte d'identification ou du passe
port
|
20
|
Profession
|
La profession du membre
|
21
|
Tel_bureau
|
Le numéro de téléphone de service du
membre
|
22
|
Tel_mobile
|
Le numéro privé du membre
|
23
|
Commune
|
La commune du membre
|
24
|
Quartier
|
L'adresse du membre ou le nom de son quartier
|
25
|
DateAdhesion
|
La date d'adhésion du membre
|
26
|
Lieu_Adhesion
|
Le lieu d'adhésion du membre
|
27
|
Photo
|
La photo du membre
|
28
|
Montant_solde
|
Le montant à déposer le jour de
l'adhésion
|
29
|
Frais_ouverture
|
Le frais d'ouverture
|
30
|
Id_retrait
|
Le numéro d'identification du retrait
|
31
|
Dateretrait
|
La date de l'opération de retrait
|
32
|
M11
|
Le nombre total des coupures de 1$ retiré
|
33
|
M55
|
Le nombre total des coupures de 5$ retiré
|
34
|
M1010
|
Le nombre total des coupures de 10$ retiré
|
35
|
M2020
|
Le nombre total des coupures de 20$ retiré
|
36
|
M5050
|
Le nombre total des coupures de 50$ retiré
|
37
|
M100100
|
Le nombre total des coupures de 100$ retiré
|
38
|
Montant_retire
|
Le montant total des coupures retirées
|
30
|
Retire_par
|
L'identité de la personne qui a retiré
l'argent
|
40
|
Ancienn_solde
|
Le solde en compte avant le retrait
|
41
|
Nouveau_solde
|
Le solde en compte après retrait
|
42
|
guichitier
|
Le nom du guichetier au poste de retrait
|
43
|
Id_depot
|
L'identifiant d'un dépôt
|
44
|
Datedepot
|
La date de dépôt
|
45
|
M1
|
Le nombre total des coupures de 1$ déposé
|
46
|
M5
|
Le nombre total des coupures de 5$ déposé
|
47
|
M10
|
Le nombre total des coupures de 10$ déposé
|
48
|
M20
|
Le nombre total des coupures de 20$ déposé
|
49
|
M50
|
Le nombre total des coupures de 50$ déposé
|
50
|
M100
|
Le nombre total des coupures de 100$ déposé
|
51
|
Montant_depot
|
Le montant total des coupures déposé par un
membre
|
52
|
Depose_par
|
Le nom de la personne qui a déposé
|
53
|
Ancien_solde
|
Le solde en compte avant dépôt
|
54
|
Nouvo_solde
|
Le solde en compte après dépôt
|
55
|
Guichetierr
|
Le nom du guichetier au poste de dépôt
|
56
|
Id_remboursement
|
Identifiant d'un remboursement
|
57
|
Date_remboursement
|
La date de remboursement
|
58
|
Type_remb
|
Le type de remboursement
|
59
|
Remboursement
|
Le montant remboursé
|
60
|
Total_remboursement
|
Le total de remboursement d'un crédit
|
61
|
Id_user
|
Identifiant d'un utilisateur du système
|
62
|
Identifiant
|
Pseudonyme ou nom de l'utilisateur
|
63
|
Pwd
|
Le mot de passe de l'utilisateur pour accéder au
système
|
64
|
Privilege
|
Privilège de l'utilisateur pour effectuer les
opérations dans le système
|
3.8. Détermination des relations
Une relation (appelée aussi parfois association)
représente les liens sémantiques qui peuvent exister entre
plusieurs entités. Une relation peut ne pas avoir des informations. Des
associations suivantes ont été utilisées dans le cadre de
ce travail :
N°
|
Relations
|
Descriptions
|
Entités reliées
|
01
|
Etaler
|
Cette relation est celle qui existe entre le prêt et
Detailremboursement. Elle signifie qu'un prêt peut être
étalé en une ou plusieurs échéances.
|
T_PrêtetT_Detailremboursement
|
02
|
Solliciter
|
C'est la relation qui lie un membreau prêt.Un membre
peut solliciter un ou plusieurs prêts.
|
MembreetT_Prêt
|
03
|
Retirer
|
Elle décrit la relation qui existe entre un membre et
son retrait de fond. Un membre effectue un retrait de fond.
|
MembreetT_Retrait
|
03
|
Deposer
|
Elle décrit la relation qui existe entre un membre et
son retrait de fond. Un membre effectue un dépôt de fond.
|
MembreetDepot
|
04
|
Effectuer
|
Cette relation est celle qui existe entre les
opérations qu'un utilisateur peut effectuer dans le système
lorsqu'il se connecte. Elle signifie qu'un utilisateur peut effectuer une ou
plusieurs opérations dans le système, notamment l'adhésion
des membres, le dépôt de fonds, le retrait de fonds, l'octroi d'un
crédit ou le remboursement d'un crédit
|
T_login, Membre, Depot, Retrait,T_pret,
T_DetailRemboursement
|
3.9. Le dictionnaire des données16(*)
Le dictionnaire des données est un document qui permet de recenser, de classer et de trier toutes les informations (les données) collectées
lors des entretiens ou de l'étude des
documents. Le dictionnaire peut être plus ou moins
élaboré selon le niveau de granularité souhaité.
NOM
|
ID
|
TYPE
|
TAILLE
|
UTILISE
|
Id_pret
|
Id_pret
|
INT
|
0
|
true
|
NumFolio
|
NumFolio
|
INT
|
0
|
false
|
Iduser
|
Iduser
|
INT
|
0
|
false
|
Type_credit
|
Type_credit
|
VARCHAR
|
35
|
true
|
GarantieCredit
|
GarantieCredit
|
VARCHAR
|
35
|
true
|
AutreGarantie
|
AutreGarantie
|
VARCHAR
|
35
|
true
|
Montant_Pret
|
Montant_Pret
|
NUMERIC
|
15
|
true
|
But
|
But
|
VARCHAR
|
80
|
true
|
TauxInteret
|
TauxInteret
|
NUMERIC
|
10
|
true
|
Date_pret
|
Date_pret
|
DATE TIME
|
0
|
true
|
Interet
|
Interet
|
NUMERIC
|
10
|
true
|
TotalRembour
|
TotalRembour
|
NUMERIC
|
10
|
true
|
Id_remboursement
|
Id_remboursement
|
INT
|
0
|
true
|
Id_pret
|
Id_pret
|
NUMERIC
|
0
|
false
|
Iduser
|
Iduser
|
INT
|
0
|
false
|
Date_remboursement
|
Date_remboursement
|
DATE TIME
|
0
|
true
|
Type_remb
|
Type_remb
|
VARCHAR
|
35
|
true
|
Remboursement
|
Remboursement
|
VARCHAR
|
35
|
true
|
Total_Remboursement
|
Total_Remboursement
|
NUMERIC
|
10
|
true
|
NumFolio
|
NumFolio
|
INT
|
0
|
true
|
Iduser
|
Iduser
|
INT
|
0
|
false
|
Nom
|
Nom
|
VARCHAR
|
35
|
true
|
Postnom
|
Postnom
|
VARCHAR
|
35
|
true
|
Sexe
|
Sexe
|
VARCHAR
|
1
|
true
|
Etatcivil
|
Etatcivil
|
VARCHAR
|
15
|
true
|
Lieunais
|
Lieunais
|
VARCHAR
|
35
|
true
|
datenaissance
|
datenaissance
|
DATE TIME
|
0
|
true
|
NumcarteId
|
NumcarteId
|
VARCHAR
|
0
|
true
|
profession
|
profession
|
VARCHAR
|
35
|
true
|
Tel_Bureau
|
Tel_Bureau
|
VARCHAR
|
15
|
true
|
Tel_mobile
|
Tel_mobile
|
VARCHAR
|
15
|
true
|
commune
|
commune
|
VARCHAR
|
35
|
true
|
Quartier
|
Quartier
|
VARCHAR
|
35
|
true
|
DateAdhesion
|
DateAdhesion
|
DATE TIME
|
0
|
true
|
Lieu_Adhesion
|
Lieu_Adhesion
|
VARCHAR
|
20
|
true
|
Photo
|
Photo
|
VARCHAR
|
100
|
true
|
Montant_solde
|
Montant_solde
|
NUMERIC
|
10
|
true
|
Frais_ouverture
|
Frais_ouverture
|
NUMERIC
|
10
|
true
|
Id_depot
|
Id_depot
|
INT
|
0
|
true
|
NumFolio
|
NumFolio
|
INT
|
0
|
false
|
Iduser
|
Iduser
|
INT
|
0
|
false
|
Datedepot
|
Datedepot
|
DATE TIME
|
0
|
true
|
M1
|
M1
|
NUMERIC
|
10
|
true
|
M5
|
M5
|
NUMERIC
|
10
|
true
|
M10
|
M10
|
NUMERIC
|
10
|
true
|
M20
|
M20
|
NUMERIC
|
10
|
true
|
M50
|
M50
|
NUMERIC
|
10
|
true
|
M100
|
M100
|
NUMERIC
|
10
|
true
|
Montant_depot
|
Montant_depot
|
NUMERIC
|
10
|
true
|
Depose_par
|
Depose_par
|
VARCHAR
|
30
|
true
|
Ancien_solde
|
Ancien_solde
|
NUMERIC
|
10
|
true
|
Nouvo_solde
|
Nouvo_solde
|
NUMERIC
|
10
|
true
|
Guichetier
|
Guichetier
|
VARCHAR
|
30
|
true
|
Id_retrait
|
Id_retrait
|
AUTO_INCREMENT
|
0
|
true
|
NumFolio
|
NumFolio
|
INT
|
0
|
false
|
Iduser
|
Iduser
|
INT
|
0
|
false
|
Dateretrait
|
Dateretrait
|
DATE
|
0
|
true
|
M11
|
M11
|
NUMERIC
|
10
|
true
|
M55
|
M55
|
NUMERIC
|
10
|
true
|
M1010
|
M1010
|
NUMERIC
|
10
|
true
|
M2020
|
M2020
|
NUMERIC
|
10
|
true
|
M5050
|
M5050
|
NUMERIC
|
10
|
true
|
M100100
|
M100100
|
NUMERIC
|
10
|
true
|
Montant_retire
|
Montant_retire
|
NUMERIC
|
10
|
true
|
Retire_par
|
Retire_par
|
NUMERIC
|
25
|
true
|
Ancienn_solde
|
Ancienn_solde
|
NUMERIC
|
10
|
true
|
Nouveau_solde
|
Nouveau_solde
|
NUMERIC
|
10
|
true
|
Guichetier
|
Guichetier
|
NUMERIC
|
25
|
true
|
Date_retarit
|
Date_retrait
|
DATE TIME
|
0
|
true
|
Iduser
|
Iduser
|
INT
|
0
|
true
|
Identifiant
|
Identifiant
|
VARCHAR
|
10
|
true
|
Pwd
|
Pwd
|
VARCHAR
|
10
|
true
|
Privilege
|
Privilege
|
VARCHAR
|
10
|
true
|
3.10. Modèle
Conceptuel de données (MCD)
Après avoir recueilli toutes les
propriétés du système d'information de notre milieu
d'étude, les entités ainsi que leurs associations, nous
aboutissons au MCD suivant :
Modèle Conceptuel de données d'un
système d'information de gestion des coopératives d'epargne et de
crédit
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn12.png)
Règles de gestion
Une règle de gestion est un élément de
description globale du fonctionnement de l'organisation. Toute activité
de l'entreprise peut faire l'objet d'une règle de gestion. Elle peut
porter sur les données manipulées par l'organisation ou sur les
traitements exécutés au sein de celle-ci.17(*)
1. Un prêt peut être étalé en une ou
plusieurs échéances ;
2. Le détail de remboursement ne concerne qu'un et un seul
prêt ;
3. Un membre peut solliciter zéro ou plusieurs
prêts ;
4. Le prêt ne concerne qu'un et un seul membre ;
5. Un membre peut rembourser son prêt en un ou plusieurs
échéances ;
6. Le remboursement ne concerne qu'un et un seul membre ;
7. Un membre peut effectuer un ou plusieurs
dépôts ;
8. Le dépôt ne concerne qu'un et un seul
membre ;
9. Un membre peut effectuer un ou plusieurs retraits ;
10. Le retrait ne concerne qu'un et un seul membre ;
11. Un utilisateur peut effectuer une ou plusieurs
opérations dans le système selon son privilège.
12. Une opération peut concerner un et un seul
utilisateur
3.11. Le modèle logique des
données relationnel (MLDR)18(*)
Le modèle Logique des Données Relationnel (MLDR)
est la suite normale du processus Merise. Son but est de nous rapprocher au
plus près du modèle physique. Pour cela, nous partons du
Modèle Conceptuel des Données et nous lui enlevons les relations,
mais pas n'importe comment, il faut en effet respecter certaines
règles :
a) Cas (0, n), (1,1) ou (1,
n), (0,1)
On commence par supprimer les associations. Cela se
réalise de façon tout à fait mécanique.
L'entité ayant la cardinalité de type 1,1 ou 0,1 absorbe
l'identifiant de l'entité la plus forte (0, n ou 1, n). Cet identifiant
est alors appelé la clé
étrangère
b) Cas (0, n), (0, n) ou (1,
n), (1, 1)
Dans le cas où la cardinalité maximale est
n de chaque côté de la relation,
celle-ci se transforme en entité et absorbe les identifiants de chaque
entité reliée. Les identifiants absorbés forment la
nouvelle clé de l'entité. Cette nouvelle clé est donc
formée par la concaténation des clés
étrangères des entités reliées.
# Modèle créé le : Sun Sep 08 09:21:09 CEST
2013
Membre (NumFolio, Nom, Postnom, sexe, Etatcivil,
Lieunais, datenaissance, NumcarteId, profession, Tel_Bureau, Tel_mobile,
commune, Quartier, DateAdhesion, Lieu_Adhesion, photo, montant_solde,
Frais_ouverture, #Iduser)
T_DetailRemboursement (Id_remboursement,
Type_remb, Remboursement, Total_Remboursement, #Iduser)
T_pret
(id_pret, Type_credit, GarantieCredit, AutreGarantie, Montant_Pret, But,
TauxInteret, Interet, TotalRembour, Date_pret, #Iduser)
Depot
(Id_depot, M1, M5, M10, M20, M50, M100, Montant_depot, Depose_par,
Ancien_solde, Nouvo_solde, Guichetier, #Iduser)
Retrait (Id_retrait,
M11, M55, M1010, M2020, M5050, M100100, Montant_retire, Retire_par,
Ancienn_solde, Nouveau_solde, Guichitier, #Iduser)
T_login (Iduser,
Identifiant, Pwd, Privilege)
Etaler (id_pret,
Id_remboursement, Date_remboursement)
Solliciter (NumFolio,
id_pret, Date_sollicite)
Retirer (NumFolio,
Id_retrait, dateretrait)
Deposer (NumFolio, Id_depot,
Datedepot)
3.12. Le modèle physique de
données19(*)
Construire le Modèle Physique des Données
consiste à transformer le Modèle Logique des Données en
une suite de relations. Cette étape finalise le processus de traitement
des données. L'implémentation de la base de données peut
alors être réalisée de façon optimale.
Modèle Physique de données d'un
système d'information de gestion des coopératives d'epargne et de
crédit
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn13.png)
3.13. Transcription SQL du Modèle
Physique des Données généré par l'utilitaire
AnalyseSI
# script créé le : Sat Sep 07 19:11:15 CEST 2013 -
syntaxe MySQL ;
# use GEST_COOPEC.SQL ;
DROP
TABLE IF EXISTS Membre
;
CREATETABLEMembre(NumFolioNUMERICNOTNULL,
Nom
VARCHAR(35),
PostnomVARCHAR(35),
sexeVARCHAR(1),
EtatcivilVARCHAR(15),
LieunaisVARCHAR(35),
datenaissanceDATETIME,
NumcarteIdVARCHAR,
profession
VARCHAR(35),
Tel_BureauVARCHAR(15),
Tel_mobileVARCHAR(15),
commune
VARCHAR(35),
Quartier
VARCHAR(35),
DateAdhesionDATETIME,
Lieu_AdhesionVARCHAR(20),
photo
TEXT,
montant_soldeNUMERIC(10),
Frais_ouvertureNUMERIC(10),
PRIMARYKEY(NumFolio))
ENGINE=InnoDB;
DROP TABLE IF EXISTS
T_DetailRemboursement
;
CREATETABLET_DetailRemboursement(Id_remboursementINTNOTNULL,
Type_rembVARCHAR(35),
RemboursementVARCHAR(35),
Total_RemboursementNUMERIC(10),
PRIMARYKEY(Id_remboursement))
ENGINE=InnoDB;
DROP TABLE IF EXISTS T_pret
;
CREATETABLET_pret(id_pretINT(10)NOTNULL,
Type_creditVARCHAR(35),
GarantieCreditVARCHAR(35),
AutreGarantieVARCHAR(35),
Montant_PretNUMERIC(15),
But
VARCHAR(80),
TauxInteretNUMERIC(10),
InteretNUMERIC(10),
TotalRembourNUMERIC(10),
Date_pretDATETIME,
PRIMARYKEY(id_pret))
ENGINE=InnoDB;
DROP TABLE IF EXISTS Depot
;
CREATETABLE Depot
(Id_depotINTNOTNULL,
Num_bordNUMERIC,
M1
NUMERIC(10),
M5
NUMERIC(10),
M10
NUMERIC(10),
M20
NUMERIC(10),
M50
NUMERIC(10),
M100
NUMERIC(10),
Montant_depotNUMERIC(10),
Depose_parVARCHAR(30),
Ancien_soldeNUMERIC(10),
Nouvo_soldeNUMERIC(10),
GuichetierVARCHAR(30),
PRIMARYKEY(Id_depot))
ENGINE=InnoDB;
DROP TABLE IF EXISTS Retrait
;
CREATETABLERetrait(Id_retraitINTNOTNULL,
Num_bordereauNUMERIC(12),
M11
NUMERIC(10),
M55
NUMERIC(10),
M1010
NUMERIC(10),
M2020
NUMERIC(10),
M5050
NUMERIC(10),
M100100
NUMERIC(10),
Montant_retireNUMERIC(10),
Retire_parNUMERIC(25),
Ancienn_soldeNUMERIC(10),
Nouveau_soldeNUMERIC(10),
GuichitierNUMERIC(25),
PRIMARYKEY(Id_retrait))
ENGINE=InnoDB;
DROP TABLE IF EXISTS T_login
;
CREATETABLET_login(IduserINTNOTNULL,
IdentifiantVARCHAR(10),
PwdVARCHAR(10),
Privilege
VARCHAR(10),
NumFolioNUMERICNOTNULL,
Id_retraitINTNOTNULL,
Id_remboursementINTNOTNULL,
Id_depotINTNOTNULL,
id_pretINT(10)NOTNULL,
PRIMARYKEY(Iduser))
ENGINE=InnoDB;
DROP TABLE IF EXISTS Etaler
;
CREATETABLEEtaler(id_pretINT(10)NOTNULL,
Id_remboursementINTNOTNULL,
Date_remboursementDATETIME,
PRIMARYKEY(id_pret,
Id_remboursement))
ENGINE=InnoDB;
DROP TABLE IF EXISTS Solliciter
;
CREATETABLESolliciter(NumFolioNUMERICNOTNULL,
id_pretINT(10)NOTNULL,
Date_solliciteDATETIME,
PRIMARYKEY(NumFolio,
id_pret))
ENGINE=InnoDB;
DROP TABLE IF EXISTS Retirer
;
CREATETABLERetirer(NumFolioNUMERICNOTNULL,
Id_retraitINTNOTNULL,
dateretraitDATETIME,
PRIMARYKEY(NumFolio,
Id_retrait))
ENGINE=InnoDB;
DROP TABLE IF EXISTS Deposer
;
CREATETABLE Deposer
(NumFolioNUMERICNOTNULL,
Id_depotINTNOTNULL,
DatedepotDATETIME,
PRIMARYKEY(NumFolio,
Id_depot))
ENGINE=InnoDB;
ALTERTABLET_loginADDCONSTRAINTFK_T_login_NumFolioFOREIGNKEY(NumFolio)REFERENCESMembre(NumFolio);
ALTERTABLET_loginADDCONSTRAINTFK_T_login_Id_retraitFOREIGNKEY(Id_retrait)REFERENCESRetrait(Id_retrait);
ALTERTABLET_loginADDCONSTRAINTFK_T_login_Id_remboursementFOREIGNKEY(Id_remboursement)REFERENCEST_DetailRemboursement(Id_remboursement);
ALTERTABLET_loginADDCONSTRAINTFK_T_login_Id_depotFOREIGNKEY(Id_depot)REFERENCES
Depot
(Id_depot);
ALTERTABLET_loginADDCONSTRAINTFK_T_login_id_pretFOREIGNKEY(id_pret)REFERENCEST_pret(id_pret);
ALTERTABLEEtalerADDCONSTRAINTFK_Etaler_id_pretFOREIGNKEY(id_pret)REFERENCEST_pret(id_pret);
ALTERTABLEEtalerADDCONSTRAINTFK_Etaler_Id_remboursementFOREIGNKEY(Id_remboursement)REFERENCEST_DetailRemboursement(Id_remboursement);
ALTERTABLESolliciterADDCONSTRAINTFK_Solliciter_NumFolioFOREIGNKEY(NumFolio)REFERENCESMembre(NumFolio);
ALTERTABLESolliciterADDCONSTRAINTFK_Solliciter_id_pretFOREIGNKEY(id_pret)REFERENCEST_pret(id_pret);
ALTERTABLERetirerADDCONSTRAINTFK_Retirer_NumFolioFOREIGNKEY(NumFolio)REFERENCESMembre(NumFolio);
ALTERTABLERetirerADDCONSTRAINTFK_Retirer_Id_retraitFOREIGNKEY(Id_retrait)REFERENCESRetrait(Id_retrait);
ALTERTABLE
Deposer
ADDCONSTRAINTFK_Deposer_NumFolioFOREIGNKEY(NumFolio)REFERENCESMembre(NumFolio);
ALTERTABLE
Deposer
ADDCONSTRAINTFK_Deposer_Id_depotFOREIGNKEY(Id_depot)REFERENCES
Depot (Id_depot);
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn14.png)
3.14. Le diagramme
relationnel généré par les contraintes de Microsoft SQL
Server
Diagramme relationnel d'un système d'information
de gestion des coopératives d'epargne et de crédit
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn15.png)
3.15. Le diagramme des
requêtes de synthèse construit à partir de Microsoft visual
Studio 2010 Professionnel
Dataset relationnel d'un système d'information de
gestion des coopératives d'epargne et de crédit
3.16.
Représentation des accès en réseau.
Notre architecture étant multi utilisateur, nous allons
présenter ici les accès dans l'application suivant les
privilèges pour le mode écriture et lecture des données de
chaque utilisateur. L'architecture comporte en soit les utilisateurs suivants:
un administrateur de la base de données, un gérant de la
coopérative, les guichetiers au dépôt et les guichetiers au
retrait
· Illustration des accès de
l'administrateur système
Dans le présent système d'information
l'administrateur a le droit d'accès à toutes les données
et fonctionnalités pour assiter les utilisateurs et faire la maintence
coorective de l'application en cas de neccessité.
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn16.png)
Cette figure illustre les activités de l'administrateur
du système d'information selon les activités qu'il doit effectuer
au niveau de la base de données. Lorsqu'il se connecte il peut
parcourir l'ensemble de l'application et verifier si touts les postes clients
accédent à la base de données distante.
· Illustration des accès du
Gérant
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn17.png)
Cette figure illustre les droits d'accès du
gérant selon son privilège, il a droit de lire et d'écrire
dans la table adhésion des membres, il peut également lire et
valider les différents Dépôts-Retraits et peut lire et
écrire dans la table de démande de prêt et dans la table de
remboursement. Ici il n'a pas droit d'accéder au formulaire de gestion
des utilisateurs du système.
· Illustration des accès des guichetiers
au dépôt
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn18.png)
Cette figure illustre le droit d'accès aux
données par les différents guichetiers au Dépôt. Ici
le guichetier Dépôt peut lire dans la table Membre pour afficher
les informations de base d'un membre qui vient faire l'opération de
dépôt et il peut lire et écrire dans la table
Dépôt. En fin après l'opération de
dépôt, il peut faire la mise à jour du solde en compte du
memebre concenré. Le reste des opérations restent
desactivées pour lui.
· Illustration des accès des guichetiers
au retrait
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn19.png)
Cette figure illustre les accès des différents
guichetiers au retrait. Ici le guichetier Retrait peut lire dans la table
Membre pour afficher les informations de base d'un membre qui vient faire
l'opération de retrait et il peut lire et écrire dans la table
Retrait. En fin après l'opération de Retrait, il peut faire la
mise à jour du solde en compte du memebre dont l'opération de
retrait concerne. Le reste des opérations restent
désactivées pour ce dernier.
Chapitre 4: Mise en place
de l'architecture Client- Serveur pour la gestion d'une coopérative
d'épargne et de crédit
« Un développeur digne de son nom,
est une personne capable de réfléchir, de conceptualiser et de
comprendre les codes sources avant de les modifier20(*) »
Dans le chapitre précédent, nous venons de
mettre sur pied un modèle approprié aux besoins de l'application
à réaliser. Ce qui suit c'est maintenant la réalisation et
l'implémentation d'un produit fini pouvant être exploité
par les utilisateurs à des fins spécifiques. Dans cette partie,
nous allons présenter l'architecture matérielle à mettre
en place pour l'utilisation de l'application, de l'environnement de
développement, des utilitaires utilisés dans la conception, des
configurations nécessaires à effectuer au niveau du serveur des
données et des ordinateurs clients pour faire fonctionner l'application
en réseau, le Manuel d'utilisation, les Codes sources de la base de
données.
4.1. L'architecture
matérielle
En terme matériel, l'institution qui pourra utiliser la
présente application disposera des équipements suivants :
Nbre
|
Type matériel
|
Caractéristiques
|
08
|
PC Desktop
|
Pentium R, 80 GB, RAM : 0,99 GB, CPU : 2,99GHz
|
04
|
Lap Top
|
160 GB, RAM : 2GB, CPU : 2,19GHz
|
02
|
Imprimante
|
HP Color Laser CP1515n / Avec carte réseau
|
01
|
Switch
|
D-Link 16 ports
|
01
|
Routeur
|
Linksys
|
04
|
Webcam externe
|
Compatible avec l'OS
|
Après avoir décrit les matériels
nécessaires à mettre en place, nous allons directement
passé à la schématisation du réseau local pour
faire communiquer d'abord tous ces équipements informatiques.
Le schéma (topologie) réseau pour lequel nous allons opter est
classé dans la topologie en étoile, toutes les machines seront
branchées à une machine centrales (Switch), qui sait envoyer les
informations à une machine en particulier (routeur, passerelle). Donc
ceci nous fait penser à des machines reliées en paire
torsadée à un Switch.
4.2. Configuration du
réseau local pour le partage de l'application
Pour faire fonctionner l'application conçue, il est
impérativement obligatoire de passé par configurer un
réseau, dans le but de pouvoir faire communiquer les équipements
qui utiliseront notre application.
Choix de la topologie réseau
En étoilé toutes les communications passent par
le point central. On lui envoie l'information avec le nom du destinateur, et le
point central aiguille l'information vers la bonne machine (adressage par IP).
C'est comme le centre de tri de la Poste (sauf que c'est plus rapide).
En étoile, on peut brancher une infinité des
machines à condition que vous ayez un Switch qui va
résister ; ici pour notre cas nous avons un Switch à 08
Ports et il répond à notre besoin. Mais déployer un
réseau avec une infinité des machines, dépendra de la
capacité de notre point central ou point d'accès (PA) à
traiter un grand nombre de machines. Donc aussi vous comprendrez que le facteur
limitant peut être les caractéristiques du Serveur de
données car c'est encore en intranet.
En ce sens si nous avons un serveur très puissant pour
l'envoi et la réception des réponses aux requêtes des
utilisateurs, nous comprenons qu'aujourd'hui on peut faire un réseau de
taille illimitée, mais dans ce cas il faut relier plusieurs points
centraux entre eux. Ainsi, ils se transmettent l'information jusqu'à
l'acheminer au destinataire.
Pour ceci nous recommander fortement aux entreprises usant du
réseau informatique d'utiliser la topologie en étoile car cette
dernière semble assez clair du fait qu'elle possède des
caractéristiques permettent d'étendre son réseau aussi
bien en taille qu'en nombre de machines. Et cette topologie tombe bien car les
réseaux en bus ou anneau sont en voie de disparition
aujourd'hui.21(*)
Pour ce faire voici en image le schéma de notre
réseau pour bien partager l'application et avoir accès aux
données en temps réel :
Schéma réseau VPN d'un système
d'information de gestion des coopératives d'epargne et de
crédit
Explication supplémentaire du schéma
Ce schéma reprend, l'ensemble des équipements
interconnecté entre eux. Dans le tableau plus haut, nous avons
indiqué les matériels dont il faut disposer pour faire
fonctionner l'application et sur ce schéma, nous illustrons les dits
matériels.
Pour plus des précisions, nous avons un nombre total
de huit desktops qui serviront aux différents guichets
(Dépôts- Retraits), un desktop servira comme serveur de base de
données, sur lequel nous installerons impérativement Microsoft
SQL Server et permettre aux sept postes clients, disposant des interfaces
utilisateurs d'y envoyer des requêtes en temps réel. Quatre lap
tops répartis comme suit : un pour le gérant, un autre pour
l'administrateur de base de données, un autre pour le chargé de
crédit et un autre pour le service de comptabilité, eux aussi
considérés comme des postes clients. En plus nous avons deux
imprimantes réseaux, qui permettront l'impression sur plusieurs postes
clients dans le réseau. En fin le Switch, nous permet de communiquer
entre les différents équipements et le routeur pour les postes
clients sans fil.
4.3. Environnement de
développement de l'application
Pour réaliser notre application, nous avons
utilisé les technologies du langage de programmation Visual
Basic.Net, qui est un langage dédié à la mise en
place de desktop application pouvant tourner en réseau et permettre
l'accès aux données en temps réel. Ce langage a
été manipulé dans l'environnement de développement
Microsoft Visual Studio Professionnel 2010, un IDE largement
compatible avec les technologies .NET
Ici, nous tenons à signaler que le .NET nous a servi
à réaliser les interfaces utilisateurs en partie frontale (front
end) et pour tester et répondre aux requêtes des utilisateurs,
nous avons utilisé le langage SQL en back end (partie anale), qui est un
langage orienté base de données compatible avec les technologies
.NET pour les applications réseaux.
4.4. Les outils
utilisés dans la conception
Pour avoir des interfaces simples et bien ajustés, nous
avons utilisé :
· Adobe Fireworks CS6 pour la conception
des icônes
· Adobe Photoshop pour le traitement des
images présentes sur nos interfaces utilisateurs.
· Microsoft Visual Studio 2010
Professionnel
Pour la création des formulaires, nous avons
utilisés l'IDE Microsoft Visual Studio
2010Professionnel, qui nous a permis d'utiliser différents
contrôles, entre autre les zones de texte, les zones de liste
déroulantes, le boutons de commande, le cadre d'image, le Datagrid,
etc. La version framework utilisé est Microsoft.NET Framework:
4.0.30.
· Microsoft SQL Server 200522(*)
Pour la mise au point de la base de données nous avons
fait usage du serveur des bases de données Microsoft SQL Server
2005 qui est un SGBDR mieux placé pour dialoguer avec la suite
Visual Studio de Microsoft. SQL Server utilise T-SQL (Transact-SQL), il s'agit
d'une implémentation de SQL qui prend en charge les procédures
stockées et les déclencheurs (trigger). Le T-SQL est
incompatible avec le PL/SQL d'Oracle.Pour les transferts de données, SQL
Server utilise le format TDS (Tabular Data Stream) qui a été
implémenté dans d'autres bases de données (en particulier
dans son homologue Sybase) et dont les spécifications sont publiques.
Une implémentation Open Source d'un client TDS est disponible et
constitue la base du client SQL Server du projet Mono :
FreeTDS
· AnalyseSI
Pour la modélisation, nous avons fait usage de
l'utilitaire analyseSI adapté à la production
des modèles de la méthode MERISE. AnalyseSI, est un logiciel de
modélisation de BDDR libre (Base de données relationnelle) par
la méthode entités-relations. Ce programme est un outil de
modélisation, c'est à dire qu'il permet de créer une
représentation simple d'un système, ici d'une base de
données relationnelle. Après avoir schématisé la
base de données, le programme créera automatiquement le script
qui permettra d'installer la base de données sur le serveur et le BDDR
de votre choix (tant que celui-ci comprend le langage SQL).
· Cisco Packet Tracer23(*)
Cisco Packet Tracer est un simulateur de
matériel réseau Cisco (routeurs, commutateurs). Cet outil est
créé par Cisco Systems qui le fournit gratuitement aux centres de
formation, étudiants et diplômés participant, ou ayant
participé, au programmes de formation Cisco (Cisco Networking Academy).
Le but de Packet Tracer est d'offrir aux élèves et aux
professeurs un outil permettant d'apprendre les principes du réseau,
tout en acquérant des compétences aux technologies
spécifiques de Cisco. Il peut être utilisé pour
s'entrainer, se former, mais également pour de la simulation
réseau.
· Argouml
Cet utilitaire nous a permis de représeanter les
différentes représentations d'accès réseau par les
utilisateurs du système
· Prime Desktop
Prime Desktop top, nous a également assité dans
la conception du schéma réseau Virtual Private Network (Reseau
privé virtuel).
· Inno setup
Inno setup est un logiciel
libre permettant de créer des installateurs pour Windows. Ceux-ci
peuvent comporter des scripts programmés en Pascal.
4.5. Implémentation de
la base de données
Avant d'utiliser la présente base de données, il
est impérativement recommandé d'installer sur le poste serveur,
les outils de Microsoft SQL Server. Pour notre cas, nous avons signalé
plus haut que nous avons fait usage de SQL Server 2005 de Microsoft. Pour
installer ce dernier, il faut respecter les étapes d'installation en
configurant les services réseaux pour SQL Server et l'autoriser à
accepter les connexions distantes. Si non lorsque, vous essayez de vous
connecter à une instance de Microsoft SQL Server 2005 à partir
d'un ordinateur distant, vous pouvez recevoir un message d'erreur
suivant :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn21.png)
Après installation, comment autoriser Microsoft SQL
Server à accepter les connexions distantes ?24(*)
Pour configurer SQL Server 2005 pour autoriser les connexions
à distance, vous devez effectuer ces étapes :
· Activer les connexions à distance sur l'instance
de SQL Server que vous souhaitez vous connecter à partir d'un ordinateur
distant.
· Activer le service Explorateur de SQL Server.
· Configurer le pare-feu pour autoriser le trafic
réseau qui est lié à SQL Server et pour le service
Explorateur de SQL Server.
4.6. Attacher la base de
données dans le serveur SQL Server
Après avoir effectué toutes ces
opérations, lancer SQL Server depuis le lanceur d'application de Windows
en choisissant SQL Server Management Studio,
après la boite de dialogue suivante va nous apparaitre :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn22.png)
Cliquez sur connecter pour accéder aux outils
permettant d'attacher la base de données dans le serveur, et une
fenêtre semblable à celle-ci vous apparait, indiquant que la
connexion a réussi avec succès :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn23.png)
Faites un clic droit sur
« Databases », choisir l'option
« Attach » et suivre les
étapes jusqu'à choisir la base de données à
attacher à l'emplacement spécifié. La base de
données porte le nom de
« Gestion_coopec ».
4.7. Guide utilisateur
Après toutes les configurations nécessaires et
que l'application ait été mise en place, nous passons à
une brève description de son fonctionnement. L'application peut
fonctionner en mode local (localhost) ou en mode multi utilisateurs. Pour notre
cas, il s'agit de l'utilisation des interfaces sur plusieurs postes clients
connecté sur une base de données SQL Server distante. Et pour ce
faire il faut d'abord par l'installation de l'application sur les postes
clients en suivant les étapes indiquées.
4.7.1. Etape
d'installation
En double cliquant sur
« Setup_Gest_Coopec », une
fenêtre apparaîtra où vous choisirez la langue
d'installation. Généralement, la langue est automatiquement
sélectionnée par le système d'exploitation mais vous
pouvez toujours changer la sélection suivant le besoin. Au lancement de
l'installation, la fenêtre ci-dessous s'affichera :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn24.png)
Après que vous ayez choisis l'une parmi ces langues
proposées, cliquez ensuite sur
« OK » pour passer à l'étape
suivante ou sur « Cancel » pour annuler l'installation.
· Assistant d'installation
Cette fenêtre sert d'information tout simplement. Elle
vous invite en outre de continuer sans inquiétude car vous serez
assisté tout au long de l'installation. Après avoir cliquez sur
« OK » de la fenêtre langue
d'installation, vous arriverez sur la fenêtre ci-dessous :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn25.png)
Cliquez ensuite sur Suivant pour
poursuivre l'installation et afficher la fenêtre d'information sur le
logiciel ou sur Annuler pour abandonner
l'installation
· Dossier de destination du logiciel
Cette fenêtre vous permet de choisir un dossier
où le logiciel fera la copie des fichiers d'installation, le dossier de
destination par défaut de Gest_Coopec est
C:\Program Files\Gest_Coopec, toute fois
l'utilisateur peut changer en cliquant sur parcourir pour sélectionner
un autre dossier de son choix. Outre ces informations, cette fenêtre
calcule l'espace disponible sur votre disque dur avant la copie des fichiers
dans le dossier de destination que vous avez choisi, alors il est fortement
recommandé d'avoir plus de 40,8 Mo libre sur le disque
d'installation.
Voici la fenêtre dossier de destination :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn26.png)
Vous pouvez soit cliquer sur
« Précédent »
pour revenir sur la fenêtre information sur le logiciel, et si l'espace
disque est suffisante cliquez «Suivant»
pour poursuivre avec l'installation, en affichant la fenêtre dossier du
menu démarrer pour y créer des raccourcis
· Dossier du menu démarrer
Cette fenêtre vous permet de sélectionner un
dossier qui contiendra les raccourcis du logiciel dans le menu démarrer.
Si vous ne souhaitez pas créer ce raccourci dans votre menu,
marqué la case à cocher tout juste au bas de la fenêtre
dossier du menu démarrer qui est par défaut décoché
donc près à créer pour vous un raccourci.
Voici ci-dessous, la fenêtre dossier du menu
Démarrer :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn27.png)
Vous pouvez soit cliquer sur
« Précédent » pour revenir
sur la fenêtre dossier de destination, soit sur
«Suivant » pour poursuivre avec
l'installation en affichant la fenêtre tâche
supplémentaire
· Fenêtre des tâches
supplémentaires
Cette fenêtre vous permet de créer une
icône sur le bureau de Windows, il suffit de cocher la case
« Créer une icône sur le
bureau».
La voici donc ci-dessous :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn28.png)
Vous pouvez soit cliquez sur
« Précédent »
pour revenir sur la fenêtre dossier du menu démarrer, soit sur
« Suivant » pour poursuivre avec
l'installation en affichant la fenêtre près à
installer :
· Fenêtre près à
installer
Cette fenêtre donne une vue d'ensemble sur les processus
que vous avez effectués avant d'installer le logiciel, voici ci-dessous
la fenêtre en question :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn29.png)
Vous pouvez soit cliquez sur
« Précédent» pour
revenir sur la fenêtre de sélection des tâches
supplémentaires, soit sur
« Installer» pour poursuivre avec
l'installation en affichant la fenêtre installation en cours :
· Installation en cours
Cette fenêtre installe le logiciel sur votre disque
dur. Pendant ce temps veuillez patienter pendant que l'assistant installe le
logiciel sur votre ordinateur, cela peut prendre quelques minutes selon la
vitesse d'exécution des tâches dont dispose votre ordinateur.
Voici la fenêtre ci-dessous :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn30.png)
Sur cette fenêtre vous n'avez qu'une seule
possibilité, celle de cliquer sur
« Annuler » pour abandonner
l'installation.
· Fin
d'installation
Cette fenêtre informe que l'installation a
été bien faite et que le logiciel est prêt à
s'exécuter. L'utilisateur cliquera en suite sur
« Terminer ».
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn31.png)
Si vous ne souhaitez pas exécuter automatiquement le
logiciel après installation, décocher la case à cocher
« Exécuter Gest_Coopec »
qui est par défaut coché donc prêt à exécuter
automatiquement le logiciel après son installation, ensuite cliquez sur
« Terminer ».
4.7.2. Lancement de
l'application
A l'exécution de l'application, une fenêtre de
sécurité pour accéder aux différentes
fonctionnalités, nous exige de fournir les informations
d'authentification. Ici, nous avons prévu quatre utilisateurs
notamment : l'administrateur de la base de données, le
gérant de l'institution, les différents guichetiers au poste
dépôt et retrait.
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn32.png)
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn33.png)
L'authentification commence par le nom d'utilisateur, puis
sélectionner le privilège, ensuite tapez votre mot de passe et
enfin cliquer sur le bouton soumettre. Si vous tentez de vous connecter sans
succès l'application se ferme après trois essais. Une fois la
connexion établie, le formulaire principal s'ouvre tel
qu'illustré ci-dessous. Comme nous avons prévu les utilisateurs
avec privilège, ils peuvent tous accéder au formulaire du menu
principal mais ne peuvent pas effectuer les mêmes opérations dans
le système. L'administrateur a la main mise sur toutes les
opérations pour assurer la maintenance corrective et adaptative de
l'application. Le gérant est le second utilisateur ayant un
privilège important dans le système mais lorsqu'il se connecte,
il n'a pas droit d'effectuer la gestion des utilisateurs. Pour lui
l'accès à l'édition des utilisateurs reste
désactivé. Par la suite les autres utilisateurs impliqués
dans la gestion de dépôts n'ont accès qu'aux
différentes commandes concernant le dépôt et vice versa
pour le retrait
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn34.png)
En se connectant comme privilège
« admin », comme identifiant
« Theocent » et comme mot de
passe « vision »directement le
formulaire du menu principal récupère automatiquement votre nom
juste dans le coin haut droit en indiquant que tel utilisateur est
connecté. Et la zone de texte qui récupère l'identifiant
de l'utilisateur reste en lecture seul pour que l'utilisateur ne puisse pas le
modifier du fait que toutes les opérations que ce dernier effectuera
dans le système seront identifiées par son nom. Le formulaire du
menu principal est composé entre autre par différents menu et des
boutons de commandes juste à gauche du formulaire pour permettre
l'accès rapide à quelques opérations du système.
· Adhésion des membres
Pour l'identification des membres (adhésion des
membres) nous avons la possibilité de cliquer soit le menu
« Enregistrement » puis choisir
le sous Menu « Adhésion des
membres » ou alors passer par le volet d'accès
rapide en cliquant sur le bouton en image « Ajout des
membres ». Une fois effectuer la boite de dialogue
suivante nous apparait :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn35.png)
Sur cette boite de dialogue, nous avons la présence
entre autre des zones de texte pour la saisie des informations, des zones de
liste déroulantes pour le choix des valeurs prédéfinies.
La première zone de texte ayant comme étiquette
« Numéro Folio
attribué » reste désactivé. C'est
à ce niveau que l'attribution du numéro de compte s'effectue et
c'est le système qui s'encharge et n'ont l'utilisateur, par la suite
l'utilisateur peut continuer par compléter les autres informations
nécessaires à l'identification du membre. Comme nous pouvons le
constater, nous avons doté notre application de la capacité soit
de charger l'image du membre à partir d'un fichier en cliquant sur le
bouton parcourir juste à droite du formulaire de saisie ou soit de
capture à partir de la webcam de l'ordinateur en cliquant sur le bouton
capturer et après un petit moment une boite de dialogue activant la
webcam s'affiche en détectant l'image en face sur le formulaire
ci-dessous :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn36.png)
Après avoir effectué un clic sur le
bouton « Capturer », l'image
détectée s'affecte dans le cadre d'image juste à gauche du
formulaire. Notons que sur ce formulaire nous avons entre autre la
possibilité de capturer avec une source de capture externe. Il suffit
tout simplement de connecter une webcam externe et qu'elle soit reconnue par le
système d'exploitation, puis juste au niveau de la zone de liste
déroulante ayant comme étiquette « Source
de capture », sélectionner la source externe en
question et capturer à partir de ce dernier. Une fois l'image
capturée et affectée dans le cadre d'image à gauche,
faites un clic sur la case à cocher ayant comme étiquette
« Identifier l'image » et
directement la zone de texte en bas de la case à cocher s'active pour y
saisir le nom de l'image et en fin faites un clic sur le bouton
«Valider la prise» et directement le
formulaire de capture se ferme, ensuite l'image capturée s'affecte
automatiquement dans le cadre d'image se trouvant sur le formulaire
d'enregistrement des membres. Par la suite l'utilisateur peut poursuivre avec
la saisie d'autres informations sur le membre et enfin cliqué sur le
bouton « Enregistrer » du
formulaire d'adhésion des membres. Une fois l'opération de
sauvegarde effectuée, un message nous apparait, indiquant ce qui
suit :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn37.png)
Quand l'utilisateur clic sur le bouton
« OK » juste en au bas du
formulaire, un tableau génère automatiquement tous les
enregistrements déjà sauvés dans la base de
données. Sur l'ensemble des formulaires, nous avons également
prévu l'impression de toutes les données soit sur
Microsoft Office Excel, Word ou en PDF. Après
enregistrement il suffit de cliquer sur le bouton «
Imprimer »et patienter un tout petit moment, le
formulaire suivant s'affiche :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn38.png)
Vous soit imprimer directement les données ou soit de
les exporter sous Excel, Word ou PDF. Pour exporter, il suffit tout simplement
de cliquer sur le bouton ayant l'icône d'enregistrement et de choisir la
matrice d'exportation de votre choix puis l'application vous demande de choisir
un emplacement d'enregistrement de vos données.
· Dépôt des fonds
Au menu principal, nous avons, nous avons également le
bouton de commande nommé «Dépôt de
fonds », il suffit tout simplement de cliquer dessus et
directement le formulaire suivant s'affiche :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn39.png)
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn40.png)
Lors de l'ouverture, le formulaire est vide. Ici il suffit de
rechercher un membre enregistré dans le système par son
numéro de compte. Dans la zone texte ayant comme étiquette
« Numéro de compte », il
suffit tout simplement d'y taper le numéro de compte du membre dont
l'opération concerne et l'application affiche les informations relatives
au membre notamment son identité, sa photo et son solde en compte. Dans
le cas contraire, si vous saisissez un numéro de compte qui n'existe pas
dans le système l'application vous retourne le message d'erreur
suivant :
Par la suite, si le numéro de compte existe dans le
système, l'utilisateur à la possibilité, d'effectuer
l'opération de dépôt pour le membre concerné. La
procédure àsuivre est d'effectuer le billetage par coupure. Sur
le formulaire ci-dessus, nous avons donné aux utilisateurs la
possibilité de saisir le nombre de coupure par billet à
déposer soit allant de la coupure de 1 $ USD jusqu'à 100 $ USD.
Au fur et à mesure que l'utilisateur saisi les coupures à
déposer la zone de texte ayant comme étiquette
« Montant total à
déposer » récupère la
totalité du montant courant. Et le groupe d'option ayant comme
étiquette « Situation en compte
» regroupant deux zones de texte l'une ayant l'étiquette
«Ancien solde» et l'autre
« Nouveau solde »
s'incrémente en additionnant l'ensemble des coupures
déposées par le membre et à l'enregistrement, le solde se
met à jour depuis les informations concernant le membre. Puis
après enregistrement, un formulaire permettant d'imprimer le bordereau
courant s'affiche et c'est à l'utilisateur de s'en charger pour faire
une preuve dépôt au client.
Le bordereau de dépôt se présente comme
suit :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn41.png)
· Retrait de fonds
Pour accéder au formulaire de retrait, il suffit de se
situer sur le menu principal. Nous avons la possibilité d'y
accéder depuis le menu
« Enregistrement» ou tout simplement
en cliquant sur le bouton « Retrait de
fonds » depuis le volet d'accès rapide et du
coup le formulaire suivant s'affiche :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn42.png)
Sur le présent formulaire de retrait, nous avons entre
autre la possibilité de rechercher encore une fois le membre par son
numéro de compte pour retirer. Ici une fois le membre existe dans le
système, à partir de son numéro de compte nous pouvons
accéder à ces informations de base, notamment son
identité, sa photo et son solde en compte. Pour qu'un membre puisse
retirer de l'argent, il faut qu'il ait un solde supérieur au montant
à retirer. Dans le cas contraire, le système ne répondra
pas et probablement, il nous affichera le message d'erreur suivant :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn43.png)
En cas de message pareil, le système oblige
l'utilisateur à reprendre les opérations pour continuer.
Après opération de retrait, le système nous
génére automatiquement la preuve de retrait qui se
présente comme suit :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn44.png)
· Octroi des crédits
En se référant toujours au menu principal, nous
avons une possibilité d'octroyer les crédits aux
différents membres enregistrés dans le système. Il suffit
tout simplement d'effectuer un clic sur le bouton
« Accorder crédit»et du coup le
formulaire reprenant les informations sur l'octroi d'un crédit
s'affiche. Le formulaire en question ressemble à ceux-ci :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn45.png)
Comme nous pouvons le constater, sur le présent
formulaire, à gauche nous avons la possibilité de retrouver les
informations sur l'identité du membre à qui on veut octroyer le
crédit et à droite nous avons un autre volet. Ce volet permet
d'octroyé le crédit au membre. Entre autre, il faut commencer par
saisir le montant à donner en crédit, puis juste au niveau du
contrôle ayant comme étiquette «Type de
crédit », nous une suite crédit par
type :
· Il y a le crédit au salarié avec comme
taux d'intérêt 1,5 % du montant total à rembourser
· Il y a le crédit SYCOFOP (Système de
collecte de fonds sur place) avec taux d'intérêt de 2.5 et
· Il y a enfin le crédit express avec comme taux
d'intérêt 3 % sur le montant total à rembourser.
Et que donc, une fois le montant à donner en
crédit est saisie, il suffit que l'utilisateur sélectionne un
type de crédit dans la zone de liste déroulante et tout le reste
se calcul automatiquement. Nous pouvons citer le taux d'intérêt,
l'intérêt et le total à rembourser pour le crédit
concerné.
· Remboursement des crédits
Le présent formulaire nous donne la possibilité
entre autre de suivre le remboursement d'un crédit soit d'une
manière total ou partiel selon que la coopérative a pris les
conventions avec le client.
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn46.png)
La procédure à prendre ici, c'est de rechercher
le membre ayant un crédit par son l'identifiant du crédit. Une
fois le crédit est retrouvé, la suite nous affiche les
informations sur le membre dans le système et il nous affiche par la
suite le crédit qu'il doit à la coopérative. Il suffit
tout simplement alors de choisir dans la zone de liste déroulante le
type de remboursement à effectuer (partiel ou total). Par la suite nous
avons une zone de texte « Montant à
rembourser » dans laquelle il faut
impérativement saisir le montant remboursé. Une fois
l'utilisateur effectue la saisie du montant en question directement le cadre
d'objet nommé situation du crédit change de fréquence,
notamment au niveau des zones de texte «crédit
restant » et «Total à
rembourser» en indiquant à l'utilisateur le montant
restant à rembourser et le totalement à rembourser inclus
l'intérêt fixé. Après toutes ces manipulations, il
faut passer à l'enregistrement des opérations pour que le
système en prenne compte.
· Edition des utilisateurs
Par la suite nous avons prévu un formulaire pour
faciliter les utilisateurs du système. Et cette tâche revient
à l'administrateur du système. Voici comme se présente le
formulaire d'ajout et d'édition des utilisateurs du
système :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn47.png)
Ce formulaire est uniquement réservé à
l'administrateur du système. C'est ici où il faut ajouter les
utilisateurs dans le système avec le privilège, le modifier ou
le bloquer selon le cas.
Entre autre au niveau du menu principal, nous avons d'autres
menu que nous ne savons représenter ici en capture d'écran mais
qu'on peut exploiter une fois on dispose de l'application. Nous avons entre
autre le menu pour effectuer les mises à jour de membre, des
dépôts, des retraits, des crédits octroyés et de
remboursement effectués par les membres ayant des crédits.
A titre d'exmple, voici comment se présente le formulaire de mise
à jour des crédits octroyés :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn48.png)
Sur le formulaire ci-dessus, nous avons la possibilité
soit d'éditer ou de supprimer un crédit existant dans le
système. Pour le faire il suffit tout simplement de saisir l'identifiant
du crédit dans la zone de texte indiquée.
Nous avons ensuite un autre menu reprenant la synthèse
de l'ensemble des activités. Dans ce menu nous pouvons afficher la
situation de tous les membres en effectuant le tri par montant en compte
(croissant et décroissant), le tri par
numéro de compte, la synthèse sur le dépôt, retrait,
Crédit et remboursement et bien d'autres options.
Voici en image comme se présente le formulaire sur la
situation de tous les dépôts :
![](Developpement-dune-architecture-client-serveur-pour-la-gestion-des-cooperatives-depargn49.png)
Les codes sources
`Importation des bibliothèques
Imports System.Data.SqlClient
Imports System.Windows.Forms
Imports Microsoft.Office.Interop
Imports System.IO
` Gestion des utilisateurs avec les
privileges
Private Sub cmdsubmit_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles cmdsubmit.Click
theo += 1
If theo = 4 Then
MsgBox("Le nombre maximun d'essai a expiré!",
MsgBoxStyle.Exclamation, "Alerte!")
MsgBox("L'application va se fermer automatiquement
pour éviter tout dégat informatique!", MsgBoxStyle.Exclamation,
"Alerte!")
End
End If
Dim con As New
SqlClient.SqlConnection("server=Server;uid=sa;pwd=sql2005;database=Gestion_coopec")
Try
con.Open()
cmd = New SqlCommand("select *from T_Login where
(identifiant = '" & txtusername.Text & "' and privilege ='" &
ComboBox1.Text & "' and pwd = '" & txtpwd.Text & "')", con)
dr = cmd.ExecuteReader
If dr.HasRows = False Then
MsgBox("Nom d'utilisateur et/ou mot de passe
inconnu", MsgBoxStyle.Critical, "Identifiez-vous ou contacter l'administrateur
système")
theocent()
ElseIf dr.HasRows = True Then
dr.Read()
Accueil.TxtIdUser.Text = dr(0)
Accueil.txtNomUser.Text = dr(1)
If dr(3) = "Admin" Then
'Accès rapide
Accueil.cmd_membre.Enabled = True
Accueil.cmd_depot.Enabled = True
Accueil.cmd_kuweka.Enabled = True
Accueil.Button4.Enabled = True
Accueil.cmd_edituser.Enabled = True
Accueil.cmdRemb.Enabled = True
Accueil.cmd_recherhe.Enabled = True
Accueil.cmd_print.Enabled = True
Accueil.cmdPropos.Enabled = True
Accueil.cmd_close.Enabled = True
'Fichier
Accueil.ToolStripMenuItem2.Enabled = True
Accueil.GestionDesUtilisateursToolStripMenuItem1.Enabled = True
Accueil.ToolStripMenuItem3.Enabled = True
Accueil.QuitterToolStripMenuItem.Enabled =
True
'Enregistrement
Accueil.EnregistrementToolStripMenuItem.Enabled = True
Accueil.AdhésionDesMembresToolStripMenuItem.Enabled = True
Accueil.DépôtDesFondsToolStripMenuItem.Enabled = True
Accueil.RetraitDesFondsToolStripMenuItem.Enabled = True
Accueil.GestionDesCréditsToolStripMenuItem.Enabled = True
Accueil.RemboursementDunCréditToolStripMenuItem.Enabled = True
'Mise à jour
Accueil.ToolStripMenuItem1.Enabled = True
Accueil.MiseÀJourDesMembresToolStripMenuItem.Enabled = True
Accueil.MiseÀJourDesCompteUtilisateursToolStripMenuItem.Enabled =
True
Accueil.ActualiserLeRetraitsToolStripMenuItem.Enabled = True
Accueil.ActualiserLesCréditsToolStripMenuItem.Enabled = True
Accueil.ActualiserLesRemboursementsToolStripMenuItem.Enabled = True
'Synthèse
Accueil.RemboursementToolStripMenuItem.Enabled = True
Accueil.ToolStripMenuItem5.Enabled = True
Accueil.ToolStripMenuItem4.Enabled = True
Accueil.FicheÉpargneToolStripMenuItem.Enabled = True
Accueil.TousLesRemboursementsToolStripMenuItem.Enabled = True
Accueil.TousLesRemboursementsToolStripMenuItem1.Enabled = True
'Paramètres
Accueil.OutilsDadministrationToolStripMenuItem.Enabled = True
Accueil.GestionDesUtilisateursToolStripMenuItem.Enabled = True
Accueil.EditionDesUtilisateursToolStripMenuItem.Enabled = True
Accueil.NotepadToolStripMenuItem.Enabled =
True
Accueil.PenséésBêtesToolStripMenuItem.Enabled = True
'j'efface les information en rapport avec la
connexion pour qu'un autre ne vienne se connecter avec ça.
theocent()
Accueil.Show()
Me.Hide()
Else
If dr(3) = "Gérant" Then
'Accès rapide
Accueil.cmd_membre.Enabled = True
Accueil.cmd_depot.Enabled = False
Accueil.cmd_kuweka.Enabled = False
Accueil.Button4.Enabled = True
'Crédit
Accueil.cmd_edituser.Enabled = False
Accueil.cmdRemb.Enabled = True
Accueil.cmd_recherhe.Enabled = True
Accueil.cmd_print.Enabled = True
Accueil.cmdPropos.Enabled = True
Accueil.cmd_close.Enabled = True
'Fichier
Accueil.ToolStripMenuItem2.Enabled =
True
Accueil.GestionDesUtilisateursToolStripMenuItem1.Enabled = False
Accueil.ToolStripMenuItem3.Enabled =
True
Accueil.QuitterToolStripMenuItem.Enabled
= True
'Enregistrement
Accueil.EnregistrementToolStripMenuItem.Enabled = True
Accueil.AdhésionDesMembresToolStripMenuItem.Enabled = True
Accueil.DépôtDesFondsToolStripMenuItem.Enabled = False
Accueil.RetraitDesFondsToolStripMenuItem.Enabled = False
Accueil.GestionDesCréditsToolStripMenuItem.Enabled = True
Accueil.RemboursementDunCréditToolStripMenuItem.Enabled = True
'Mise à jour
Accueil.ToolStripMenuItem1.Enabled =
True
Accueil.MiseÀJourDesMembresToolStripMenuItem.Enabled = True
Accueil.MiseÀJourDesCompteUtilisateursToolStripMenuItem.Enabled =
False
Accueil.ActualiserLeRetraitsToolStripMenuItem.Enabled = False
Accueil.ActualiserLesCréditsToolStripMenuItem.Enabled = True
Accueil.ActualiserLesRemboursementsToolStripMenuItem.Enabled = True
'Synthèse
Accueil.RemboursementToolStripMenuItem.Enabled = True
Accueil.ToolStripMenuItem5.Enabled =
True
Accueil.ToolStripMenuItem4.Enabled =
True
Accueil.FicheÉpargneToolStripMenuItem.Enabled = True
Accueil.TousLesRemboursementsToolStripMenuItem.Enabled = True
Accueil.TousLesRemboursementsToolStripMenuItem1.Enabled = True
'Paramètres
Accueil.OutilsDadministrationToolStripMenuItem.Enabled = True
Accueil.GestionDesUtilisateursToolStripMenuItem.Enabled = False
Accueil.EditionDesUtilisateursToolStripMenuItem.Enabled = True 'Calculatrice
Accueil.NotepadToolStripMenuItem.Enabled
= True
Accueil.PenséésBêtesToolStripMenuItem.Enabled = True
theocent()
Accueil.Show()
Me.Hide()
Else
If dr(3) = "Depot" Then
'Accès rapide
Accueil.cmd_membre.Enabled = False
Accueil.cmd_depot.Enabled = True
Accueil.cmd_kuweka.Enabled = False
Accueil.Button4.Enabled = False
'Crédit
Accueil.cmd_edituser.Enabled =
False
Accueil.cmdRemb.Enabled = False
Accueil.cmd_recherhe.Enabled =
True
Accueil.cmd_print.Enabled = False
Accueil.cmdPropos.Enabled = True
Accueil.cmd_close.Enabled = True
'Fichier
Accueil.ToolStripMenuItem2.Enabled =
True
Accueil.GestionDesUtilisateursToolStripMenuItem1.Enabled = False
Accueil.ToolStripMenuItem3.Enabled =
False
Accueil.QuitterToolStripMenuItem.Enabled = True
'Enregistrement
Accueil.EnregistrementToolStripMenuItem.Enabled = True
Accueil.AdhésionDesMembresToolStripMenuItem.Enabled = False
Accueil.DépôtDesFondsToolStripMenuItem.Enabled = True
Accueil.RetraitDesFondsToolStripMenuItem.Enabled = False
Accueil.GestionDesCréditsToolStripMenuItem.Enabled = False
Accueil.RemboursementDunCréditToolStripMenuItem.Enabled = False
'Mise à jour
Accueil.ToolStripMenuItem1.Enabled =
True
Accueil.MiseÀJourDesMembresToolStripMenuItem.Enabled = False
Accueil.MiseÀJourDesCompteUtilisateursToolStripMenuItem.Enabled = True
'Depot
Accueil.ActualiserLeRetraitsToolStripMenuItem.Enabled = False
Accueil.ActualiserLesCréditsToolStripMenuItem.Enabled = False
Accueil.ActualiserLesRemboursementsToolStripMenuItem.Enabled = False
'Synthèse
Accueil.RemboursementToolStripMenuItem.Enabled = True
Accueil.ToolStripMenuItem5.Enabled =
False
Accueil.ToolStripMenuItem4.Enabled =
True
Accueil.FicheÉpargneToolStripMenuItem.Enabled = False
Accueil.TousLesRemboursementsToolStripMenuItem.Enabled = False
Accueil.TousLesRemboursementsToolStripMenuItem1.Enabled = False
'Paramètres
Accueil.OutilsDadministrationToolStripMenuItem.Enabled = True
Accueil.GestionDesUtilisateursToolStripMenuItem.Enabled = False
Accueil.EditionDesUtilisateursToolStripMenuItem.Enabled = True 'Calculatrice
Accueil.NotepadToolStripMenuItem.Enabled = True
Accueil.PenséésBêtesToolStripMenuItem.Enabled = True
theocent()
Accueil.Show()
Me.Hide()
Else
If dr(3) = "Retrait" Then
'Accès rapide
Accueil.cmd_membre.Enabled =
False
Accueil.cmd_depot.Enabled =
False
Accueil.cmd_kuweka.Enabled = True
'Retrait
Accueil.Button4.Enabled = False
'Crédit
Accueil.cmd_edituser.Enabled =
False
Accueil.cmdRemb.Enabled =
False
Accueil.cmd_recherhe.Enabled =
True
Accueil.cmd_print.Enabled =
False
Accueil.cmdPropos.Enabled =
True
Accueil.cmd_close.Enabled =
True
'Fichier
Accueil.ToolStripMenuItem2.Enabled = True
Accueil.GestionDesUtilisateursToolStripMenuItem1.Enabled = False
Accueil.ToolStripMenuItem3.Enabled = False
Accueil.QuitterToolStripMenuItem.Enabled = True
'Enregistrement
Accueil.EnregistrementToolStripMenuItem.Enabled = True
Accueil.AdhésionDesMembresToolStripMenuItem.Enabled = False
Accueil.DépôtDesFondsToolStripMenuItem.Enabled = False
Accueil.RetraitDesFondsToolStripMenuItem.Enabled = True
Accueil.GestionDesCréditsToolStripMenuItem.Enabled = False
Accueil.RemboursementDunCréditToolStripMenuItem.Enabled = False
'Mise à jour
Accueil.ToolStripMenuItem1.Enabled = True
Accueil.MiseÀJourDesMembresToolStripMenuItem.Enabled = False
Accueil.MiseÀJourDesCompteUtilisateursToolStripMenuItem.Enabled = False
'Depot
Accueil.ActualiserLeRetraitsToolStripMenuItem.Enabled = True
Accueil.ActualiserLesCréditsToolStripMenuItem.Enabled = False
Accueil.ActualiserLesRemboursementsToolStripMenuItem.Enabled = False
'Synthèse
Accueil.RemboursementToolStripMenuItem.Enabled = True
Accueil.ToolStripMenuItem5.Enabled = False
Accueil.ToolStripMenuItem4.Enabled = False
Accueil.FicheÉpargneToolStripMenuItem.Enabled = True
Accueil.TousLesRemboursementsToolStripMenuItem.Enabled = False
Accueil.TousLesRemboursementsToolStripMenuItem1.Enabled = False
'Paramètres
Accueil.OutilsDadministrationToolStripMenuItem.Enabled = True
Accueil.GestionDesUtilisateursToolStripMenuItem.Enabled = False
Accueil.EditionDesUtilisateursToolStripMenuItem.Enabled = True 'Calculatrice
Accueil.NotepadToolStripMenuItem.Enabled = True
Accueil.PenséésBêtesToolStripMenuItem.Enabled = True
theocent()
Accueil.Show()
Me.Hide()
End If
End If
End If
End If
End If
dr.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
`Parcourir l'exlorateur windows pour insèrer une
photo
Public Class Frm_Membre
Dim adapter As New SqlDataAdapter
Dim ds As New DataSet
Private Sub Button4_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button4.Click
Form1.ShowDialog()
End Sub
` Parcourir l'explorateur Windows pour choisir une photo
Private Sub btnparcourir_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnparcourir.Click
Dim theocent As New OpenFileDialog
theocent.ShowDialog()
theocent.InitialDirectory = "c:\Photos"
theocent.Filter = "Photo en Jpg (*.jpg)|*.txt|Coopec
(*.*)|*.*"
If theocent.FileName <> "" Then
TxtPhoto.Text = "c:\Photos\" &
Dir(theocent.FileName)
Picphoto.Image = Image.FromFile(theocent.FileName)
End If
End Sub
`Enregistrement des données en SQL
Server
Private Sub cmdSave_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles cmdSave.Click
If txtnom.TextLength = 0 Then
MsgBox("Les noms de l'agent sont
recommandés!", MsgBoxStyle.Information, "Gest Coopec")
txtnom.Focus()
Exit Sub
End If
Dim con As New SqlConnection("server=Server; uid=sa;
pwd=sql2005; database=Gestion_coopec")
Dim table As New DataTable
Try
con.Open()
Dim com As New SqlCommand("insert into
Membre(Nom,Postnom,Datenaissance,Lieunais,Sexe,NumCarteId,Profession,Tel_bureau,Tel_mobile,Etacivil,Commune,Quartier,DateAdhesion,Lieu_Adhesion,Photo,Frais_ouverture,Montant_solde)
values('" + txtnom.Text + "','" + txtpost.Text + "',convert(datetime,'" +
txtdatenaiss.Value + "',103),'" + txtlieunaiss.Text + "','" +
combosexe.SelectedItem + "','" + txtid.Text + "','" + txtprofession.Text +
"','" + txttel.Text + "','" + txtmobil.Text + "','" + combostatut.SelectedItem
+ "','" + txtcomune.Text + "','" + txtquartier.Text + "',CONVERT(datetime,'" +
txtdate.Value + "',103),'" + txtlieuouvert.Text + "','" + TxtPhoto.Text + "','"
+ txtfrais.Text + "','" + txt_montantsolde.Text + "')", con)
com.ExecuteNonQuery()
adapter = New SqlDataAdapter("select
NumFolio,Nom,Postnom,Datenaissance,Lieunais,Sexe,NumCarteId,Profession,Tel_bureau,Tel_mobile,Etacivil,Commune,Quartier,DateAdhesion,Lieu_Adhesion,Photo,Frais_ouverture,Montant_solde
from Membre", con)
adapter.Fill(table)
Me.DataGridView1.AutoGenerateColumns = True
Me.DataGridView1.DataSource = table
theocent()
MsgBox("Le membre a été
enregistré avec succès!")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
`Nettoyage des contrôles après
enregistrement
Public Sub theocent()
txtfolio.Text = ""
txtfrais.Text = ""
txt_montantsolde.Text = ""
txtnom.Text = ""
txtpost.Text = ""
combosexe.Text = ""
combostatut.Text = ""
txtid.Text = ""
txtprofession.Text = ""
txtlieunaiss.Text = ""
'txtdatenaiss.value = ""
txtlieuouvert.Text = ""
txtcomune.Text = ""
'txtdate.value = ""
txtmobil.Text = ""
txttel.Text = ""
txtquartier.Text = ""
TxtPhoto.Text = ""
Picphoto.Image = Nothing
End Sub
`Appel de la procedure pour le nettoyage des
champs
Private Sub txtnum_recherche_Click(ByVal sender As Object,
ByVal e As System.EventArgs)
theocent()
End Sub
`Exportation des données vers Excel
Private Sub cmdExcel_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles cmdExcel.Click
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim misValue As Object =
System.Reflection.Missing.Value
Dim i As Integer
Dim j As Integer
xlApp = New Excel.ApplicationClass
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets("Feuil1")
For i = 0 To DataGridView1.RowCount - 2
For j = 0 To DataGridView1.ColumnCount - 1
xlWorkSheet.Cells(i + 1, j + 1) = _
DataGridView1(j, i).Value.ToString()
Next
Next
xlWorkSheet.SaveAs(Application.StartupPath & "\Les
membres.xls") 'enregistre dans le dossier Debug de l'application
'xlWorkBook.Application.Visible = True
'xlWorkBook.Activate()
xlWorkBook.Close()
xlApp.Quit()
releaseObject(xlApp)
releaseObject(xlWorkBook)
releaseObject(xlWorkSheet)
'xlWorkBook.Application.Visible = True
'xlWorkBook.Activate()
MessageBox.Show("Exportation réussie," &
vbNewLine & "vous aurez vos données sur une matrice Excel à
l'instant", "Exportez vers Excel", MessageBoxButtons.OK,
MessageBoxIcon.Information)
End Sub
`Procédure d'initialisation de l'application Excel
Private Sub releaseObject(ByVal obj As Object)
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
obj = Nothing
Catch ex As Exception
obj = Nothing
Finally
GC.Collect()
End Try
End Sub
` Fonction pour interdir la saisie des
alphanumériques dans le zones de texte numérique
Public Sub ControleTextBox(ByRef e As
System.Windows.Forms.KeyPressEventArgs)
If InStr("0123456789", e.KeyChar) = 0 And e.KeyChar
<> vbBack Then
e.Handled = True
MsgBox(" Vous devez retourner un caractère
numérique pour poursuivre les opération", vbCritical, "Gest
Coopec")
End If
End Sub
`Appel de la fonction
Private Sub txtfrais_KeyPress(ByVal sender As Object, ByVal e
As System.Windows.Forms.KeyPressEventArgs) Handles txtfrais.KeyPress
ControleTextBox(e)
End Sub
End Class
`Procédure pour rechercher un enregistrement
existant dans la base
Private Sub txtnum_recherche_Leave(ByVal sender As Object, ByVal
e As System.EventArgs) Handles txtnum_recherche.Leave
Dim con As New SqlConnection("server=Server; uid=sa;
pwd=sql2005; database=Gestion_coopec")
'Dim table As New DataTable
con.Open()
Dim com As New SqlCommand("SELECT
NumFolio,Nom,Postnom,Datenaissance,Lieunais,Sexe,NumCarteId,Profession,Tel_bureau,Tel_mobile,Etacivil,Commune,Quartier,DateAdhesion,Lieu_Adhesion,Photo,Frais_ouverture,Montant_solde
FROM Membre where NumFolio='" & txtnum_recherche.Text.Trim() & "'",
con)
Dim dr As SqlDataReader = com.ExecuteReader()
If dr.Read() Then
Me.txtfolio.Text = dr("NumFolio").ToString() '1
Me.txtfrais.Text = dr("Frais_ouverture").ToString()
'2
Me.txt_montantsolde.Text =
dr("Montant_solde").ToString() '3
Me.txtnom.Text = dr("Nom").ToString() '4
Me.txtpost.Text = dr("Postnom").ToString() '5
Me.txtdatenaiss.Value =
dr("Datenaissance").ToString() '6
Me.txtlieunaiss.Text = dr("Lieunais").ToString()
'7
Me.combosexe.Text = dr("Sexe").ToString() '8
Me.txtid.Text = dr("NumCarteId").ToString() '9
Me.txtprofession.Text = dr("Profession").ToString()
'11
Me.txttel.Text = dr("Tel_bureau").ToString() '12
Me.txtmobil.Text = dr("Tel_mobile").ToString() '13
Me.combostatut.Text = dr("Etacivil").ToString()
'14
Me.txtcomune.Text = dr("Commune").ToString() '15
Me.txtquartier.Text = dr("Quartier").ToString()
'16
Me.txtdate.Value = dr("DateAdhesion").ToString()
'17
txtlieuouvert.Text =
dr("Lieu_Adhesion").ToString()
Me.TxtPhoto.Text = dr("Photo").ToString() '18
Me.cmdDel.Enabled = True
Try
Me.TxtPhoto.Text = dr("Photo")
Me.Picphoto.Image =
Image.FromFile(TxtPhoto.Text)
Catch ex As Exception
Me.Picphoto.Image = Nothing
Me.Picphoto.Image =
Image.FromFile("c:\Photos\WCcapture &.jpg")
End Try
'adapter = New SqlDataAdapter("select* from Membre
where NumFolio='" + txtnum_recherche.Text + "'", con)
'adapter.Fill(table)
'Me.DataGridView1.AutoGenerateColumns = True
'Me.DataGridView1.DataSource = table
'Me.cmdDel.Enabled = True
'@ Theocent_Soft, Inc
Else
MsgBox("Ce numéro de compte est mal
orthograhié ou inéxistant, veillez le retaper!!!!",
MsgBoxStyle.Critical)
txtnum_recherche.Text = ""
txtnum_recherche.Focus()
End If
End Sub
Private Sub cmdEdit_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles cmdEdit.Click
If txtfolio.TextLength = 0 Then
MsgBox("La mise à jour doit s'effectuer
d'abord au niveau du numéro de compte!!", MsgBoxStyle.OkOnly, "info")
'MsgBox("Vous ne povez pas modifier sans
insèrer un numéro de compte", MsgBoxStyle.Information, "info")
txtfolio.Focus()
Exit Sub
End If
Dim con As New SqlConnection("server=Server; uid=sa;
pwd=sql2005; database=Gestion_coopec")
Dim table As New DataTable
Try
con.Open()
Dim com As New SqlCommand("update Membre set Nom='" +
txtnom.Text + "',Postnom='" + txtpost.Text + "',Lieunais='" + txtlieunaiss.Text
+ "',Sexe='" + combosexe.Text + "',NumCarteId='" + txtid.Text +
"',Profession='" + txtprofession.Text + "',Tel_bureau='" + txttel.Text +
"',Tel_mobile='" + txtmobil.Text + "',Etacivil='" + combostatut.Text +
"',Commune='" + txtcomune.Text + "',Quartier='" + txtquartier.Text +
"',Lieu_Adhesion='" + txtlieuouvert.Text + "',Photo='" + TxtPhoto.Text +
"',Frais_ouverture='" + txtfrais.Text + "',Montant_solde='" +
txt_montantsolde.Text + "' where NumFolio='" + txtfolio.Text + "'", con)
com.ExecuteNonQuery()
theocent()
adapter = New SqlDataAdapter("select* from Membre",
con)
adapter.Fill(table)
Me.DataGridView1.AutoGenerateColumns = True
Me.DataGridView1.DataSource = table
MsgBox("La mise à jour a été
effectuer avec succès", vbInformation, "Gest Nyalukemba")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub cmdDel_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles cmdDel.Click
If txtfolio.TextLength = 0 Then
MsgBox("Veillez rechercher un utilisateur par son nom
avant d'effectuer cette opération", MsgBoxStyle.Information, "Gest
Coopec")
txtnum_recherche.Focus()
End If
Try
Dim con As New
SqlConnection("server=Server;uid=sa;pwd=sql2005;database=Gestion_coopec")
con.Open()
Dim cmd As New SqlCommand("delete from Membre where
NumFolio='" & txtfolio.Text & "'", con)
cmd.ExecuteNonQuery()
Me.theocent()
MsgBox("Le numéro de compte '" &
txtnum_recherche.Text & "' a été suprimé avec
succès!!!")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
` Procédure pour modifier un
enregistrement
rivate Sub cmdEdit_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles cmdEdit.Click
If txtfolio.TextLength = 0 Then
MsgBox("La mise à jour doit s'effectuer
d'abord au niveau du numéro de compte!!", MsgBoxStyle.OkOnly, "info")
'MsgBox("Vous ne povez pas modifier sans
insèrer un numéro de compte", MsgBoxStyle.Information, "info")
txtfolio.Focus()
Exit Sub
End If
Dim con As New SqlConnection("server=Server; uid=sa;
pwd=sql2005; database=Gestion_coopec")
Dim table As New DataTable
Try
con.Open()
Dim com As New SqlCommand("update Membre set Nom='" +
txtnom.Text + "',Postnom='" + txtpost.Text + "',Lieunais='" + txtlieunaiss.Text
+ "',Sexe='" + combosexe.Text + "',NumCarteId='" + txtid.Text +
"',Profession='" + txtprofession.Text + "',Tel_bureau='" + txttel.Text +
"',Tel_mobile='" + txtmobil.Text + "',Etacivil='" + combostatut.Text +
"',Commune='" + txtcomune.Text + "',Quartier='" + txtquartier.Text +
"',Lieu_Adhesion='" + txtlieuouvert.Text + "',Photo='" + TxtPhoto.Text +
"',Frais_ouverture='" + txtfrais.Text + "',Montant_solde='" +
txt_montantsolde.Text + "' where NumFolio='" + txtfolio.Text + "'", con)
com.ExecuteNonQuery()
theocent()
adapter = New SqlDataAdapter("select* from Membre",
con)
adapter.Fill(table)
Me.DataGridView1.AutoGenerateColumns = True
Me.DataGridView1.DataSource = table
MsgBox("La mise à jour a été
effectuer avec succès", vbInformation, "Gest Nyalukemba")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
` Procédure pour supprimer un
enregistrement
Private Sub cmdDel_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles cmdDel.Click
If txtfolio.TextLength = 0 Then
MsgBox("Veillez rechercher un utilisateur par son nom
avant d'effectuer cette opération", MsgBoxStyle.Information, "Gest
Coopec")
txtnum_recherche.Focus()
End If
Try
Dim con As New
SqlConnection("server=Server;uid=sa;pwd=sql2005;database=Gestion_coopec")
con.Open()
Dim cmd As New SqlCommand("delete from Membre where
NumFolio='" & txtfolio.Text & "'", con)
cmd.ExecuteNonQuery()
Me.theocent()
MsgBox("Le numéro de compte '" &
txtnum_recherche.Text & "' a été suprimé avec
succès!!!")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
`Procédure pour capturer les images
Imports DirectX.Capture
Imports System.Drawing
Imports System.Drawing.Imaging
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Code généré par le Concepteur
Windows Form "
Dim WCcapture As String
Public Sub New()
MyBase.New()
'Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()
'Ajoutez une initialisation quelconque après
l'appel InitializeComponent()
End Sub
'La méthode substituée Dispose du formulaire
pour nettoyer la liste des composants.
Protected Overloads Overrides Sub Dispose(ByVal disposing As
Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Requis par le Concepteur Windows Form
Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par
le Concepteur Windows Form
'Elle peut être modifiée en utilisant le
Concepteur Windows Form.
'Ne la modifiez pas en utilisant l'éditeur de code.
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents ComboBox1 As
System.Windows.Forms.ComboBox
Friend WithEvents ComboBox2 As
System.Windows.Forms.ComboBox
Friend WithEvents PicCam As
System.Windows.Forms.PictureBox
Friend WithEvents CmdCapture As
System.Windows.Forms.Button
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Button2 As System.Windows.Forms.Button
Friend WithEvents GroupBox1 As
System.Windows.Forms.GroupBox
Friend WithEvents CheckBox1 As
System.Windows.Forms.CheckBox
Friend WithEvents cmdvalide As System.Windows.Forms.Button
Friend WithEvents txtnomCapt As
System.Windows.Forms.TextBox
Friend WithEvents PicCapture As
System.Windows.Forms.PictureBox
<System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()
Dim resources As
System.ComponentModel.ComponentResourceManager = New
System.ComponentModel.ComponentResourceManager(GetType(Form1))
Me.Button1 = New System.Windows.Forms.Button()
Me.PicCapture = New System.Windows.Forms.PictureBox()
Me.ComboBox1 = New System.Windows.Forms.ComboBox()
Me.ComboBox2 = New System.Windows.Forms.ComboBox()
Me.PicCam = New System.Windows.Forms.PictureBox()
Me.CmdCapture = New System.Windows.Forms.Button()
Me.Label1 = New System.Windows.Forms.Label()
Me.Button2 = New System.Windows.Forms.Button()
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
Me.cmdvalide = New System.Windows.Forms.Button()
Me.txtnomCapt = New System.Windows.Forms.TextBox()
Me.CheckBox1 = New System.Windows.Forms.CheckBox()
CType(Me.PicCapture,
System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PicCam,
System.ComponentModel.ISupportInitialize).BeginInit()
Me.GroupBox1.SuspendLayout()
Me.SuspendLayout()
'
'Button1
'
Me.Button1.BackColor =
System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer),
CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer))
Me.Button1.Image =
CType(resources.GetObject("Button1.Image"), System.Drawing.Image)
Me.Button1.ImageAlign =
System.Drawing.ContentAlignment.MiddleLeft
Me.Button1.Location = New System.Drawing.Point(303,
385)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(295, 31)
Me.Button1.TabIndex = 1
Me.Button1.Text = "Valider la configuration"
Me.Button1.UseVisualStyleBackColor = False
'
'PicCapture
'
Me.PicCapture.BackColor =
System.Drawing.SystemColors.ActiveBorder
Me.PicCapture.BorderStyle =
System.Windows.Forms.BorderStyle.Fixed3D
Me.PicCapture.Location = New System.Drawing.Point(12,
12)
Me.PicCapture.Name = "PicCapture"
Me.PicCapture.Size = New System.Drawing.Size(275, 234)
Me.PicCapture.TabIndex = 7
Me.PicCapture.TabStop = False
'
'ComboBox1
'
Me.ComboBox1.FormattingEnabled = True
Me.ComboBox1.Location = New System.Drawing.Point(113,
394)
Me.ComboBox1.Name = "ComboBox1"
Me.ComboBox1.Size = New System.Drawing.Size(174, 21)
Me.ComboBox1.TabIndex = 9
'
'ComboBox2
'
Me.ComboBox2.FormattingEnabled = True
Me.ComboBox2.Location = New System.Drawing.Point(803,
391)
Me.ComboBox2.Name = "ComboBox2"
Me.ComboBox2.Size = New System.Drawing.Size(44, 21)
Me.ComboBox2.TabIndex = 10
'
'PicCam
'
Me.PicCam.BackColor =
System.Drawing.SystemColors.ActiveBorder
Me.PicCam.BorderStyle =
System.Windows.Forms.BorderStyle.Fixed3D
Me.PicCam.Location = New System.Drawing.Point(303, 12)
Me.PicCam.Name = "PicCam"
Me.PicCam.Size = New System.Drawing.Size(295, 367)
Me.PicCam.TabIndex = 12
Me.PicCam.TabStop = False
'
'CmdCapture
'
Me.CmdCapture.BackColor =
System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer),
CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer))
Me.CmdCapture.Font = New System.Drawing.Font("Microsoft
Sans Serif", 18.0!, System.Drawing.FontStyle.Bold,
System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.CmdCapture.ForeColor = System.Drawing.Color.Navy
Me.CmdCapture.Image =
CType(resources.GetObject("CmdCapture.Image"), System.Drawing.Image)
Me.CmdCapture.Location = New System.Drawing.Point(617,
12)
Me.CmdCapture.Name = "CmdCapture"
Me.CmdCapture.Size = New System.Drawing.Size(129, 318)
Me.CmdCapture.TabIndex = 11
Me.CmdCapture.Text = "Capturer"
Me.CmdCapture.UseVisualStyleBackColor = False
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(9, 396)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(98, 13)
Me.Label1.TabIndex = 13
Me.Label1.Text = "Source de capture:"
'
'Button2
'
Me.Button2.BackColor =
System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer),
CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer))
Me.Button2.Font = New System.Drawing.Font("Microsoft Sans
Serif", 8.25!, System.Drawing.FontStyle.Bold,
System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Button2.ForeColor =
System.Drawing.SystemColors.Desktop
Me.Button2.Image =
CType(resources.GetObject("Button2.Image"), System.Drawing.Image)
Me.Button2.Location = New System.Drawing.Point(617,
336)
Me.Button2.Name = "Button2"
Me.Button2.Size = New System.Drawing.Size(128, 80)
Me.Button2.TabIndex = 14
Me.Button2.Text = "Annuler"
Me.Button2.TextAlign =
System.Drawing.ContentAlignment.BottomCenter
Me.Button2.UseVisualStyleBackColor = False
'
'GroupBox1
'
Me.GroupBox1.BackColor =
System.Drawing.SystemColors.ActiveBorder
Me.GroupBox1.Controls.Add(Me.cmdvalide)
Me.GroupBox1.Controls.Add(Me.txtnomCapt)
Me.GroupBox1.Controls.Add(Me.CheckBox1)
Me.GroupBox1.Location = New System.Drawing.Point(12,
252)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(275, 127)
Me.GroupBox1.TabIndex = 15
Me.GroupBox1.TabStop = False
Me.GroupBox1.Text = "Zone de sauvegarge"
'
'cmdvalide
'
Me.cmdvalide.BackColor =
System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer),
CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer))
Me.cmdvalide.Font = New System.Drawing.Font("Microsoft
Sans Serif", 9.75!, System.Drawing.FontStyle.Bold,
System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cmdvalide.ForeColor = System.Drawing.Color.Navy
Me.cmdvalide.Image =
CType(resources.GetObject("cmdvalide.Image"), System.Drawing.Image)
Me.cmdvalide.Location = New System.Drawing.Point(134,
16)
Me.cmdvalide.Name = "cmdvalide"
Me.cmdvalide.Size = New System.Drawing.Size(95, 105)
Me.cmdvalide.TabIndex = 2
Me.cmdvalide.Text = "Valider la prise"
Me.cmdvalide.TextAlign =
System.Drawing.ContentAlignment.BottomCenter
Me.cmdvalide.UseVisualStyleBackColor = False
'
'txtnomCapt
'
Me.txtnomCapt.Location = New System.Drawing.Point(6,
58)
Me.txtnomCapt.Name = "txtnomCapt"
Me.txtnomCapt.Size = New System.Drawing.Size(122, 20)
Me.txtnomCapt.TabIndex = 1
'
'CheckBox1
'
Me.CheckBox1.AutoSize = True
Me.CheckBox1.Location = New System.Drawing.Point(6,
30)
Me.CheckBox1.Name = "CheckBox1"
Me.CheckBox1.Size = New System.Drawing.Size(101, 17)
Me.CheckBox1.TabIndex = 0
Me.CheckBox1.Text = "Identifier l'image"
Me.CheckBox1.UseVisualStyleBackColor = True
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.BackColor = System.Drawing.SystemColors.Control
Me.ClientSize = New System.Drawing.Size(757, 428)
Me.Controls.Add(Me.GroupBox1)
Me.Controls.Add(Me.Button2)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.CmdCapture)
Me.Controls.Add(Me.ComboBox2)
Me.Controls.Add(Me.ComboBox1)
Me.Controls.Add(Me.PicCapture)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.PicCam)
Me.Icon = CType(resources.GetObject("$this.Icon"),
System.Drawing.Icon)
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "Form1"
Me.StartPosition =
System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Capture d'une photo"
CType(Me.PicCapture,
System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PicCam,
System.ComponentModel.ISupportInitialize).EndInit()
Me.GroupBox1.ResumeLayout(False)
Me.GroupBox1.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
#End Region
` A l'ouverture du formulaire recherche des dispositives
vidéos
Private Sub Form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim j As Short
Dim f As Filter
Try
'listage des peripheriques video installés sur
la machine
ComboBox1.Items.Clear()
For j = 0 To Dispositivos.VideoInputDevices.Count -
1
f = Dispositivos.VideoInputDevices(j)
ComboBox1.Items.Add(f.Name)
Next
If j > 0 Then ComboBox1.SelectedIndex = 0
'listage des peripheriques audio installés sur
la machine
ComboBox2.Items.Clear()
For j = 0 To Dispositivos.AudioInputDevices.Count -
1
f = Dispositivos.AudioInputDevices(j)
ComboBox2.Items.Add(f.Name)
Next
If j > 0 Then ComboBox2.SelectedIndex = 0
'pre configuration du capturing
'definission de la camera
CaptureInformation2.Camera =
Dispositivos.VideoInputDevices(ComboBox1.SelectedIndex)
'mise en place du stream video et audio
CaptureInformation2.CaptureInfo = New
DirectX.Capture.Capture(CaptureInformation2.Camera,
Dispositivos.AudioInputDevices(ComboBox2.SelectedIndex))
'renseignement du panneau d'affichage de la video
CaptureInformation2.CaptureInfo.PreviewWindow =
PicCam
'compteur pour les capture d'image (frame video)
CaptureInformation2.Counter = 1
CaptureInformation2.CounterFrames = 1
'configurations avancées
Configurer()
'pour faire plus joli
Button1.Enabled = False
'pour la gestion evennementiel de la capture d'ecran
je cree un gestionnaire d evennement sur Framecapturecomplete
AddHandler
CaptureInformation2.CaptureInfo.FrameCaptureComplete, AddressOf
NewCaptureReady
Catch ex As Exception
MsgBox(ex.Message)
End
End Try
'******pour la sauvegarde de mon image
If CheckBox1.Checked = True Then
cmdvalide.Enabled = True
txtnomCapt.Enabled = True
Else
cmdvalide.Enabled = False
txtnomCapt.Enabled = False
End If
'**************************************
End Sub
` Module pour préparer la configuration de l'image
dans l'environnement Windows
Private Sub Configurer()
Try
'configurations avancées
'configuration du systeme de compression video et
audio
CaptureInformation2.CaptureInfo.VideoCompressor =
Dispositivos.VideoCompressors(1) 'compression video
'taille de la video
CaptureInformation2.CaptureInfo.FrameSize = New
Size(320, 240) 'taille de la video
'FPS de la video
CaptureInformation2.CaptureInfo.FrameRate = 50
'FPS
'fichier .avi
''CaptureInformation.CaptureInfo.Filename =
Application.StartupPath + "\essai.avi"
'lancement du streaming d'affichage
CaptureInformation2.CaptureInfo.RenderPreview()
Catch ex As Exception
MsgBox(ex.Message)
End
End Try
End Sub
` Procédure pour capturer à nouveau si
l'image capturée ne vous plait pas
Private Sub NewCaptureReady(ByVal Sender As
System.Windows.Forms.PictureBox)
'appele par le gestionnaire de handler sur l'evennement
"FrameCapture
'ma picture capturé est arrivée...
Dim la As PictureBox = CType(Sender, PictureBox) 'la je
converti mon picturebox en picturebox...je sais pas pourquoi, fo le faire sinom
ca marche pas
Try
PicCapture.Image = la.Image 'j affecte ma capture
d'image a mon picturebox qui attend que ca.
Catch ex As Exception
MsgBox(ex.Message)
End
End Try
End Sub
Sub Tue(ByVal Chem As String)
Try
Catch ex As Exception
'rien
End Try
End Sub
Private Sub CmdCapture_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles CmdCapture.Click
Try
'demande une capture DirectX ...et lorsqu'elle est
ready je la recoit par le Handler cree un peut plus haut
CaptureInformation2.CaptureInfo.CaptureFrame()
'Tue(System.AppDomain.CurrentDomain.BaseDirectory()
& WCcapture & ".jpg")
Tue("c:\Photos\" & WCcapture & ".jpg")
Do While PicCapture.Image Is Nothing
Application.DoEvents()
Loop
PicCapture.Image.Save("c:\Photos\" & "WCcapture
&.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical,
"impossible d'enregister l'image")
End Try
'End
End Sub
` Attribuer un nom à l'image capturer
Private Sub CheckBox1_CheckedChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked = True Then
cmdvalide.Enabled = True
txtnomCapt.Enabled = True
Else
cmdvalide.Enabled = False
txtnomCapt.Enabled = False
End If
End Sub
`Valider l'image capturée et affectation de
l'image dans un formulaire different
Private Sub cmdvalide_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles cmdvalide.Click
Dim NomImage As String
Dim cheminSave As String
NomImage = txtnomCapt.Text
cheminSave = "C:\Photos\" & NomImage & ".jpg"
If PicCapture.Image Is Nothing Then
'PicCapture.Image.Save("cheminSave") '&
"d:\Photos"
PicCapture.Image.Save("C:\Photos\" & NomImage
& ".jpg")
End If
Frm_Membre.Picphoto.Image = PicCapture.Image
Frm_Membre.TxtPhoto.Text = cheminSave
Me.Dispose()
Me.Close()
End Sub
End Sub
End Class
Parcourir les enregistrements dans la base
Private Sub GetIdDepot(ByVal CursorPosition As Integer)
txtIdDepot.Text =
ds.Tables("dsDepots").Rows(CursorPosition).Item(0)
txtNomMembr.Text =
ds.Tables("dsDepots").Rows(CursorPosition).Item(1)
txtpostnomMembre.Text =
ds.Tables("dsDepots").Rows(CursorPosition).Item(2)
txtnomGuichetier.Text =
ds.Tables("dsDepots").Rows(CursorPosition).Item(3)
txtanciensolde.Text =
ds.Tables("dsDepots").Rows(CursorPosition).Item(4)
txtnuvosolde.Text =
ds.Tables("dsDepots").Rows(CursorPosition).Item(5)
txtMontantot.Text =
ds.Tables("dsDepots").Rows(CursorPosition).Item(6)
txtdeposepar.Text =
ds.Tables("dsDepots").Rows(CursorPosition).Item(7)
If CursorPosition = 0 And CursorPosition =
ds.Tables("dsDepots").Rows.Count - 1 Then
BtNext.Enabled = False
BtPrevious.Enabled = False
ElseIf CursorPosition = 0 And CursorPosition <
ds.Tables("dsDepots").Rows.Count - 1 Then
BtNext.Enabled = True
BtPrevious.Enabled = False
ElseIf CursorPosition > 0 And CursorPosition <
ds.Tables("dsDepots").Rows.Count - 1 Then
BtNext.Enabled = True
BtPrevious.Enabled = True
ElseIf CursorPosition > 0 And CursorPosition =
ds.Tables("dsDepots").Rows.Count - 1 Then
BtNext.Enabled = False
BtPrevious.Enabled = True
End If
End Sub
`Le billetage des coupures au
dépôt
Private Sub txtundol_TextChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles txtundol.TextChanged
Dim undol As Integer
If txtundol.Text = "" Then
undol = 0
txtundol.Text = 0
'il faut retrancher le nombre du billet mal saisie
lors du backspace
Else
undol = CInt(txtundol.Text)
End If
txtundoltot.Text = undol * 1
'calcul montant depot
txtMontantot.Text = CInt(txtMontantot.Text) +
CInt(txtundoltot.Text)
'Mise à jour du nouveau solde
txtnuvosolde.Text = CInt(txtanciensolde.Text) +
CInt(txtMontantot.Text)
End Sub
Private Sub txtcinqdol_KeyPress(ByVal sender As Object, ByVal
e As System.Windows.Forms.KeyPressEventArgs) Handles txtcinqdol.KeyPress
ControleTextBox(e)
End Sub
Private Sub txtcinqdol_TextChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles txtcinqdol.TextChanged
Dim Cinqdol As Integer
If txtcinqdol.Text = "" Then
Cinqdol = 0
txtcinqdol.Text = 0
txtMontantot.Text = CInt(txtMontantot.Text) -
CInt(txtcinddoltot.Text)
Else
'Cinqdol = CInt(txtcinqdol.Text)
Cinqdol = (txtcinqdol.Text)
End If
txtcinddoltot.Text = Cinqdol * 5
'apple procedure calcul montant depot
txtMontantot.Text = CInt(txtMontantot.Text) +
CInt(txtcinddoltot.Text)
txtnuvosolde.Text = CInt(txtanciensolde.Text) +
CInt(txtMontantot.Text)
End Sub
Private Sub txtdixdol_KeyPress(ByVal sender As Object, ByVal
e As System.Windows.Forms.KeyPressEventArgs) Handles txtdixdol.KeyPress
ControleTextBox(e)
End Sub
Private Sub txtdixdol_TextChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles txtdixdol.TextChanged
Dim Dixdol As Integer
If txtdixdol.Text = "" Then
Dixdol = 0
txtdixdol.Text = 0
Else
Dixdol = CInt(txtdixdol.Text)
End If
txtdixdoltot.Text = Dixdol * 10
'calcul montant depot
txtMontantot.Text = CInt(txtMontantot.Text) +
CInt(txtdixdoltot.Text)
txtnuvosolde.Text = CInt(txtanciensolde.Text) +
CInt(txtMontantot.Text)
End Sub
Private Sub txtvingtdol_KeyPress(ByVal sender As Object,
ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles
txtvingtdol.KeyPress
ControleTextBox(e)
End Sub
Private Sub txtvingtdol_TextChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles txtvingtdol.TextChanged
Dim Vingdol As Integer
If txtvingtdol.Text = "" Then
Vingdol = 0
txtvingtdol.Text = 0
Else
Vingdol = CInt(txtvingtdol.Text)
End If
txtvingtdoltot.Text = Vingdol * 20
'calcul montant depot
txtMontantot.Text = CInt(txtMontantot.Text) +
CInt(txtvingtdoltot.Text)
txtnuvosolde.Text = CInt(txtanciensolde.Text) +
CInt(txtMontantot.Text)
End Sub
Private Sub txtcinquantedol_KeyPress(ByVal sender As Object,
ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles
txtcinquantedol.KeyPress
ControleTextBox(e)
End Sub
Private Sub txtcinquantedol_TextChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
txtcinquantedol.TextChanged
Dim C50dol As Integer
If txtcinquantedol.Text = "" Then
C50dol = 0
txtcinquantedol.Text = 0
Else
C50dol = CInt(txtcinquantedol.Text)
End If
txtcinquantedoltot.Text = C50dol * 50
'calcul montant depot
txtMontantot.Text = CInt(txtMontantot.Text) +
CInt(txtcinquantedoltot.Text)
txtnuvosolde.Text = CInt(txtanciensolde.Text) +
CInt(txtMontantot.Text)
End Sub
Private Sub txtcentdol_KeyPress(ByVal sender As Object, ByVal
e As System.Windows.Forms.KeyPressEventArgs) Handles txtcentdol.KeyPress
ControleTextBox(e)
End Sub
Private Sub txtcentdol_TextChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles txtcentdol.TextChanged
Dim C100dol As Integer
If txtcentdol.Text = "" Then
C100dol = 0
txtcentdol.Text = 0
Else
C100dol = CInt(txtcentdol.Text)
End If
txtcentdoltot.Text = C100dol * 100
'calcul montant depot
txtMontantot.Text = CInt(txtMontantot.Text) +
CInt(txtcentdoltot.Text)
txtnuvosolde.Text = CInt(txtanciensolde.Text) +
CInt(txtMontantot.Text)
End Sub
` Le billetage au retrait
Private Sub txtundol_TextChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles txtundol.TextChanged
Dim undol As Integer
If txtundol.Text = "" Then
undol = 0
txtundol.Text = 0
'il faut retrancher le nombre du billet mal saisie
lors du backspace
Else
undol = CInt(txtundol.Text)
End If
txtundoltot.Text = undol * 1
'calcul montant depot
txtMontantot.Text = CInt(txtMontantot.Text) +
CInt(txtundoltot.Text)
'Update pour nouvo solde
If CInt(txtanciensolde.Text) < CInt(txtMontantot.Text)
Then
MsgBox("Votre solde est insuffisant!!! vous ne pouvez
pas retirer", MsgBoxStyle.Critical)
Else
txtnuvosolde.Text = CInt(txtanciensolde.Text) -
CInt(txtMontantot.Text)
End If
End Sub
Private Sub txtcinqdol_KeyPress(ByVal sender As Object, ByVal
e As System.Windows.Forms.KeyPressEventArgs) Handles txtcinqdol.KeyPress
ControleTextBox(e)
End Sub
Private Sub txtcinqdol_TextChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles txtcinqdol.TextChanged
Dim Cinqdol As Integer
If txtcinqdol.Text = "" Then
Cinqdol = 0
txtcinqdol.Text = 0
txtMontantot.Text = CInt(txtMontantot.Text) -
CInt(txtCinqdolTot.Text)
Else
Cinqdol = CInt(txtcinqdol.Text)
End If
txtCinqdolTot.Text = Cinqdol * 5
'appele procedure calcul montant depot
txtMontantot.Text = CInt(txtMontantot.Text) +
CInt(txtCinqdolTot.Text)
If CInt(txtanciensolde.Text) < CInt(txtMontantot.Text)
Then
MsgBox("Votre solde est insuffisant!!! vous ne pouvez
pas retirer", MsgBoxStyle.Critical)
Else
txtnuvosolde.Text = CInt(txtanciensolde.Text) -
CInt(txtMontantot.Text)
End If
End Sub
Private Sub txtdixdol_KeyPress(ByVal sender As Object, ByVal
e As System.Windows.Forms.KeyPressEventArgs) Handles txtdixdol.KeyPress
ControleTextBox(e)
End Sub
Private Sub txtdixdol_TextChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles txtdixdol.TextChanged
Dim Dixdol As Integer
If txtdixdol.Text = "" Then
Dixdol = 0
txtdixdol.Text = 0
Else
Dixdol = CInt(txtdixdol.Text)
End If
txtdixdoltot.Text = Dixdol * 10
'calcul montant depot
txtMontantot.Text = CInt(txtMontantot.Text) +
CInt(txtdixdoltot.Text)
If CInt(txtanciensolde.Text) < CInt(txtMontantot.Text)
Then
MsgBox("Votre solde est insuffisant!!! vous ne pouvez
pas retirer", MsgBoxStyle.Critical)
Else
txtnuvosolde.Text = CInt(txtanciensolde.Text) -
CInt(txtMontantot.Text)
End If
End Sub
Private Sub txtvingtdol_KeyPress(ByVal sender As Object,
ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles
txtvingtdol.KeyPress
ControleTextBox(e)
End Sub
Private Sub txtvingtdol_TextChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles txtvingtdol.TextChanged
Dim Vingdol As Integer
If txtvingtdol.Text = "" Then
Vingdol = 0
txtvingtdol.Text = 0
Else
Vingdol = CInt(txtvingtdol.Text)
End If
txtvingtdoltot.Text = Vingdol * 20
'calcul montant depot
txtMontantot.Text = CInt(txtMontantot.Text) +
CInt(txtvingtdoltot.Text)
If CInt(txtanciensolde.Text) < CInt(txtMontantot.Text)
Then
MsgBox("Votre solde est insuffisant!!! vous ne pouvez
pas retirer", MsgBoxStyle.Critical)
Else
txtnuvosolde.Text = CInt(txtanciensolde.Text) -
CInt(txtMontantot.Text)
End If
End Sub
Private Sub txtcinquantedol_KeyPress(ByVal sender As Object,
ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles
txtcinquantedol.KeyPress
ControleTextBox(e)
End Sub
Private Sub txtcinquantedol_TextChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
txtcinquantedol.TextChanged
Dim C50dol As Integer
If txtcinquantedol.Text = "" Then
C50dol = 0
txtcinquantedol.Text = 0
Else
C50dol = CInt(txtcinquantedol.Text)
End If
txtcinquantedoltot.Text = C50dol * 50
'calcul montant depot
txtMontantot.Text = CInt(txtMontantot.Text) +
CInt(txtcinquantedoltot.Text)
If CInt(txtanciensolde.Text) < CInt(txtMontantot.Text)
Then
MsgBox("Votre solde est insuffisant!!! vous ne pouvez
pas retirer", MsgBoxStyle.Critical)
Else
txtnuvosolde.Text = CInt(txtanciensolde.Text) -
CInt(txtMontantot.Text)
End If
End Sub
Private Sub txtcentdol_KeyPress(ByVal sender As Object, ByVal
e As System.Windows.Forms.KeyPressEventArgs) Handles txtcentdol.KeyPress
ControleTextBox(e)
End Sub
Private Sub txtcentdol_TextChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles txtcentdol.TextChanged
Dim C100dol As Integer
If txtcentdol.Text = "" Then
C100dol = 0
txtcentdol.Text = 0
Else
C100dol = CInt(txtcentdol.Text)
End If
txtcentdoltot.Text = C100dol * 100
'calcul montant depot
txtMontantot.Text = CInt(txtMontantot.Text) +
CInt(txtcentdoltot.Text)
If CInt(txtanciensolde.Text) < CInt(txtMontantot.Text)
Then
MsgBox("Votre solde est insuffisant!!! vous ne pouvez
pas retirer", MsgBoxStyle.Critical)
Else
txtnuvosolde.Text = CInt(txtanciensolde.Text) -
CInt(txtMontantot.Text)
End If
End Sub
`Procédure pour calculer les
crédits
Private Sub cboTypeCredit_TextChanged(ByVal sender As Object,
ByVal e As System.EventArgs) Handles cboTypeCredit.TextChanged
If cboTypeCredit.Text = "Crédit enseignants"
Then
txtTauxInter.Text = 1.5
txtInteret.Text = CDbl(txtMontantCredit.Text) *
CDbl(txtTauxInter.Text) / 100
txtTotrembourse.Text = CDbl(txtInteret.Text) +
CDbl(txtMontantCredit.Text)
End If
If cboTypeCredit.Text = "Crédit aux
salariés des Eses de l Etat" Then
txtTauxInter.Text = 1.5
txtInteret.Text = CDbl(txtMontantCredit.Text) *
CDbl(txtTauxInter.Text) / 100
txtTotrembourse.Text = CDbl(txtInteret.Text) +
CDbl(txtMontantCredit.Text)
End If
If cboTypeCredit.Text = "Crédit aux
salariés des Entreprises" Then
txtTauxInter.Text = 1.5
txtInteret.Text = CDbl(txtMontantCredit.Text) *
CDbl(txtTauxInter.Text) / 100
txtTotrembourse.Text = CDbl(txtInteret.Text) +
CDbl(txtMontantCredit.Text)
End If
If cboTypeCredit.Text = "Crédits au P.M.E" Then
txtTauxInter.Text = 2.5
txtInteret.Text = 0
txtInteret.Text = CDbl(txtMontantCredit.Text) *
CDbl(txtTauxInter.Text) / 100
txtTotrembourse.Text = CDbl(txtInteret.Text) +
CDbl(txtMontantCredit.Text)
End If
If cboTypeCredit.Text = "Crédits ordinaires
individuels" Then
txtTauxInter.Text = 2.5
txtInteret.Text = CDbl(txtMontantCredit.Text) *
CDbl(txtTauxInter.Text) / 100
txtTotrembourse.Text = CDbl(txtInteret.Text) +
CDbl(txtMontantCredit.Text)
End If
If cboTypeCredit.Text = "Crédit solidaires mamans"
Then
txtTauxInter.Text = 2.5
txtInteret.Text = CDbl(txtMontantCredit.Text) *
CDbl(txtTauxInter.Text) / 100
txtTotrembourse.Text = CDbl(txtInteret.Text) +
CDbl(txtMontantCredit.Text)
End If
If cboTypeCredit.Text = "Crédit avec le
système de collecte de fonds sur place" Then
txtTauxInter.Text = 2.5
txtInteret.Text = CDbl(txtMontantCredit.Text) *
CDbl(txtTauxInter.Text) / 100
txtTotrembourse.Text = CDbl(txtInteret.Text) +
CDbl(txtMontantCredit.Text)
End If
If cboTypeCredit.Text = "Crédit agricole" Then
txtTauxInter.Text = 2.5
txtInteret.Text = CDbl(txtMontantCredit.Text) *
CDbl(txtTauxInter.Text) / 100
txtTotrembourse.Text = CDbl(txtInteret.Text) +
CDbl(txtMontantCredit.Text)
End If
If cboTypeCredit.Text = "Crédit express" Then
txtTauxInter.Text = 3
txtInteret.Text = CDbl(txtMontantCredit.Text) *
CDbl(txtTauxInter.Text) / 100
txtTotrembourse.Text = CDbl(txtInteret.Text) +
CDbl(txtMontantCredit.Text)
End If
End Sub
Conclusion
Dans le présent travail, nous avons
traité « Du développement d'une
architecture « Client - Serveur » pour la gestion des
coopératives d'épargne et de crédit. Cas de la Coopec
Nyalukemba ». L'objectif étant de mettre en
place un système d'information qui fonctionnerait en réseau local
ou même étendu et qui faciliterait la gestion des activités
entre les différents guichets et l'ensemble du personnel de
l'institution ainsi que faciliter la production des différents rapports
de synthèse en temps réel.
Rappelons que nous avons posé notre
problématique sur les questions principales suivantes :
- Quelles stratégies de suivi et de contrôle que
doit adopter ce système pour accorder aux membres et agents de la
coopérative un service de qualité, fiable et
sécurisé?
- Quel système faut-il mettre au point pour centraliser
et partager les données liées aux opérations de la
Coopérative dans tous ces services ?
Face à ces problèmes, nous avons émis les
réponses provisoires suivantes :
- A ce sujet, il convient de recourir à la nouvelle
stratégie de gestion de données relatives aux Coopératives
d'Epargne et de Crédit au moyen de l'informatique, ce qui permettra
l'amélioration et le perfectionnement du travail pour une
rentabilité optimale.
- La mise au point d'une base de données, conçue
spécialement pour la gestion des adhésions, des
dépôts ; des retraits, d'octroi, de remboursement des
crédits et biens d'autres, serait une solution efficiente et
rénovée pour faciliter ces différentes opérations
et minimiser la lenteur dans la production de certains rapports liés aux
membres de la coopérative et cette base de données servirait
à stocker diverses informations dont on se servirait plus tard pour
telle ou telle autre situation.
- Ce partage en réseau de la base de données
faciliterait au gérant, aux charges de crédits et risques, au
guichetier et autres agents de la coopérative d'avoir accès en
temps réel aux informations des membres, afin d'avoir une main mise sur
toutes les activités et d'en faire le calcul directe des soldes entre
les différents dépôts et retraits effectués au cours
d'une période donnée.
En confrontant la première hypothèse aux
résultats auxquels nous sommes aboutis, nous confirmons sans doute que
nous avons recouru aux nouvelles stratégies de gestion rationnelle des
institutions de micro finance car dans l'ensemble notre application constitue
une solution aux différents problèmes identifié au sein de
la coopérative.
Par la suite nous confirmons la deuxième
hypothèse car l'application conçue facilite spécialement
la gestion des adhésions, des dépôts ; des retraits,
d'octroi, de remboursement des crédits. L'application est
également capable de retrouver l'ensemble des informations relatives
à une opération donnée et de produire le rapport pour
chacune des opérations selon la demande des utilisateurs.
Quant à la dernière, nous l'affirmons sans
doute. L'application conçue répond aux critères multi
utilisateurs en ayant prévu une architecture réseau permettant
aux utilisateurs du système d'information (Administrateur de la base de
données, Gérant et les différents guichetiers) d'y
accéder en temps réel et d'y effectuer les opérations en
interrogeant une base de données distante.
Etant donné qu'un travail scientifique, ne manque
jamais quelques lacunes, nécessitant des correctifs ou
d'améliorations prochaines par d'autres chercheurs dans la même
thématique. C'est la raison pour laquelle toute suggestion ou remarque
serait la bienvenue de la part de lecteurs. Il nous est indispensable alors de
donner certaines propositions de sujet de recherche scientifique aux futurs
chercheurs qui nous emboiteront le pas.
· Mise en place d'un système
d'information multiposte pour la gestion des opérations de virement et
de transfert des fonds par intégration des techniques de Win socket et
Windows communication Fondation.
· Conception d'une application informatique
de gestion d'une institution de micro finance usant d'une multitude de devise
de monnaies.
Ainsi le monde étant ouvert, nous restons unis entre
chercheur, pour contribuer à l'évolution de la recherche
scientifique.
Bibliographie
- TFC, Mémoires et Thèses
1. LUFUNGULO BISIMWA : Conception d'un
système intégré de gestion d'une coopérative
d'épargne et de crédit relatif au domaine d'adhésion,
épargne, crédit, retrait et comptabilité ; Cas de la
COOPEC MOCC BUKAVU. Mémoire inédit ISP BUKAVU, 2009-2010.
2. Pascal Blaise KADIEBUE Kabasele :
Conception et réalisation d'une base de données pour la
gestion des micro-crédits à impact visible, cas de la
COOPECDEKOC ; Mémoire inédit Université Notre Dame de
Kasaï, 2008-2009.
- Livres
3. Jean-Luc BAPTISTE, Merise, guide pratique
(modélisation des données et des traitements), langage SQL),
Edition ENI, Paris 2009 ;
4. Hankerspace, Apprenez à programmer en VB.NET,
Capegemini, Paris, 2013 ;
5. Chantal Gribaumont (Taguan), Administrez vos bases de
données avec MySQL, Paris, Simple IT, 2012 ;
6. Jérôme GABILLAUD, Administration d'une base
de données avec SQL Server Management Studio, Copyright - Edition
ENI- Février 2009 ;
7. Thierry GROUSSARD, Visual Basic. NET, Développez
avec Visual Studio 2008, Copyright - Edition ENI- Avril 2008 ;
8. Paul BOGER, A programmer's Introduction to VISUAL
BASIC.NET, Sams Publishing 201 West 103rd Street, USA 2008;
9. Lars Powers, & Mike Snell, Microsoft® Visual
Studio 2008 Unleashed, Sams 800 East 96th Street, Indianapolis, Indiana
46240, USA 2008;;
10. Dave Grundgeiger, Programming Visual Basic .NET,
O'Reilly, First Edition January 2002, ISBN: 0-596-00093-6, 464 pages;
11. Matthew Mac Donald, Insight for classic VB.NET
developers, San Francisco, February 2006;
12. KABUYE KIRUMIRA, Visual Basic.NET programming to
beginners, CSMUnit, June 2009, Kampala;
13. Adrienne BERKOWITZ & associates, Introduction to
VB.NET Manual, Education, republic of South Africa, 2008;
- Cours
14. Philipe Lassere, Cours de Visual Basic.Net,
developpez.com, derrière mise à jour 08/01/2011 ;
15. Prof. Dr. Saint-Jean DJUNGU, Cours de Méthodes
d'Analyse en Informatique, inédit, G2 IG, ISP-Bukavu,
2010-2011 ;
16. KASELE W., Cours de conception des systèmes
d'information, inédit, L1 IG ISP-Bukavu, 2011-2012 ;
17. Prof. Sindano., Cours d'informatique de gestion,
inédit, L2IG, ISP-Bukavu, 2012-2013 ;
- Webographie
-
http://morpheus.developpez.com/sql-server-2005/ valide le 04/03/2013
à 09h 32'
-
http://www.sqlfr.com/forum/sujet-AIDE-PARTAGER-BASE-DONNEE-SQL-RESEAU-LOCAL_1406898.aspx
valide le 09/03/2013
-
http://www.vbfrance.com/tutoriaux/COMMENT-CREER-SYSTEME-LOGIN-VB-NET_1337.aspx
valide le 15/03/2013
-
http://support.microsoft.com/kb/832017/fr valide le 15/03/2012
-
http://www.vbfrance.com/forum/sujet-EXPORTER-DONNEES-DATAGRIDVIEW-VB-NET-VERS-EXCEL_1583850.aspx
valide le 15/06/2013
-
http://www.vbfrance.com/codes/IMPRIMER-DATAGRIDVIEW-AUTRES-CONTROLES_46951.aspx
valide le 15/06/2013
-
http://codes-sources.commentcamarche.net/source/40449-capture-d-image-dans-flux-video-de-webcam
valide le 08/12/2012
-
http://www.siteduzero.com/forum/sujet/webcam-et-vb-net-13246 valide
le 11/05/2013
-
http://www.siteduzero.com/forum/sujet/convertir-les-string-en-integer-en-mode-graphique
valide le 08/12/2012;
-
http://www.developpez.net/forums/d1195087/dotnet/langages/vbnet/datagridview-select-avec-jointure-entre-deux-tables/
valide le 30 aout 2013
-
http://codes-sources.commentcamarche.net/forum/affich-1125508-requete-select-sur-plusieurs-tables
valide le 30 aout 2013
-
http://www.siteduzero.com/informatique/tutoriels/sql-selection-multi-tables/2e-methode-les-requetes-selection-multi-tables
valide le 29 aout 2013
-
http://www.siteduzero.com/informatique/tutoriels/sql-selection-multi-tables/1ere-methode-les-requetes-imbriquees-ou-sous-requetes
valide le 29 aout 2013
-
http://www.siteduzero.com/informatique/tutoriels/sql-selection-multi-tables
valide le 29 aout 2013
-
Fonction pour autoriser seulement les nombres dans textbox [Résolu] -
Forum du club des développeurs et IT Pro valide le 30 aout
2013
-
http://www.codyx.org/snippet_autoriser-saisie-chiffres-dans-champ-texte_119.aspx
valide le 30 aout 2013
-
http://didier-gonard.developpez.com/tutoriels/office/excel/obliger-saisie-numerique-dans-texbox/
valide le 30 aout 2013
-
http://codes-sources.commentcamarche.net/forum/affich-1617108-textbox-y-a-t-il-une-propriete-qui-autorise-seulement-la-saisie-numerique
valide le 2 aout 2013
-
http://codes-sources.commentcamarche.net/forum/affich-922575-imprimer-avec-un-reportviewer-lie-a-un-rapport
valide le 15 juillet 2013
-
http://social.msdn.microsoft.com/Forums/vstudio/fr-FR/a6c3a1e3-d1b9-48e9-aad3-d2029de6f158/imprimer-un-etat-paramtr-de-crystal-report-sous-visual-studio-2010
valide le 15 juillet 2013
-
http://morpheus.developpez.com/reseauvbnet/ valide le 15 avril 2013
-
http://codes-sources.commentcamarche.net/source/39697-connexion-a-une-base-de-donnees-sql-server-2005#q=Connexion+distante+%E0+sql+server+2005&cur=2&url=%2F
valide le 15 avril 2013
-
http://codes-sources.commentcamarche.net/s/Connexion+distante+%E0+sql+server+2005?qlc#k=b38254c576bc27b6e71cb90ed84b8d8e
valide le 15 avril 2013
-
http://codes-sources.commentcamarche.net/faq/644-connexion-distante-a-sql-server-2005
valide le 15 avril 2013
-
http://www.siteduzero.com/forum/sujet/vb-probleme-de-conversion-string-gt-int-61554
valide le 20 aout 2013
-
https://fr.wikipedia.org/wiki/Microsoft_SQL_Server valide le 12 janvier
2013
-
http://blogs.developpeur.org/christian/archive/2011/09/12/Prix-sql-server-en-france-pour-SQL-Server-2008-R2.aspx
valide le 12 janvier 2013
-
http://www.siteduzero.com/forum/sujet/base-de-donnee-sql-server-sur-un-reseau-local-28386
valide le 12 juillet 2013
-
http://www.siteduzero.com/forum/sujet/partager-une-application-vb
valide le 12 juillet 2013
-
http://codes-sources.commentcamarche.net/forum/affich-1406898-aide-pour-partager-une-base-de-donnee-sql-reseau-local
valide le 12 juillet 2013
-
http://www.siteduzero.com/informatique/exportPdf/apprenez-a-programmer-en-vb-net
valide le 05 septembre 2012
-
http://windows.microsoft.com/fr-xf/windows/connect-using-remote-desktop-connection#connect-using-remote-desktop-connection=windows-7
valide le 15 avril 2013
-
http://www.vbfrance.com/r/global.aspx?r=gestion+de+billetage valide le
05 mai 2013
-
http://www.vbfrance.com/codes/EXPORTER-VOS-DONNEES-SOUS-EXCEL-ENFIN-CODE-SIMPLE_3756.aspx
valide le 16 juin 2013
-
http://www.vbfrance.com/recherche.aspx?r=Exporter+de+VB.Net+%e0+Excel&dotnet=0
valide le 16 juin 2013
-
http://www.siteduzero.com/informatique/tutoriels/visual-basic-net/liaison-avec-le-code-vb-net
valide le 16 juin 2013
-
http://www.siteduzero.com/informatique/tutoriels/visual-basic-net/l-utilisation-graphique-le-datagrid
valide le 16 juin 2013
-
http://www.commentcamarche.net/forum/affich-3948213-transfert-de-donnees-vb-net-vers-excel
valide le 16 juin 2013
-
http://www.youtube.com/results?search_query=Connecter+le+dagrid+avec+Sql+server+en+vb.net&oq=Connecter+le+dagrid+avec+Sql+server+en+vb.net&gs_l=youtube.3...406786.427578.0.428596.57.51.1.3.3.0.3545.17124.12j19j5j3j1j4j6j9-1.51.0...0.0...1ac.1.11.youtube.QYtS3ARGW7s
valide le 16 juin 2013
-
http://www.developpez.net/forums/d1163647/dotnet/edioutils/visual-studio/deploiement-application-windows-vbnet-avec-visual-studio/
valide le 01 juin 2013
-
http://www.siteduzero.com/informatique/tutoriels/visual-basic-net/la-decouverte-du-datagrid
valide le 06 mars 2013
Table des matières
EPIGRAPHE
2
IN MEMORIAM
3
DEDICACE
4
REMERCIEMENTS
5
SIGLES ET ABREVIATIONS
6
RESUME
7
ABSTRACT
1
0.0. Introduction générale
2
0.1.
Problématique
2
0. 2. Hypothèse
3
0.3. Choix et intérêt du sujet
4
0.4. Etat de la question
4
0.5. Délimitation du sujet
5
0.6. Méthodes et techniques
6
b. Les techniques
6
07. Plan sommaire du travail
7
0.8. Difficultés rencontrées
8
Chapitre I : Généralités
sur les bases de données et le VB.Net
9
I.1. Notions de base
9
I.1.1. Introduction
9
I.1.2. Qu'est-ce qu'une base de données
9
I.1.2. Avantage d'une base de
données
10
I.1.3. Caractéristiques d'une base de
données
10
I.1.4. Etapes de conception d'une base de
données
11
I.1.5. VB.Net et le SGBD
12
Chapitre 2 : Description du système
d'information existant au sein de la coopérative Nyalukemba
15
2.1. Présentation
15
2.1.1. Membres : adhésion,
catégories, perte de la qualité
15
2.1.2. Ressources financières de la
COOPEC
16
2.2. Fonctionnement des organes
16
2.2.1. Assemblée générale
17
2.2.2 Conseil d'Administration
18
2.2.3. Conseil de Surveillance
18
2.2.4. Commission de crédit
19
2.2.5. La Gérance
19
2.3. Description des documents utilisés
19
2.3.2. Documents utilisés par le
(la) caissier (ère)
19
2.4. Logiciels existants au sein de la COOPEC
25
2.5. Critiques du système informatique
existant
26
a) Critique des documents de gestion
26
b) Critique des moyens matériels
27
c) Critique des ressources humaines
27
2.6. Proposition des solutions
28
Chapitre 3 : La modélisation du
système
29
3.1. Pourquoi une méthode
d'analyse ?
29
3.2. La modélisation
29
3.3. Aperçu sur la méthode
MERISE
29
3.4. Niveaux d'abstraction
30
3.5. Le modèle conceptuelle de
données (MCD)
30
3.6. Détermination des
entités
30
3.7. Détermination des
propriétés
32
3.8. Détermination des relations
35
3.9. Le dictionnaire des données
36
3.10. Modèle Conceptuel de données
(MCD)
37
3.11. Le modèle logique des
données relationnel (MLDR)
39
3.12. Le modèle physique de
données
40
3.13. Transcription SQL du Modèle
Physique des Données généré par l'utilitaire
AnalyseSI
42
3.14. Le diagramme
relationnel généré par les contraintes de Microsoft SQL
Server
45
3.15. Le diagramme
des requêtes de synthèse construit à partir de Microsoft
visual Studio 2010 Professionnel
46
3.16.
Représentation des accès en
réseau.
47
Chapitre 4: Mise en place de l'architecture Client-
Serveur pour la gestion d'une coopérative d'épargne et de
crédit
50
4.1. L'architecture matérielle
50
4.2. Configuration du réseau local pour le
partage de l'application
51
4.3. Environnement de développement de
l'application
53
4.4. Les outils utilisés dans la
conception
53
4.5. Implémentation de la base de
données
55
4.6. Attacher la base de données dans le
serveur SQL Server
56
4.7. Guide utilisateur
57
4.7.1. Etape d'installation
57
4.7.2. Lancement de
l'application
65
Les codes sources
78
Bibliographie
103
* 1Hankerspace,
www.siteduzero.com /visual
basic.Net/ introduction sur les bases de données
* 2 Franklin
Roosevelt, Ex-Président Américain
* 3 Georges GARDARIN,
Bases de données, 5e tirage, éd. Eyrolles, 2003,
p3
* 4Encyclopédie
CommentCaMarche/bdd/bddintro.htm
* 5
http://laurent-audibert.developpez.com/cours-bd/
* 6
www.unvrai.com/cours de base
de données relationnelles/Jean Claude ARMICI validé le 12/11/2012
à 16h 15'
* 7 Georges GARDARIN,
Bases de données, 5e tirage, éd. Eyrolles,
2003,p.74
* 8
www.siteduzero.com/visual-basic.Net/Les bases des données
dernière mise à jour 29/09/2012
* 9 Franklin
Roosevelt, Ex-Président Américain
* 10
http://www.vbfrance.com/forum/sujet-MODELISATION-UML-SON-IMPLEMENTATION-SUR-VB_916632.aspx
*
11Encyclopédie informatique
CommentÇaMarche.net
* 12Prof. Dr. Saint-Jean
DJUNGU, cours de Méthodes d'analyse en informatique,
inédit, ISP/BUKAVU, G2IG, 2010 -2011, p. 14
* 13KASELE W., Cours de
conception des systèmes d'information, inédit, ISP/BUKAVU,
L1 IG, 2011-2012
* 14Idem
* 15Idem
* 16Jean-Luc BAPTISTE,
Merise, guide pratique (modélisation des données et des
traitements, langage SQL, ENI Editions, 2009, p.13
* 17Prof. Sindano., Cours
d'informatique de gestion, inédit, ISP/BUKAVU, L2 IG, 2012-2013
* 18Jean-Luc BAPTISTE,
Merise, guide pratique (modélisation des données et des
traitements, langage SQL), ENI Editions, 2009, p.75
* 19Idem
* 20
http://codingly.com/2008/12/29/degage-sale-programmeur/
* 21
http://www.siteduzero.com/tutoriel-3-346824-brancher-les-machines-la-couche-1.html
* 22
http://fr.wikipedia.org/wiki/Microsoft_SQL_Server
* 23
http://fr.wikipedia.org/wiki/Packet_Tracer
* 24
http://support.microsoft.com/kb/914277/fr#method2