Источник данных Reportviewer в asp.net-mvc - PullRequest
6 голосов
/ 19 мая 2009

Как интегрировать ReportViewer в проект asp.net MVC?

Я хочу добавить бизнес-объекты из пространства имен MVCProject.Model. ReportViewer позволяет бизнес-объектам DataSet.

Можно ли выбрать другой источник данных, например LinqDataSource или объект Direct для объектов класса LINQ-to-SQL?

Как лучше всего добавить отчеты в проект MVC?

Ответы [ 4 ]

2 голосов
/ 21 ноября 2009

У меня есть идея, которая не проверяется, но может работать. 1- Поместите элемент управления средства просмотра отчетов на стандартную страницу веб-формы ASP.Net (например, ReportViewer.aspx). 2. В вашем MVC добавьте iframe, который ссылается на эту страницу ReportViewer.aspx. 3 - передать параметры на страницу, используя сеансы или строки запроса

Дайте мне знать, если это работает

2 голосов
/ 18 сентября 2009

Альтернативный способ сделать это - сгенерировать отчет на сервере отчетов, а затем передать его в приложение mvc в формате PDF.

1 голос
/ 19 мая 2009

Это будет тяжело. Во-первых, вам нужен ViewState, поэтому вам нужно разместить отчет на обычной странице WebForms. Это не так уж и плохо - WebForms и MVC отлично работают бок о бок.

Сложная часть - это привязка к реальным объектам IEnumerable, а не к этим фиктивным ObjectDataSources.

Первым шагом является построение модели данных отчета. Вы можете сделать это в коде, с запросами, что угодно, как вы хотите. Типичная структура (но, очевидно, намного больше) типична:

public class ReportSource
{   
   public Floogle[] Floogles { get; set; }
}

public class Floogle
{
    public Doodad[] Doodads { get; set; } 
    public string Text { get; set; }
}

public class Doodad
{
    public int Number { get; set; }
}

Хитрость заключается в том, чтобы использовать в отчете элемент управления BindingSource и установить для свойства DataSource значение typeof(ReportSource) - да, источником данных является тип вашей модели отчета.

При разработке отчета вы не получите много богатства, но вы сможете это сделать.

Что касается решений для сторонней отчетности, мы считаем, что Telerik - лучший вариант.

0 голосов
/ 25 сентября 2009

У меня есть небольшой проект, который я бросил на codeplex, это проект MVC с отчетом.

http://mvctaskmanagement.codeplex.com/

По сути, так как я делаю dev на XP box, мою веб-форму пришлось перенести в отдельный проект. Так как у меня есть proj сервисного уровня, я воткнул его туда.

Оттуда я вызываю свой отчет через сообщение ajax, перебрасывая параметры на страницу отчета, которая затем передает его тому же служебному слою, который использовался для создания предварительного просмотра.

Удачи!

...