Отмена формирования отчета

Обсуждение Stimulsoft Reports.NET
Ответить
Funix
Сообщения: 7
Зарегистрирован: 29 мар 2010, 04:28
Откуда: Belarus

Отмена формирования отчета

Сообщение Funix »

Добрый день.

Вопрос вроде как простой, но что-то не получается в документации найти ответ:
Каким образом можно отменить формирование отчета?

Поясню свою ситуацию.
Перед построением отчета вызывается форма запроса параметров из моей библиотеки (DLL).
Хотелось бы, чтобы при нажатии на кнопку "Отмена" на этой форме отчет, соответственно, не формировался.
В коде вызова библиотеки я после закрытия формы имею информацию какой кнопкой была закрыта форма,
остается только (при необходимости) отменить формирование отчета.
Интуитивно хочется набрать что-нибудь вроде:

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

Report.Cancel();
\\ или
Report.Exit();
но ничего похожего найти не могу.
Понимаю, что ответ где-то на поверхности, но в понедельник до обеда мозг еще не "прогрелся"... :blush:
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Отмена формирования отчета

Сообщение Aleksey »

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

Если мы правильно поняли структуру вашего приложения, то отображение отчета вызывается после закрытия формы. В данном случае, если пользователь нажал кнопку "Отмена" просто не вызывайте формирование отчета.

Спасибо.
Funix
Сообщения: 7
Зарегистрирован: 29 мар 2010, 04:28
Откуда: Belarus

Отмена формирования отчета

Сообщение Funix »

Нет, похоже вы все-таки не правильно поняли (я не достаточно понятно объяснил).
Привожу кусок кода (вызов функции-формы из моей библиотеки происходит в методе GetDatePeriod() через FNXL.RequestPeriod()):

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

using FNXLib;

namespace Reports
{
    public class Report : Stimulsoft.Report.StiReport
    {
		
		public void GetDatePeriod()
		{
			DatePeriod dpInit = new DatePeriod();
			DatePeriod dpNew = FNXL.RequestPeriod(null, dpInit);
			if (dpNew.IsInitialized)
			{
				DateBeg = dpNew.DateBegin;
				DateEnd = dpNew.DateEnd;
				StrPeriod = dpNew.ToString();
			}
			else
			{
				// Объект не инициализирован (нажата кнопка "Отмена")
				// Отчет не может быть сформирован - не заданы исходные данные
				// [Нужна команда отмены/прерывания формирования отчета]
			}
		}
		
        public Report()        {
			this.InitializeComponent();
			GetDatePeriod();
        }
А может мне стоит вызывать GetDatePeriod() по другому (из друго места)?
Подскажите, пожалуйста.
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Отмена формирования отчета

Сообщение Jan »

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

Фактически Вам нужно остановить отчет в момент создания отчета. Добавьте в словарь булеву переменную MyVar. Если необходимо присвойте ей true. После чего добавьте код в событие BeginRender отчета:

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

if (MyVar)this.IsStopped = true;
Спасибо.
Funix
Сообщения: 7
Зарегистрирован: 29 мар 2010, 04:28
Откуда: Belarus

Отмена формирования отчета

Сообщение Funix »

Вот оно - то, что "доктор прописал". Все заработало.

Большое спасибо!
Andrew
Сообщения: 586
Зарегистрирован: 09 июн 2006, 12:22

Отмена формирования отчета

Сообщение Andrew »

Всегда рады помочь!

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