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 !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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 !
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 !