or
Public
Function
createReportFromDS()
As
Byte
()
Dim
ods
As
New
ObjectDataSource
ods.DataSource = cboSample.workers.getWorkers
ods.DataMember =
"workers"
'casing has to match
tblParent.DataSource = ods
tblChild.Bindings.Add(
New
Telerik.Reporting.Binding(
"DataSource"
,
"=getChildItem(ReportItem.DataObject)"
))
Return
generateReportObj()
End
Function
Public
Shared
Function
getChildItem(sender
As
Object
)
As
DataTable
Dim
dataObject =
DirectCast
(sender, Telerik.Reporting.Processing.IDataObject)
Dim
dt
As
DataTable =
CType
(
CType
(dataObject.RawData, DataRowView).Row, DataRow).GetChildRows(
"WtoT"
).CopyToDataTable()
Return
dt
End
Function
Public
Class
workers
Public
Shared
Function
getWorkers()
As
DataSet
Dim
ds
As
DataSet = getDS()
Dim
myCbo
As
New
dataItems
Dim
myWorkers
As
IEnumerable(Of parentItem) = myCbo.GetData
'to save typing just grab the custom object previously created and turn it into tables in a dataset
Dim
i
As
Integer
'process the items
For
Each
w
As
parentItem
In
myWorkers
ds.Tables(
"workers"
).Rows.Add(i, w.worker, w.age)
For
Each
t
As
childItem
In
w.tasks
ds.Tables(
"tasks"
).Rows.Add(i, t.taskName, t.timeRequired, t.difficulty.ToString)
Next
i += 1
Next
Return
ds
End
Function
''' <summary>
''' Returns a ds with columns and datarelations established
''' </summary>
''' <returns></returns>
Private
Shared
Function
getDS()
As
DataSet
Dim
dtP, dtC
As
DataTable
Dim
ds
As
New
DataSet
dtP =
New
DataTable(
"workers"
)
dtP.Columns.Add(
"pk"
,
GetType
(
Integer
))
dtP.Columns.Add(
"worker"
)
dtP.Columns.Add(
"age"
)
dtP.PrimaryKey =
New
DataColumn() {dtP.Columns(
"pk"
)}
dtC =
New
DataTable(
"tasks"
)
dtC.Columns.Add(
"fk"
,
GetType
(
Integer
))
dtC.Columns.Add(
"taskName"
)
dtC.Columns.Add(
"timeRequired"
)
dtC.Columns.Add(
"difficulty"
)
ds.Tables.AddRange(
New
DataTable() {dtP, dtC})
ds.Relations.Add(
"WtoT"
, ds.Tables(
"workers"
).Columns(
"pk"
), ds.Tables(
"tasks"
).Columns(
"fk"
))
Return
ds
End
Function
End
Class
this
.sqlDataSource1.ConnectionString =
"Data Source=\"C:\\Users\\Amecily\\Desktop\\Wits\\DFP v2.1\\Latest\\DFPProductions_Default"
+
"\\DFPProductions_Default\\App_Data\\DFP.sdf\""
;
this
.sqlDataSource1.Name =
"sqlDataSource1"
;
this
.sqlDataSource1.ProviderName =
"Microsoft.SqlServerCe.Client.4.0"
;
this
.sqlDataSource1.SelectCommand = resources.GetString(
"sqlDataSource1.SelectCommand"
);