Hello,
I updated our reports to version 3.2.9.1104 and most of them broke. The reports that broke the only difference i could see is they are using ArrayLists populated with BusinessObjects, If I use an ObservableCollection<T> it seems to work just fine. Any help on this problem would be great.
some sample code
this one works
this one doesn't
Thanks Much
~Boots
I updated our reports to version 3.2.9.1104 and most of them broke. The reports that broke the only difference i could see is they are using ArrayLists populated with BusinessObjects, If I use an ObservableCollection<T> it seems to work just fine. Any help on this problem would be great.
some sample code
this one works
public partial class Window1 : Window |
{ |
public Window1() |
{ |
InitializeComponent(); |
ReportViewer rv = new ReportViewer(); |
Report1 rpt = new Report1(); |
ObservableCollection<MyObject> ary = GenerateData(); |
rpt.DataSource = ary; |
rv.Report = rpt; |
rv.RefreshReport(); //wfh is WindowsFormsHost |
wfh.Child = rv; |
} |
private static ObservableCollection<MyObject> GenerateData() |
{ |
ObservableCollection<MyObject> data = new ObservableCollection<MyObject>(); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q1", Make = "Tata", Region = "Europe", Sales = 11 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q2", Make = "Tata", Region = "Europe", Sales = 12 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q3", Make = "Tata", Region = "Europe", Sales = 13 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q4", Make = "Tata", Region = "Europe", Sales = 14 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q1", Make = "Tata", Region = "Asia", Sales = 15 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q2", Make = "Tata", Region = "Asia", Sales = 16 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q3", Make = "Tata", Region = "Asia", Sales = 17 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q4", Make = "Tata", Region = "Asia", Sales = 17 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q1", Make = "Tata", Region = "Africa", Sales = 19 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q2", Make = "Tata", Region = "Africa", Sales = 20 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q3", Make = "Tata", Region = "Africa", Sales = 21 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q4", Make = "Tata", Region = "Africa", Sales = 22 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q1", Make = "Tata", Region = "Europe", Sales = 111 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q2", Make = "Tata", Region = "Europe", Sales = 112 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q3", Make = "Tata", Region = "Europe", Sales = 113 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q4", Make = "Tata", Region = "Europe", Sales = 114 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q1", Make = "Tata", Region = "Asia", Sales = 115 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q2", Make = "Tata", Region = "Asia", Sales = 116 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q3", Make = "Tata", Region = "Asia", Sales = 117 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q4", Make = "Tata", Region = "Asia", Sales = 118 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q1", Make = "Tata", Region = "Africa", Sales = 119 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q2", Make = "Tata", Region = "Africa", Sales = 120 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q3", Make = "Tata", Region = "Africa", Sales = 121 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q4", Make = "Tata", Region = "Africa", Sales = 122 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q1", Make = "Toyota", Region = "Europe", Sales = 22 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q2", Make = "Toyota", Region = "Europe", Sales = 23 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q3", Make = "Toyota", Region = "Europe", Sales = 24 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q4", Make = "Toyota", Region = "Europe", Sales = 25 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q1", Make = "Toyota", Region = "Asia", Sales = 26 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q2", Make = "Toyota", Region = "Asia", Sales = 27 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q3", Make = "Toyota", Region = "Asia", Sales = 28 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q4", Make = "Toyota", Region = "Asia", Sales = 29 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q1", Make = "Toyota", Region = "Africa", Sales = 30 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q2", Make = "Toyota", Region = "Africa", Sales = 31 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q3", Make = "Toyota", Region = "Africa", Sales = 32 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q4", Make = "Toyota", Region = "Africa", Sales = 33 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q1", Make = "Toyota", Region = "Europe", Sales = 122 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q2", Make = "Toyota", Region = "Europe", Sales = 123 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q3", Make = "Toyota", Region = "Europe", Sales = 124 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q4", Make = "Toyota", Region = "Europe", Sales = 125 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q1", Make = "Toyota", Region = "Asia", Sales = 126 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q2", Make = "Toyota", Region = "Asia", Sales = 127 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q3", Make = "Toyota", Region = "Asia", Sales = 128 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q4", Make = "Toyota", Region = "Asia", Sales = 129 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q1", Make = "Toyota", Region = "Africa", Sales = 130 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q2", Make = "Toyota", Region = "Africa", Sales = 131 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q3", Make = "Toyota", Region = "Africa", Sales = 132 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q4", Make = "Toyota", Region = "Africa", Sales = 133 }); |
return data; |
} |
} |
public class MyObject |
{ |
public string Make |
{ |
get; |
set; |
} |
public string Quarter |
{ |
get; |
set; |
} |
public int Year |
{ |
get; |
set; |
} |
public string Region |
{ |
get; |
set; |
} |
public decimal Sales |
{ |
get; |
set; |
} |
} |
this one doesn't
public partial class Window1 : Window |
{ |
public Window1() |
{ |
InitializeComponent(); |
ReportViewer rv = new ReportViewer(); |
Report1 rpt = new Report1(); |
ArrayList ary = GenerateData(); |
rpt.DataSource = ary; |
rv.Report = rpt; |
rv.RefreshReport(); //wfh is WindowsFormsHost |
wfh.Child = rv; |
} |
private static ArrayList GenerateData() |
{ |
ArrayList data = new ArrayList(); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q1", Make = "Tata", Region = "Europe", Sales = 11 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q2", Make = "Tata", Region = "Europe", Sales = 12 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q3", Make = "Tata", Region = "Europe", Sales = 13 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q4", Make = "Tata", Region = "Europe", Sales = 14 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q1", Make = "Tata", Region = "Asia", Sales = 15 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q2", Make = "Tata", Region = "Asia", Sales = 16 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q3", Make = "Tata", Region = "Asia", Sales = 17 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q4", Make = "Tata", Region = "Asia", Sales = 17 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q1", Make = "Tata", Region = "Africa", Sales = 19 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q2", Make = "Tata", Region = "Africa", Sales = 20 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q3", Make = "Tata", Region = "Africa", Sales = 21 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q4", Make = "Tata", Region = "Africa", Sales = 22 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q1", Make = "Tata", Region = "Europe", Sales = 111 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q2", Make = "Tata", Region = "Europe", Sales = 112 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q3", Make = "Tata", Region = "Europe", Sales = 113 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q4", Make = "Tata", Region = "Europe", Sales = 114 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q1", Make = "Tata", Region = "Asia", Sales = 115 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q2", Make = "Tata", Region = "Asia", Sales = 116 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q3", Make = "Tata", Region = "Asia", Sales = 117 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q4", Make = "Tata", Region = "Asia", Sales = 118 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q1", Make = "Tata", Region = "Africa", Sales = 119 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q2", Make = "Tata", Region = "Africa", Sales = 120 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q3", Make = "Tata", Region = "Africa", Sales = 121 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q4", Make = "Tata", Region = "Africa", Sales = 122 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q1", Make = "Toyota", Region = "Europe", Sales = 22 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q2", Make = "Toyota", Region = "Europe", Sales = 23 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q3", Make = "Toyota", Region = "Europe", Sales = 24 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q4", Make = "Toyota", Region = "Europe", Sales = 25 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q1", Make = "Toyota", Region = "Asia", Sales = 26 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q2", Make = "Toyota", Region = "Asia", Sales = 27 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q3", Make = "Toyota", Region = "Asia", Sales = 28 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q4", Make = "Toyota", Region = "Asia", Sales = 29 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q1", Make = "Toyota", Region = "Africa", Sales = 30 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q2", Make = "Toyota", Region = "Africa", Sales = 31 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q3", Make = "Toyota", Region = "Africa", Sales = 32 }); |
data.Add(new MyObject() { Year = 2007, Quarter = "Q4", Make = "Toyota", Region = "Africa", Sales = 33 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q1", Make = "Toyota", Region = "Europe", Sales = 122 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q2", Make = "Toyota", Region = "Europe", Sales = 123 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q3", Make = "Toyota", Region = "Europe", Sales = 124 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q4", Make = "Toyota", Region = "Europe", Sales = 125 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q1", Make = "Toyota", Region = "Asia", Sales = 126 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q2", Make = "Toyota", Region = "Asia", Sales = 127 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q3", Make = "Toyota", Region = "Asia", Sales = 128 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q4", Make = "Toyota", Region = "Asia", Sales = 129 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q1", Make = "Toyota", Region = "Africa", Sales = 130 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q2", Make = "Toyota", Region = "Africa", Sales = 131 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q3", Make = "Toyota", Region = "Africa", Sales = 132 }); |
data.Add(new MyObject() { Year = 2008, Quarter = "Q4", Make = "Toyota", Region = "Africa", Sales = 133 }); |
return data; |
} |
} |
public class MyObject |
{ |
public string Make |
{ |
get; |
set; |
} |
public string Quarter |
{ |
get; |
set; |
} |
public int Year |
{ |
get; |
set; |
} |
public string Region |
{ |
get; |
set; |
} |
public decimal Sales |
{ |
get; |
set; |
} |
} |
Thanks Much
~Boots