StiMvcViewer: кастомизация обработки ошибок

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

StiMvcViewer: кастомизация обработки ошибок

Сообщение DmitryRu »

Есть ли возможность для компонента StiMvcViewer изменить логику обработки ошибок?
Как минимум, интересует обработка ошибки "Таймаут обращения к серверу".

У нас в приложении другой стиль обработки ошибок.
Нам нужно, при возникновении ошибки, вызвать свою функцию Javascript.

Хочется, вместо показа диалогового окна с кнопкой ОК, убрать с помощью Javascript весь графический интерфейс от StiMvcViewer, и нарисовать предложение пользователю "Отчет очень большой, давайте построим отчет позже и пришлем Вам на электронную почту"
Аватара пользователя
Vladimir
Сообщения: 415
Зарегистрирован: 06 авг 2008, 09:48
Откуда: Earth

Re: StiMvcViewer: кастомизация обработки ошибок

Сообщение Vladimir »

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

Такая возможность есть. Для этого добавьте следующий код после объявления MVC Viewer:

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

<script type="text/jscript">
    jsMvcViewer1.showError = function (text) {
        if (text != null && text.substr(0, 6) == "Error:") {
            alert("Отчет очень большой, давайте построим отчет позже и пришлем Вам на электронную почту");
            return true;
        }

        return false;
    }
</script>
Вместо alert() можно вызвать свою Javascript функцию, которая отобразит ошибку.

Для скрытия интерфейса вьювера, можно установить стиль display="none" для главного контейнера вьювера:

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

        jsMvcViewer1.controls.viewer.style.display = "none";
Спасибо.
DmitryRu
Сообщения: 163
Зарегистрирован: 19 май 2014, 10:40

Re: StiMvcViewer: кастомизация обработки ошибок

Сообщение DmitryRu »

Спасибо, отличный совет!
Хотел бы уточнить, у меня эта функция, showError, похоже, вызывается и для штатного сценария: когда ошибки нет.
Да, для этого есть

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

 if (text != null && text.substr(0, 6) == "Error:")
но хотелось бы уточнить, это так и задумано, что она вызывается и когда ошибки нет?

Скриншот панели разработчика с остановкой в штатной ситуации прикладываю, видно, что в параметре text переданы нормальные данные
showError.png
showError.png (318.42 КБ) 2462 просмотра
Аватара пользователя
Vladimir
Сообщения: 415
Зарегистрирован: 06 авг 2008, 09:48
Откуда: Earth

Re: StiMvcViewer: кастомизация обработки ошибок

Сообщение Vladimir »

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

Да, верно - в самой функции реализована проверка на ошибку. Если сервер возвращает строку, начинающуюся на "Error:", то предполагается что произошла ошибка. Функция должна вернуть true, если произошла ошибка, и false если ошибки не было - это используется для останова дальнейшей обработки ответа от сервера в случае ошибки.

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