Bonjour,
Je suis en train de créer un programme de gestion de stock avec des articles, des devis, des factures, des commandes, des BL, des redus...
Je vais devoir enregistrer et récupérer régulièrement des informations répétitives dans ma base de données. Par exemple je vais créer un devis, puis le transformer en bon de commande commande, puis en bon de préparation, puis en BL.... Je pense gérer toutes la partie "récupération et insertion d'information de la base de données avec des class (ici ma class s'appelera "Articles.vb" par exemple). Comme ça je pourrai l'appeler de n'importe où dans mon programme. Et je vais gérer l'affichage dans mes formulaires (car plusieurs formulaires peuvent avoir des affichages différents mais récupèrerons les mêmes informations de ma BDD par la class adaptée). Par exemple un article sera affiché dans un devis ou dans une liste d'articles, mais avec un affichage différent.
Par exemple j'ai un formulaire qui affiche une sélection d'Articles. Je pense récupérer toutes les fiches articles (référence, libellé, qte, tarifs...) dans un Arraylist (il y aura autant d'article que de ligne dans mon Arraylist). Puis de traiter les informations comme je le souhaite en affichant la structure de l'article. Je souhaiterai les afficher sous cette forme :
article(0).reference
article(0).libelle
article(0).prix
---
article(1).reference
article(1).libelle
article(1).prix
J'ai developpé ça comme ceci :
Ma class Articles.vb
Ensuite dans un formulaire quelconque je peux récupérer toutes les données de mes fiches articles avec la structure comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 ' Je défini une structure avec toutes les informations de ma fiche articles Public Structure StructSousRef Dim Id As Integer Dim CodeInterne1 As Integer Dim Libelle As String Dim Qte As Integer End Structure ' Je déclare ensuite une fonction qui met tous les articles souhaités (avec la structure) dans un arraylist comme ceci : Public Function getSousReference(ByVal IdArticle As Integer) As ArrayList Dim TabSousRefs As New ArrayList Dim cnxSRF = New DBSQL cnxSRF.Requete = "SELECT Articles.Id,CodeInterne1,Libelle,Qte FROM...'" cnxSRF.ConnectionExecuteReader() 'Dim TabSousRefs() As StructSousRef Dim i As Integer = 0 Do While cnxSRF.Reader.Read Dim sousRef As New StructSousRef With sousRef 'ici je bénéficie de ma structure .Id = cnxSRF.Reader.GetInt32(0) .CodeInterne1 = cnxSRF.Reader.GetInt32(1) .Libelle = cnxSRF.Reader.GetString(2) .Qte = cnxSRF.Reader.GetInt32(3) End With TabSousRefs.Add(sousRef) Loop Return TabSousRefs End Function
Que pensez-vous de cette méthode ? Je souhaite par la suite passer mon Objet contenant tous les articles sélectionné dans un arraylist (TabSousRefs) dans une fiche article par exemple, ou dans un devis, ou dans une commande... Est-ce la bonne méthode à employer pour récupérer les information d'une base de données de manière structurée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 ' je crais un objet myArticle grâce à ma class Dim myArticle As New Articles ' je lance ma fonction qui va chercher les informations des articles souhaités et crais un arraylist avec autant de ligne que d'articles avec pour chaque article les informations de la structure (libellé, référence, id,qte...) myArticle.getFiche(IdArticle) Dim TabSousRefs As ArrayList = myArticle.getSousReference(IdArticle) ' On affiche les sous références dans un datagridview Me.DGVsousref.Rows.Clear() For i = 0 To TabSousRefs.Count - 1 ' on recupère l'article et ça structure Dim sousRef As StructSousRef = CType(TabSousRefs(i), StructSousRef) ' on affiche les informations voulu dans le datagrid view Me.DGVsousref.Rows.Add(sousRef.Id, sousRef.CodeInterne1, sousRef.Libelle, sousRef.Qte) ' on recupère bien un article avec toute ça structure ;-) ' on passe à l'article suivant Next
J'espère que je n'ai pas été trop confus dans mon explication. Je cherche à organiser au mieux mon projet pour avoir des bases solides car il deviendra assez complexe par la suite.
Merci pour votre aide.
;-)
Partager