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

Получить значение их Текст2.Text

Добавлено: 01 ноя 2011, 11:46
tat-besidovska
Добрый день. Вопрос такой. Не могу достучаться до свойства Text контрола Текст. После того как отчет сформирован, надо получить значение из Текст2.Text, но ничего не получается, возвращается null. Подскажите, как быть?

Получить значение их Текст2.Text

Добавлено: 01 ноя 2011, 17:14
Jan
Здравствуйте,

В каком месте Вы пытаетесь достучаться до этого свойства?

Спасибо.

Получить значение их Текст2.Text

Добавлено: 02 ноя 2011, 04:36
Ivan
Здравствуйте.

Во время построения отчета существует два экземпляра компонента (минимум два). Первый экземпляр - компонент в шаблоне. Второй экземпляр - компонент, созданный в построенном отчете. Во время создания второго экземпляра объекта движок генератора отчетов вычисляет выражение и записывает его значение во второй экземпляр.

Команда report.GetComponentByName() возвращает компонент из шаблона (первый экземпляр). Чтобы получить второй экземпляр, надо использовать команду:

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

     yourReport.RenderedPages.GetComponentByName("nameOfYourComponent");
Еще один нюанс: если компонент лежит на бэнде, то в построенном отчете будет столько экземпляров этого компонента, сколько раз выводился бэнд. И все эти компоненты будут иметь одно и то же имя. Поэтому команда вернет только первый из этих компонентов. Чтобы получить значения всех компонентов, можно использовать следующий код:

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

            foreach (StiPage page in yourReport.RenderedPages)
            {
                foreach (StiComponent comp in page.Components)
                {
                    if (comp.Name == "nameOfYourComponent")
                    {
                        string text = (comp as StiText).Text;
                        //теперь делать что-нибудь с этим значением
                    }
                }
            }
Спасибо.