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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
Public Class Form1
Dim lst As New List(Of DataSampleClass)
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
With lst
.Add(New DataSampleClass("Item 1", New Date(2012, 12, 24), 100))
.Add(New DataSampleClass("Item 1", New Date(2012, 12, 25), 200))
.Add(New DataSampleClass("Item 2", New Date(2012, 12, 24), 150))
.Add(New DataSampleClass("Item 2", New Date(2012, 12, 30), 50))
End With
DrawData(lst)
End Sub
Public Sub DrawData(ByVal _lst As List(Of DataSampleClass))
'On commence par créer les colonnes.
'On sélectionne les données qui vont servir d'entête de colonne
Dim Temp_Lst_SaveDate = From el As DataSampleClass In _lst Select el.SaveDate Distinct
'Pour chaque date différente, on va créer une colonne
For Each _Date As Date In Temp_Lst_SaveDate.ToList
Dim col As New DataGridViewTextBoxColumn
With col
.Name = _Date
.HeaderText = _Date
End With
DataGridView1.Columns.Add(col)
Next
'Ensuite, il faut ajouter les lignes
'On sélectionne les données
Dim Temp_Lst_Désignation = From el As DataSampleClass In _lst Select el.Désignation Distinct
'Pour chaque désignation différente, on ajoute une ligne et on renseigne la propriété HeaderCell.Value
For Each _Str As String In Temp_Lst_Désignation
Dim _Row As New DataGridViewRow
With _Row
.HeaderCell.Value = _Str
End With
DataGridView1.Rows.Add(_Row)
Next
'Pour finir, on va placer les données "Budget" dans le tableau
For Each _Item As DataSampleClass In _lst
Dim _Row = From el As DataGridViewRow In DataGridView1.Rows Select el Where el.HeaderCell.Value = _Item.Désignation
With _Row.First
DataGridView1.Rows(.Index).Cells(_Item.SaveDate).Value = _Item.Budget
End With
Next
End Sub
End Class |
Partager