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

Доступ к отрендереным данным отчета, вызов события для обработки этих данных

Добавлено: 31 авг 2011, 11:51
asylum17
Добрый день можно ли получить доступ в отчете к отрендеренным данным.

Например есть датасет operation по которому формируются несколько страниц отчета,
на каждой странице размещается компонет типа текст, с событием нажатие,
по событию происходит вызов функции со слеюущим содержимым

main.ExecQuery(Operations.GroupCode,Operations.IDOperation,2,1,999,"",Operations.idgroup,Operations.idgood,"*"+ this.PageNumber.ToString());

где main.stisExecQuery собственная сборка

после построения отчета при просмотре, при выборе любой страницы, и при "щелчке" мыши на компоненте с событием
в Operations.* содержатся всегда последняя строка с данными из датасета
а в this.PageNumber.ToString() всегда номер страницы равен 1

как получить доступ к данным на странице, ведь в excel и др. форматы данные экспортировать можно, следовательно они где то храняться

Доступ к отрендереным данным отчета, вызов события для обработки этих данных

Добавлено: 01 сен 2011, 12:27
HighAley
Здравствуйте.

1. В сгенерированном отчёте данные о сроке не храняться. Но получить необходимую информацию можно следующим способом. В свойство Tag записать ключевое значение записи, и потом получить значение тэга.

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

(sender as StiText).TagValue
2. Номер страницы можно получить с помощью следующего кода:

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

(this.RenderedPages.IndexOf((sender as StiComponent).Page) + 1).ToString()
Смотрите свойство Tag и событие Click компонента Text4 в приложенном отчёте.

Спасибо.

Доступ к отрендереным данным отчета, вызов события для обработки этих данных

Добавлено: 02 сен 2011, 07:46
asylum17
Спасибо.

С номером страницы всё получилось, но со значением поля, типа текст, возникли проблемы,

MessageBox.Show((sender as StiText).TagValue as string );
c примером при "щелчке" мышью на полю, с вызовом события, возвращается пустое значение.
пробовал получить доступ к данным по другому, в результате получилось следующие
this.GroupHeaderBand3.Components["Text8"].Tag
для компонента, где значение подставляется из датасета, TagValue=NULL (тип компонента Object)
this.DataBand1.Components["Text16"].Tag.Value
текст 16 это просто статичный текст, в результате this.DataBand1.Components["Text16"].Tag.Value="" (тип компонента String)

то есть получить значение отрендеренных данных у меня пока не получается, скажите, что делаю не верно.


!!!! и я не совсем понимаю выражение

"В свойство Tag записать ключевое значение записи"

наверное в этом проблема

Доступ к отрендереным данным отчета, вызов события для обработки этих данных

Добавлено: 02 сен 2011, 08:10
asylum17
Всем спасибо разобрался.
Нужно делать так:
MessageBox.Show((sender as StiText).TagValue.ToString());
и я ещё пытался сразу показать несколько объектов типа
Задание {Operations.GroupCode} ПускЧасть {Operations.ThreadName}
естественно это не отработало

Что бы получить требуемое значения для построенного отчета, его нужно помещать вот сюда
Взаимодействие->Таг
либо

Intercations->Tag

тема закрыта

Доступ к отрендереным данным отчета, вызов события для обработки этих данных

Добавлено: 02 сен 2011, 09:06
Andrew
Здравствуйте.

Отлично!