StiMvcViewer: кастомизация отчета после GetReportSnapshot

Обсуждение Stimulsoft Reports.WEB
Ответить
DmitryRu
Сообщения: 163
Зарегистрирован: 19 май 2014, 10:40

StiMvcViewer: кастомизация отчета после GetReportSnapshot

Сообщение DmitryRu »

Мы используем StiMvcViewer версии 2015.1.11
В приложении один .cshtml файл предназначен для отображения всех отчетов приложения.
Как известно, отчет строится, грубо говоря, двумя Http запросами.
Первый запрос возвращает HTML разметку, второй запрашивает JSON для отображения данных.
Мне не хотелось бы производить создание объекта StiReport в момент первого запроса, дело в том, что определения отчетов (.mrt файлы) лежат в СУБД, и каждый лишний запрос стараемся урезать.
Т.е., создание объекта StiReport происходит во время второго HTTP запроса, по адресу GetReportSnapshot.
Но проблема в том, что заголовок странички, <title>, создается в момент первого HTTP запроса. Потому я не могу в заголовке написать корректное название отчета - название будет известно, только после создания объекта StiReport, при вызове функции GetReportSnapshot.

Есть ли возможность кастомизировать Javascript таким образом, чтобы после получения ответа на GetReportSnapshot была вызвана некая моя Javascript функция, которая бы кастомизировала HTML страничку? И как бы эта функция еще бы могла получить информацию, которая пришла с сервера....

Спасибо.
DmitryRu
Сообщения: 163
Зарегистрирован: 19 май 2014, 10:40

Re: StiMvcViewer: кастомизация отчета после GetReportSnapsho

Сообщение DmitryRu »

Вариант решения озвученной проблемы нашелся.
Ведь все отчеты при первом построении сохраняются в виде .dll на диске, потому, русскоязычное название отчета можно будет выдернуть путем создания StiReport из этой .dll, это не займет много ресурсов и не потребует дополнительного SQL запроса.
Однако вопрос о том, где бы почитать документацию о расширении javascript на стороне StiMvcViewer, остается.
Например, есть еще такой запрос:
надо замерять время, потраченное на построение отчета, на стороне клиента,
т.е. по завершению вызова GetReportSnapshot надо замерить время, прошедшее с момента события document.ready. Речь о вычислениях на стороне HTML странички в браузере.
Аватара пользователя
Vladimir
Сообщения: 415
Зарегистрирован: 06 авг 2008, 09:48
Откуда: Earth

Re: StiMvcViewer: кастомизация отчета после GetReportSnapsho

Сообщение Vladimir »

Здравствуйте Дмитрий,

Попробуйте разместить следующий Javascript-код на странице вьювера (после компонента MvcViewer):

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

<script type="text/jscript">
    jsMvcViewer.showError = function (text) {
        if (text != null && text.substr(0, 6) == "Error:") {
            if (text.length == 7) text += "Undefined";
            alert(text);
            return true;
        }

        var answer = JSON.parse(text);
        if (answer.reportFileName) document.title = answer.reportFileName;

        return false;
    }
</script>
Функция showError(text) вызывается при ответе сервера для проверки наличия ошибок, которые могут приходить в качестве ответа. При первом запросе вьюверу отправляются некоторые параметры отчета, один из которых - имя отчета.

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