Bonjour,
J'ai un problème avec DataSource Objet de mes reports, plus précisément avec les propriétés de type List(of myObject).
Voici un petit exemple
Ma Class1
Ma Class2
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
34 <Serializable> Public Class Class1 Private _id As Integer Public Property ID() As Integer Get Return _id End Get Set(ByVal value As Integer) _id = value End Set End Property Private _lstClass As List(Of Class2) Public Property lstClass() As List(Of Class2) Get Return _lstClass End Get Set(ByVal value As List(Of Class2)) _lstClass = value End Set End Property Public Sub New() _id = 1 _lstClass = New List(Of Class2) _lstClass.Add(New Class2 With {.Name = "test1"}) _lstClass.Add(New Class2 With {.Name = "test2"}) _lstClass.Add(New Class2 With {.Name = "test3"}) End Sub End Class
Class1 possède donc une List(of Class2)
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 <Serializable> Public Class Class2 Private _Name As String Public Property Name() As String Get Return _Name End Get Set(ByVal value As String) _Name = value End Set End Property Public Sub New() End Sub End Class
Dans mon rapport je créé un dataset1 qui utilise Class1 ce qui me permet de visualiser ma propriété ID jusque la pas de problème.
Ensuite je créé un dataset2 qui utilise Class1(lstClass) qui correspond donc à ma List(of Class2) contenu dans ma Class1.
j'utilise ce dataset sur un tableau afin qu'il m'affiche toute la liste et c'est la que je bloque, le rapport n'affiche aucune données...
Mes classes sont bien sérialisable
J'ai bien un constructeur sans paramètre dans chacune des classe
Tous les attributs on des accesseurs public
La dataSource du report est bien initialisée (code ci-dessous)
Est-ce que quelqu'un aurait une idée de ce qui pourrait bloquer le traitement ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub RadForm1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim c1 As Class1 = New Class1 Me.Class1BindingSource.DataSource = c1 Me.ReportViewer1.RefreshReport() End Sub
Merci d'avance
Cordialement
Max
Partager