Передача диалоговой формы на сторону клиента

отредактировано 16:20 Раздел: FastReport .NET
Здравствуйте!

У нас есть решение на C# под .Net 3.5 + Firebird 2.1 + Fastreport.Net
С помощью Remoting решение условно разделено на клиентское и серверное приложение.
И на клиенте и на сервере наличие Framework 3.5.
"Клиент" вызывает удаленно классы на "сервере". Обмен данными через сериализуемые объекты ([Serializable]).
Работа с БД, с Fastreport реализована на "серверной" стороне.
На "клиенте" только интерфейс пользователя.
Отчеты выполняются на "сервере" и в виде текстовой строки передаются на "клиент" для отображения.
Параметры вызова для отчетов были жестко заданы в коде.

Встала задача вызова отчетов с разнообразными наборами входных параметров.
Решили использовать диалоговые формы самого отчета. Для этого:
1) В решение добавили новый проект WebApplication
2) выбрали хранение отчетов в frx-файлах (2-ой способ из документации)
3) на сервере развернули IIS сервер с подержкой ASP.Net 2.0
4) В "клиентский" проект добавили компонент WebBrowser для отображения HTML контента отчетов.

Отчёт без диалоговой формы отобразился.
Отчёт с диалоговой формой выдал сообщение:
====================================================
Server Error in '/' Application.

Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[InvalidOperationException: Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application.]
System.Windows.Forms.Form.ShowDialog(IWin32Window owner) +3261896
System.Windows.Forms.Form.ShowDialog() +6
FastReport.Dialog.DialogPage.ShowDialog() +11
FastReport.Engine.ReportEngine.ia6REKiqA(DialogPage ) +50
FastReport.Engine.ReportEngine.r8Sr5y9ja() +173
FastReport.Engine.ReportEngine.24tViBTvN(Boolean , Boolean , ReportPage ) +138
FastReport.Engine.ReportEngine.quTedQDqG(Boolean , Boolean ) +19
FastReport.Report.Prepare(Boolean append) +229
FastReport.Web.WebReport.eG9jTDwMn() +339
FastReport.Web.WebReport.OnLoad(EventArgs e) +68
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Control.LoadRecursive() +141
System.Web.UI.Control.LoadRecursive() +141
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627




Version Information: Microsoft .NET Framework Version:2.0.50727.3053; ASP.NET Version:2.0.50727.3053

====================================================

Судя по тексту сообщения, диалоговая форма попыталась "отобразиться" в серверном потоке, чего ей делать запрещено.
И нам это не нужно.

В описании другого продукта Fastreport.Server есть передача формы в виде простого HTML в обозреватель клиента.

Вопросы по Fastreport.Net для решения данной задачи:
1) умеет ли Fastreport.Net для ASP.NET передавать формы в виде простой HTML формы
2) ваши рекомендации по оптимальному решению данной задачи с применением продуктов FastReport


Комментарии

  • отредактировано 16:20
    Здравствуйте,

    Диалоговые формы в ASP.Net пока не поддерживаются. Постараемся добавить поддержку после версии 1.3. Пока же для каждого такого отчета надо делать свою форму для запроса параметров.
  • отредактировано 16:20
    Спасибо.
    Когда планирует по времени выпуск версии?
  • отредактировано 16:20
    Версия 1.3 - в конце этого месяца. После этого начинаем работу над диалогами.
  • Фирсов АлексейФирсов Алексей Хабаровск
    отредактировано 16:20
    Добрый день.
    Такая проблемка:
    Имеется WEB приложение с использованием отчета. Отчет содержит форму для фильтрации.
    При открытии страницы отчет отображает форму, но это окно появляется не в модальном виде, а просто в виде формы и отображается не поверх всех окон, а ЗА ними. Из-за этого часто не видно, что окно ожидает ввода данных. Как это можно поправить?

    Для удобства пользователей отчет выдается не сразу при открытии страницы, а при нажатии кнопки, в которой прописано:

    WebReport1.ReportDataSources = SqlDataSource1.ConnectionString;
    WebReport1.ReportFile = "~/App_Data/Отчет для клиента.frx";
    WebReport1.Refresh();

  • отредактировано 16:20
    Здравствуйте,

    Формы в ASP.Net пока не поддерживаются.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.