Страница 1 из 1

Отлов ошибок печати отчета

Добавлено: 04 апр 2012, 04:18
mao
Здравствуйте.

Пользуюсь Stimulsoft Reports.Net 2011.3. Использую метод StiReport.Print() для печати сформированного отчета. Может случиться, что отчет не будет напечатан (принтер недоступен, или пользователь нажал Отмена). В этом случае появляется форма с сообщением об ошибке при печати отчета, однако она создается где-то внутри StiReport. Мне бы хотелось получить информацию о том, прошла ли печать успешно. Я нашел событие StiReport.Printed, однако оно вызывается как в случае успешной, так и в случае неудавшейся печати, и я не могу найти как проверить, удалась ли печать.
Есть ли какой-нибудь способ это проверить?

Спасибо.

Отлов ошибок печати отчета

Добавлено: 04 апр 2012, 06:53
mao
В итоге получилось сделать так:
Отключаем показ сообщений и включаем проброс исключений из отчета:

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

StiOptions.Engine.HideMessages = true;
StiOptions.Engine.HideExceptions = false;
В результате если в ходе печати произошла ошибка, нам выбрасывается исключение, которое уже можно нормально обработать.

Может есть еще варианты?

Отлов ошибок печати отчета

Добавлено: 06 апр 2012, 13:40
HighAley
Здравствуйте.

Обработку ошибок делает следующий код. Ваш вариант правильный.

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

public static void Show(Exception exception)
{
	if (StiExceptionProvider.CustomExceptionProvider != null)
		StiExceptionProvider.CustomExceptionProvider.Show(exception);
	else
	{
		if (!HideMessages)
		{
			using (StiExceptionForm form = new StiExceptionForm(exception))
			{
				form.ShowDialog();
			}
		}
		else
		{
			if (!HideExceptions) throw exception;
		}
	}
}
Также Вы можете ещё попробовать создать свой класс наследовав IStiCustomExceptionProvider интерфейс и присвоить его свойству StiExceptionProvider.CustomExceptionProvider.

Спасибо.