Страница 2 из 3

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

Добавлено: 15 авг 2012, 10:11
Vladimir
Здравствуйте,

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

Спасибо.

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

Добавлено: 15 авг 2012, 11:29
avorsa
Здравствуйте,

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

Спасибо.
1. прогрессбар исчезает. На "Compiling Report" не зацикливается
2. вот этот хостинг IIS 7.0
3. можно поподробнее про это?
4. нет, не зависит

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

Добавлено: 15 авг 2012, 16:31
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);
}
При появлении "пустого" отчёта, проверить соответствующий файл - содержит ли он корректный отчёт?

Спасибо.

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

Добавлено: 15 авг 2012, 16:45
avorsa
и на локальной и на сервере возникает такая ошибка.
на локальной работаю в VS2010 и там IIS 7.5 кажется.

с логированием сейчас попробую

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

Добавлено: 15 авг 2012, 16:57
HighAley
Здравствуйте.

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

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

Спасибо.

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

Добавлено: 15 авг 2012, 19:35
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

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

Добавлено: 15 авг 2012, 19:50
avorsa
Без данных все летает. Вместо данных просто текст вывожу. С xml попробую еще.

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

Добавлено: 16 авг 2012, 12:21
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()

Спасибо.

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

Добавлено: 16 авг 2012, 13:59
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(). Независимо от того, показался ли отчет или нет.

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

Добавлено: 17 авг 2012, 10:55
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);
                }
Попробуйте такой вариант.

Спасибо.