Кучка вопросов по теме.

Обсуждение Stimulsoft Reports.WEB
Аватара пользователя
Vladimir
Сообщения: 415
Зарегистрирован: 06 авг 2008, 09:48
Откуда: Earth

Re: Кучка вопросов по теме.

Сообщение Vladimir »

Здравствуйте,

Уточните пожалуйста некоторые моменты по ошибке с загрузкой отчёта:
1. В случае, если отчёт не загружается, прогрессбар загрузки исчезает и отображается одна пустая страница во вьювере или он зацикливается на "Compiling Report" ?
2. На какой версии IIS сервера развёрнуто web приложение?
3. Включено ли кэширование и компрессия данных на стороне сервера? Если да, попробуйте отключить для теста.
4. Зависит ли ошибка от браузера?

Спасибо.
avorsa
Сообщения: 23
Зарегистрирован: 10 май 2012, 14:10
Откуда: Moscow

Re: Кучка вопросов по теме.

Сообщение avorsa »

Здравствуйте,

Уточните пожалуйста некоторые моменты по ошибке с загрузкой отчёта:
1. В случае, если отчёт не загружается, прогрессбар загрузки исчезает и отображается одна пустая страница во вьювере или он зацикливается на "Compiling Report" ?
2. На какой версии IIS сервера развёрнуто web приложение?
3. Включено ли кэширование и компрессия данных на стороне сервера? Если да, попробуйте отключить для теста.
4. Зависит ли ошибка от браузера?

Спасибо.
1. прогрессбар исчезает. На "Compiling Report" не зацикливается
2. вот этот хостинг IIS 7.0
3. можно поподробнее про это?
4. нет, не зависит
Аватара пользователя
Vladimir
Сообщения: 415
Зарегистрирован: 06 авг 2008, 09:48
Откуда: Earth

Re: Кучка вопросов по теме.

Сообщение Vladimir »

Здравствуйте,

Возникает ли такая ошибка не на сервере? (на локальной машине разработчика)

Попробуйте в действии ActionGetReportSnapshot разместить код логирования отчёта, что бы определить кто виноват - вьювер (не отображает отчёт) или сервер (не строит отчёт). Код можно написать примерно такой:

Код: Выделить всё

public ActionResult GetReportSnapshot()
{
       DataSet data = new DataSet("Demo");
       data.ReadXml(Server.MapPath("~/Content/Demo.xml"));

       StiReport report = new StiReport();
       report.Load("F:\\MyReport.mrt");
       report.Dictionary.Databases.Clear();
       report.RegData(data);
       report.Render(false);

       report.SaveDocument("<место для сохранения>/<имя файла + текущее время>.mdc")

       return StiMvcViewerFxHelper.GetReportSnapshotResult(report, this.Request);
}
При появлении "пустого" отчёта, проверить соответствующий файл - содержит ли он корректный отчёт?

Спасибо.
avorsa
Сообщения: 23
Зарегистрирован: 10 май 2012, 14:10
Откуда: Moscow

Re: Кучка вопросов по теме.

Сообщение avorsa »

и на локальной и на сервере возникает такая ошибка.
на локальной работаю в VS2010 и там IIS 7.5 кажется.

с логированием сейчас попробую
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Кучка вопросов по теме.

Сообщение HighAley »

Здравствуйте.

Попробуйте также воспроизвести проблему на отчёте без данных и на отчёте с данными из XML.

Ждём результата тестирования.

Спасибо.
avorsa
Сообщения: 23
Зарегистрирован: 10 май 2012, 14:10
Откуда: Moscow

Re: Кучка вопросов по теме.

Сообщение avorsa »

Код: Выделить всё

        public ActionResult GetReportSnapshotLoadOnTheInput()
        {
            var report = new StiReport();
            report.Load(Server.MapPath("~/Content/1_ThirdYearGroupByMonth.mrt"));

            report.Save("C:\\TEMP\\log.mdc");
            return StiMvcViewerFxHelper.GetReportSnapshotResult(report, this.Request);
        }
файл C:\\TEMP\\log.mdc создается. В обоих случаях - и когда отчет не показывается и когда показывается.
C:\\TEMP\\log.mdc идентичен по содержимому ~/Content/1_ThirdYearGroupByMonth.mrt
avorsa
Сообщения: 23
Зарегистрирован: 10 май 2012, 14:10
Откуда: Moscow

Re: Кучка вопросов по теме.

Сообщение avorsa »

Без данных все летает. Вместо данных просто текст вывожу. С xml попробую еще.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Кучка вопросов по теме.

Сообщение HighAley »

Здравствуйте.
avorsa писал(а):

Код: Выделить всё

        public ActionResult GetReportSnapshotLoadOnTheInput()
        {
            var report = new StiReport();
            report.Load(Server.MapPath("~/Content/1_ThirdYearGroupByMonth.mrt"));

            report.Save("C:\\TEMP\\log.mdc");
            return StiMvcViewerFxHelper.GetReportSnapshotResult(report, this.Request);
        }
файл C:\\TEMP\\log.mdc создается. В обоих случаях - и когда отчет не показывается и когда показывается.
C:\\TEMP\\log.mdc идентичен по содержимому ~/Content/1_ThirdYearGroupByMonth.mrt
Метод Save() сохраняет шаблон отчёта, а вам надо сохранить построенный отчёт с помощью метода SaveDocument()

Спасибо.
avorsa
Сообщения: 23
Зарегистрирован: 10 май 2012, 14:10
Откуда: Moscow

Re: Кучка вопросов по теме.

Сообщение avorsa »

Здравствуйте.

avorsa писал(а):

Код: Выделить всё

public ActionResult GetReportSnapshotLoadOnTheInput()
                {
                    var report = new StiReport();
                    report.Load(Server.MapPath("~/Content/1_ThirdYearGroupByMonth.mrt"));

                    report.Save("C:\\TEMP\\log.mdc");
                    return StiMvcViewerFxHelper.GetReportSnapshotResult(report, this.Request);
                }


файл C:\\TEMP\\log.mdc создается. В обоих случаях - и когда отчет не показывается и когда показывается.
C:\\TEMP\\log.mdc идентичен по содержимому ~/Content/1_ThirdYearGroupByMonth.mrt


Метод Save() сохраняет шаблон отчёта, а вам надо сохранить построенный отчёт с помощью метода SaveDocument()

Спасибо.
Во вложении файлик, который получается при использовании SaveDocument(). Независимо от того, показался ли отчет или нет.
Вложения
log.mdc
(743 байт) 407 скачиваний
Аватара пользователя
Vladimir
Сообщения: 415
Зарегистрирован: 06 авг 2008, 09:48
Откуда: Earth

Re: Кучка вопросов по теме.

Сообщение Vladimir »

Здравствуйте,

У вас сохраняется пустое тело построенного отчёта. Перед сохранением построенного отчёта, собственно необходимо его построить, так как SaveDocument() не выполняет автоматическое построение:

Код: Выделить всё

                public ActionResult GetReportSnapshotLoadOnTheInput()
                {
                    var report = new StiReport();
                    report.Load(Server.MapPath("~/Content/1_ThirdYearGroupByMonth.mrt"));

                    report.Render(false);

                    report.SaveDocument("C:\\TEMP\\log.mdc");
                    return StiMvcViewerFxHelper.GetReportSnapshotResult(report, this.Request);
                }
Попробуйте такой вариант.

Спасибо.
Ответить