Vendredi 19 octobre 2012 : Exercice de développement avec 4D
Objectif de l'exercice avec 4D
-
L’objectif est de mettre en pratique et retenir les
différents concepts 4D vus pendant les premiers jours de cours
Contexte
Vous êtes développeur junior dans une SSII proposant ses
services pour des développements spécifiques basés sur l’environnement de
développement 4D.
Un petit projet vient d’être lancé et il vous est demandé de
prendre une journée pour faire un premier maquettage avec 4D.
Il s’agit d’un projet de gestion de l’activité d’un dresseur
d’animaux.
Expression du besoin
Le dresseur a de nombreux clients avec lesquels il désire
communiquer. Par exemple, pour les prévenir qu’un cours est annulé à cause du
mauvais temps. Cela nécessite au minimum les informations suivantes (titre [M.,
Mme, Mlle], nom, prénom, adresse, code postal, ville, téléphone fixe, téléphone
portable, téléphone professionnel, e.mail).
Chaque jour sauf le dimanche, il propose plusieurs types de
cours (dressage débutant, dressage avancé, agility, recherche) à différents
horaires. Les horaires sont identiques pour tous les jours. Chaque cours est
réservé à un type d’animal et ne peut accueillir qu’un nombre maximum
d’animaux. Lorsqu’il change son planning de cours, il veut pouvoir archiver les
cours qui disparaissent et créer de nouveaux cours.
Les cours archivés ne doivent pas être visible dans la liste
des cours sauf en désactivant le filtre par défaut.
Cours
|
Horaire
|
Type animal
|
Maximum
|
Dressage débutant
|
10h à 11h
|
Petit chien
|
10
|
Dressage avancé
|
11h à 12h
|
Tout chien
|
6
|
Agility
|
12h à 13h
|
Tout chien
|
4
|
Dressage débutant
|
14h à 15h
|
Grand chien
|
8
|
Dressage débutant
|
15h à 16h
|
Lapin
|
15
|
Dressage débutant
|
16h à 17h
|
Petit chien
|
10
|
Recherche
|
17h à 19h
|
Tout chien
|
4
|
Un client peut avoir un ou plusieurs animaux en dressage à chacun
des cours.
Pour chaque animal, le dresseur a besoin de connaître son
nom, sa date de naissance, le type d’animal, sa taille (petit, moyen ou grand),
sa race et son score.
Le score est une note de 1 à 50 qui représente pour les
chiens qui font de l’agility le meilleur score obtenu sur un parcours d’agility
et permet de connaitre son meilleur niveau.
Actuellement ayant beaucoup de petits chiens à dresser, ils
gèrent deux groupes (petit chien = taille petit et grand chien = taille moyen +
taille grand).
Un animal peut être inscrit à plusieurs cours s’il
correspond au type animal du cours.
Pour chaque animal inscrit à un cours, le dresseur a besoin
de savoir la date de début d’inscription et la date de fin. La date de fin est
vide tant que l’animal suit le cours.
A chaque cours, le dresseur note pour chaque animal présent
un petit commentaire sur ses progrès. Cela lui permet également de
comptabiliser les présences, chaque séance étant facturée 10 euros avec une
facturation groupée de l’ensemble des séances de tous ses animaux à chaque client en fin de mois. Le dresseur
doit pouvoir utiliser le programme pour calculer et suivre son chiffre
d’affaire mensuel et annuel.
Maquettage à réaliser avec 4D
Créer la structure 4D nécessaire pour répondre aux exigences
de gestion du dresseur (n’oublier pas une clé primaire / identifiant pour
chaque table avec une numérotation automatique)
Pour chaque table, créer un article de menu permettant
d’afficher la liste des enregistrements de la table et saisir des
enregistrements. Chaque formulaire entrée et sortie doit comporter les boutons
fonctionnels habituels.
Pour le formulaire de saisie, faciliter la saisie. Le
dresseur aime bien la saisie par clic sur des boutons radio. Implémenter ce
type de saisie lorsque c’est possible.
Ajouter des contrôles sur chaque bouton valider pour obliger
la saisie de certaines informations nécessaires
Pour la liste des animaux, faire une recherche simplifiée
sur le type d’animal.
Pour la liste des cours, il vous est rappelé que par défaut
seul les cours actifs (non archivés) doivent être listés.
Ce serait un plus que lors de la création d’une fiche de
participation d’un animal à un cours, la date du jour soit automatiquement
attribuée au champ date du cours (commande 4D : date du jour).
Dans la fiche d’inscription d’un animal à un cours, le
dresseur a besoin de savoir :
* pendant combien de jours l’animal a été inscrit à ce cours (date fin d’inscription – date de début d’inscription
* Combien de fois il a participé à ce cours
* pendant combien de jours l’animal a été inscrit à ce cours (date fin d’inscription – date de début d’inscription
* Combien de fois il a participé à ce cours
Évidemment, il y a plein d’autres fonctionnalités et règles qui
resteront à implémenter. Par exemple, on ne devrait pas pouvoir inscrire à un
cours plus d’animaux que le maximum prévu…
La suite du cours permettra d'apprendre à répondre à ces autres besoins. et contraintes.