Интерактивный отчет

Обсуждение Stimulsoft Reports.NET
Ответить
Edvard
Сообщения: 40
Зарегистрирован: 02 дек 2008, 21:34
Откуда: Minsk

Интерактивный отчет

Сообщение Edvard »

Добрый день.

Возникла такая заявка от пользователя. Не пойму, как ее реализовать и вообще возможно ли это?

Имеется репорт который формируется на основе Dataset. Юзер, непосредственно в отчете, хочет помечать некоторые записи, посредством чекбокса или как-нибудь еще. После этого нажимается кнопка Ok или Close, по которой отчет будет закрыт. После закрытия или перед закрытием, я в программме должен получить информацию о том, что юзер пометил в отчете. Т.е. иметь возможность идентифицировать помеченые юзером записи в Dataset-е.

Может быть есть пример подобной функциональности?

Использую версию Stimulsoft Reports 2008.1.
Ivan
Сообщения: 641
Зарегистрирован: 10 авг 2006, 05:40
Откуда: Stimulsoft Office

Интерактивный отчет

Сообщение Ivan »

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

Вариант решения задачи:
- на датабэнде располагаете checkbox, у него устанавливаете свойство Editable=true.
- показываем вьювер как диалоговую форму с помощью метода report.Show(true); это надо для того, чтобы дождаться закрытия вьювера.
- во вьювере пользователь нажимает кнопку "Editor" и отмечает нужные чекбоксы.
- после закрытия вьювера сохраняем состояния редактируемых элементов командой report.SaveEditableFields();

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

            report.Show(true);
            report.SaveEditableFields("d:\\result_editable_fields.xml");
Спасибо.
Edvard
Сообщения: 40
Зарегистрирован: 02 дек 2008, 21:34
Откуда: Minsk

Интерактивный отчет

Сообщение Edvard »

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

Попробовал сделать, так как Вы указали. Не получилось.
Чекбокс не отображается и не редактируется ни в режиме Preview, ни в режиме редактирования репорта.
В чем может быть причина?

Используется версию Stimulsoft Reports 2008.1.
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Интерактивный отчет

Сообщение Jan »

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

> Чекбокс не отображается и не редактируется ни в режиме Preview, ни в режиме редактирования репорта.

Чтобы инициализировать состояние флажка можно воспользоваться свойством Checked. Напишите в этом свойстве {true}, это установит значение по умолчанию. Далее нужно установить свойство Editable этого компонента в true. В Preview отчета, чтобы инициализировать редактирование нужно нажать на инструмент Edit Tool и только после этого флажки будут изменяться. К сожалению, метод SaveEditableFields не доступен в релизе 2008.1, но можно использовать небольшой код для поиска компонентов флажков в отчете и чтения их состояния:

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

foreach (StiPage page in report.RenderedPages)
				{					
					Hashtable pos = new Hashtable();
					StiComponentsCollection comps = page.GetComponents();
					foreach (StiComponent comp in comps)
					{
						IStiEditable editable = comp as IStiEditable;
						if (editable != null && editable.Editable)
						{
}
}
Спасибо.
Ответить