EFM ADO.NET
Examen de Fin de Module / Programmation
Client/Serveur
http://tdiway.blogspot.com/
Filière : TDI Durée
: 3h Barème
/ 50 pts.
Une épicerie souhaite disposer
d'une application informatique pour la gestion de ses tâches quotidiennes.
L'analyse nous a conduit à produire la base de données suivante :
·
Produit (RéférencePro,
DésignationPro, PUPro, QtéStock)
·
Client (NumClient,
NomClient, PrénomClient, TypeClient)
·
Fournisseur(CodeFou,
RaisonSocialeFou, AdresseFou)
·
Vente(NumVente,
DateVente, NumClient, Payé)
·
ProduitsVendus(NumVente,
RéférencePro, QtéVendue)
·
Entrées(NumEntrée,
DateEntrée, QtéEntrée, RéférencePro, CodeFou)
Rq : Payé prent 0 (false)
ou 1(true)
Utilisation
Provider................................................................................................................................... 4pts
Utilisation
App.config..............................................................................................................................
1 pt
1.
Fenêtre FrmEntreeProduits : Permet
d'enregistrer une entrée en stock d'un produit :
·
En cliquant sur le bouton
"Rechercher Produit", l’application demande de saisir une référence
produit et affiche les informations sur ce produit dans les zones
correspondantes
·
Dans une zone de liste
modifiable, l'utilisateur peut choisir la raison sociale du fournisseur
concerné (attention c’est le code et non la raison sociale qui est stocké dans
la table entrée)
·
La zone "Date
Entrée" doit prendre par défaut la date du jour
·
Le bouton "Enregistrer
Entrée" permettra :
S De vérifier la saisie (le produit et le fournisseur doivent
obligatoirement être sélectionnés et la quantité livrée est toujours >0)
S
D'enregistrer l'entrée
S
De mettre à jour le stock
pour le produit concerné
Rq : Si
l’opération de mise à jour échoue, l’opération d’enregistrement de l’entrée
doit être annulée et vice versa
Ecrire les
codes à associer aux procédures événementielles suivantes :
a.
FrmEntreeProduits_Load................................................................................................. 2
pts
b.
BtnRechercherProduit_Click........................................................................................... 3
pts
c.
Btn_enregistrerEntree _Click........................................................................................... 6
pts
2.
La fenêtre
"FrmGestionProduits" : Permet de gérer les produits en
déconnecté, de transférer ensuite les modifications vers la base de données, de
sérialiser les données vers un fichier XML et éventuellement de les récupérer à
partir de ce fichier XML :
·
Le bouton Créer permet
d’ajouter un nouveau produit
·
Le bouton Modifier permet
d’apporter des modifications au produit en cours
·
Le bouton Supprimer permet
de supprimer le produit en cours
·
La première liste affiche
la liste des produits. En sélectionnant un produit dans la liste, les
informations sur le produit s’affichent dans les zones à côté
·
Les boutons en bas de la
liste permettent de naviguer entre les produits(Premier, Précédent, Suivant,
Dernier)
·
La deuxième liste affiche
la liste des entrées concernant le produit en cours. Donnez deux
réponses : En exploitant un
DataView et en exploitant la propriété getChildRows d’un dataRow
·
Le bouton Mettre à jour la
BD envoie les modifications apportées en local à la BD
·
Les bouton Sérialiser vers
un fichier XML envoie les informations vers un fichier XML
« GestionPro.XML » et le Schéma vers un fichier
« GestionProScema.xsd » . Il
est important de garder une trace des différents états de ligne dans le fichier
xml
·
Le bouton Récupérer à
partir d’un fichier XML permet de charger un nouveau dataset à partir du
fichier xml
Ecrire les
codes à associer aux procédures événementielles suivantes :
a.
FrmGestionProduits_Load............................................................................................... 2
pts
b.
BtnCréer_Click................................................................................................................ 2
pts
c.
BtnModifier_Click : Si vous
avez choisi la technique du DataBinding laisser cette procédure vide.......................................................................................................................................... 2
pts
d.
BtnSupprimer_Click......................................................................................................... 2
pts
e.
DataGridProduit_Click : Si
vous avez choisi la technique du DataBinding laisser cette procédure vide.......................................................................................................................................... 2
pts
f.
BtnPremier_Click.............................................................................................................. 2
pt
g.
BtnPrecedent_Click......................................................................................................... 2
pts
h.
BtnSuivant_Click............................................................................................................. 2
pts
i.
BTnDernier_Click.............................................................................................................. 2
pt
j.
TxtReferencePro_TextChanged :
Pour afficher la liste des entrées d’un produit dans la deuxième liste.......................................................................................................................................... 4
pts
k.
BtnMajBD_Click............................................................................................................. 2
pts
l.
BtnSerialiser_Click........................................................................................................... 4
pts
m.
BtnDeSerialiser_Click...................................................................................................... 2
pts
3.
La fenêtre "FrmListeImpayes" :
Permet d’imprimer directement la liste des impayés d’un client donné au cours
d’une période donnée :
·
Le bouton Imprimer lance
une impression directe d’un état affichant les impayés pour le client choisi
(CmbClient) entre une date D1 (TxtD1) et une date D2 (TxtD2).
·
L’état de sortie
(RptImpayes) utilise le DataSet typé DST ayant la structure suivante :
·
La formule de sélection des
enregistrements pour RptImpayes est la suivante :
{Vente.NumClient}={?P1}
and {Vente.datevente} >= {?P2} and {Vente.DateVente}<={?P3}
a.
FrmBtnImprimer_Click.................................................................................................... 4
pts
Annexes :
Public Interface IDataProvider
Function
getConnection(ByVal ConnectionString As String) As IDbConnection
Function
getCommand() As IDbCommand
Function
getParameter() As IDbDataParameter
Function getDataAdapter() As Common.DbDataAdapter
End Interface
Public Class DataProviderFactory
Public
Shared Function
getInstance() As DataProvider
Return
getInstance("default")
End
Function
Public
Shared Function
getInstance(ByVal Fournisseur As String) As DataProvider
Dim
DP As DataProvider
Select
Case Fournisseur.ToLower
Case
"sql"
DP = New
DataProviderSQL
Case
"oledb"
DP = New DataProviderOledb
Case
"default"
End
Select
Return
DP
End Function
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="WindowsApplication1.My.MySettings.VideoClubConnectionString"
connectionString="Data
Source=PCNAOUAL;Initial Catalog=Epicerie;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="Chaine" value="Server=PCNaoual;Integrated
security=SSPI;Initial catalog=Epicerie"/>
</appSettings>