Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Déclaration d'un tableau - VB 2005 Express

1 réponse
Avatar
Nesta
Bonjour à tous,

J'ai posé cette question une première fois, mais malgré les réponses
obtenues, je suis toujours dans le flou.
Je vais donc poser la question différemment.

Je souhaite créer une petite application qui gère des bordereaux de
marchandises.
Les bordereaux ont un numéro, un date, un numéro de container (entête du
bordereau), et sont composés d'un certain nombre de lignes, correspondant
aux marchandises commandées (détail du bordereau)
Sur chaque ligne, on a les champs suivants : code article, désignation,
prix.

J'ai pensé à créer une classe Bordereau (je rappelle que je suis très novice
en programmation objet et en VB.NET).
Dans cette classe, les membres correspondent aux infos de l'entête, et je
souhaite créer (comme il m'a été conseillé) un tableau (ou équivalent) qui
regroupe tous les champs qu'on trouve sur une ligne (code article,
désignation, prix).
Voici un exemple de mon code :

"
Public Class Bordereau

Private m_Numero as Integer
Private m_LaDate as Date
Private m_Container as String
Private m_LigneBordereau as ???

Public Property Numero( )
Public Property LaDate ( )
Public Property Container ( )

End Class
"
Mon problème :
1) je ne sais pas quelle est la meilleure variable à choisir pour déclarer
mon "tableau" m_LigneBordereau.
2) je ne sais pas comment déclarer les champs dans cette variable (qui
comporte des types différents).

Faut-il utiliser une variable Array, ou un Datagrid, ou autre ?

Merci d'avance pour vos réponses, car je suis complètement perdu !


Cordialement,
Nesta

1 réponse

Avatar
Cyril P.
Bonjour,

Personellement, j'aurais ici utilisée une collection fortement typée.
Tout d'abord, tu fabriques, comme ta classe bordereau, une classe
ligne_bordereau avec les bonnes propriétés.

Ensuite, tu déclares un objet dérivant de la collection et tu surcharges les
membres classiques, cela te permettra de typer formtement ta collection. Le
code pour ce faire resemblera à quelque-chose prêt à ça :

Public Class lignes_boredereau
Inherits System.Collections.CollectionBase
' note : le 's' au bout de ligne n'est pas la par hasard, mais le nom peut
preter a confusion avec ligne_bordereau, a toi de voir si ces appelations te
conviennent

Public Sub Add(ByVal ligne As ligne_bordereau)
Me.List.Add(ligne)
End Sub

Public Sub Add(ByVal code As String, ByVal designation As String, ByVal prix
as double)
Dim ligne as ligne_bordereau = new ligne_bordereau(code, designation, prix)
me.List.Add(ligne)
End Sub

Public Sub Insert(ByVal Index As Integer, ByVal ligne As ligne_bordereau)
Me.List.Insert(Index, ligne)
End Sub

Public ReadOnly Property Items(ByVal Index As Integer) As ligne_bordereau
Get
Return CType(Me.List(Index), ligne_bordereau)
End Get
End Property

...

'Tu peux profiter de la puissance de la collection et aussi implémenter dans
cette classe des fonctions metier pratiques
'comme par exemple une fonction CalculPrix qui va faire la somme de toutes
les propriétés prix des membres de la collection toute seule ...

End Class

Voila, je dis pas que c'est l'implémentation idéale mais j'aurais procédé
comme ça. Ensuite, m_LigneBordereau dans ta classe sera du type
lignes_bordereau et tu pourras utiliser cette collection avec tout le confort
que ça signifie (propriété count etc ...).

De nombreux articles sur le net traitent de l'utilisation des collections si
tu as besoin de plus de détails.

Cordialement,
--
Cyril PINEAU
.Net Technical analyst
CNPPF France


"Nesta" wrote:

Bonjour à tous,

J'ai posé cette question une première fois, mais malgré les réponses
obtenues, je suis toujours dans le flou.
Je vais donc poser la question différemment.

Je souhaite créer une petite application qui gère des bordereaux de
marchandises.
Les bordereaux ont un numéro, un date, un numéro de container (entête du
bordereau), et sont composés d'un certain nombre de lignes, correspondant
aux marchandises commandées (détail du bordereau)
Sur chaque ligne, on a les champs suivants : code article, désignation,
prix.

J'ai pensé à créer une classe Bordereau (je rappelle que je suis très novice
en programmation objet et en VB.NET).
Dans cette classe, les membres correspondent aux infos de l'entête, et je
souhaite créer (comme il m'a été conseillé) un tableau (ou équivalent) qui
regroupe tous les champs qu'on trouve sur une ligne (code article,
désignation, prix).
Voici un exemple de mon code :

"
Public Class Bordereau

Private m_Numero as Integer
Private m_LaDate as Date
Private m_Container as String
Private m_LigneBordereau as ???

Public Property Numero( )
Public Property LaDate ( )
Public Property Container ( )

End Class
"
Mon problème :
1) je ne sais pas quelle est la meilleure variable à choisir pour déclarer
mon "tableau" m_LigneBordereau.
2) je ne sais pas comment déclarer les champs dans cette variable (qui
comporte des types différents).

Faut-il utiliser une variable Array, ou un Datagrid, ou autre ?

Merci d'avance pour vos réponses, car je suis complètement perdu !


Cordialement,
Nesta