Регистрация данных в Webreport
Не могу разобраться, как программно передать данные в отчёт из ASP.NET.
Я работаю с данными через LINQ to SQL.
Чтобы загрузить данные в GridView я делаю так:
Предполагаю, что нужно использовать метод WebReport1.Report.RegisterDataAsp(),
но что ему передать в качестве параметра?
Я работаю с данными через LINQ to SQL.
Чтобы загрузить данные в GridView я делаю так:
MyDataContext db = new MyDataContext();
string god = HttpContext.Current.Profile["year"].ToString();
// запрос к данным
IQueryable<tab1> Query=from t in db.tab1 where t.year == god;
// сохраняю в памяти
List<tab1> data = Query.ToList();
foreach (tab1 t in data)
{
// некая дополнительная обработка данных
}
GridView1.DataSource = data;
GridView1.DataBind();
А как передать эти данные в WebReport ?Предполагаю, что нужно использовать метод WebReport1.Report.RegisterDataAsp(),
но что ему передать в качестве параметра?
Комментарии
Данные надо регистрировать в событии WebReport.StartReport так:
WebReport1.Report.RegisterData(data, "MyData");
Спасибо за быстрый ответ.
Скажите, а то, что при этом в отчёт выводится только первая запись, это ограничение демо-версии?
(WebReport1.Report.FindObject("Data1") as DataBand).DataSource = WebReport1.Report.GetDataSource("MyData");
но лучше во время дизайна отчета иметь подключенный источник с "живыми" данными. В asp.net с этим тяжелее, чем в winforms. Возможные варианты:
1) использовать компонент ObjectDataSource, подключать его к классу со своими данными и использовать в отчете (аналогично тому, как описано в разделе "Работа в ASP.NET/Использование компонента WebReport" руководства программиста). Данные в этом варианте не "живые".
2) вызывать дизайнер из своего приложения (работать будет, естественно, только локально на машине разработчика). На веб-страницу кладется кнопка и пишется обработчик: Запускаете приложение, нажимаете кнопку. Вызывается дизайнер отчета, в котором уже зарегистрирован источник данных (с "живыми" данными). Создаете отчет и сохраняете его в файл. Чтобы показать отчет в WebReport, загружаете отчет из файла и пишете следующий обработчик WebReport.StartReport: После этого кнопку и код вызова дизайнера можно убрать.