This is another for my own benefit :)
NeedsDataSource is a nice way to populate a report, but I always have trouble remembering which Type to cast to for the "object sender" variable
So here's an exampling of Binding to OpenAccess to flatten the data out for the report.
TelerikReportingNeedsDataSource.csView on GitHub private void crosstab1_NeedDataSource(object sender, EventArgs e) {
Telerik.Reporting.Processing.Table procReport = (Telerik.Reporting.Processing.Table)sender;
List<Response> submissions = (from s in context.Responses
where s.Submission.FormID == new Guid("6F38E890-6FFE-4F50-A8B5-8C5FDADDAF31")
select s).ToList();
var formatted = (from s in submissions
select new {
Submission = s.Submission,
SubmissionID = s.SubmissionID,
UserID = s.Submission.Userid,
SubmissionDate = s.Submission.Submitted,
FormID = s.Submission.FormID,
QuestionText = s.Question.GetQuestionText("EN", context),
AnswerText = s.Answertext,
AnswerNumeric = s.Answernumeric
});
procReport.DataSource = formatted;
}
This binds data to the CrossTab item, to bind to the report directly, use
Telerik.Reporting.Processing.Table