Страница 3 из 4

Re: Вопрос по CrossTab

Добавлено: 20 май 2013, 08:22
Anton.Shetsov
Aleksey Andreyanov писал(а):Здравствуйте.

Так вы хотите изменить ширину кросстаба, или доругих текстовых компонентов?
С кростабом всё будет нампого сложнее, так как в отрендеренном отчёте его как такового нет. Есть набор текстовых компонентов с различными значениями.

Спасибо.
изначально я хотел изменить ширину остальных элементов, но у меня в итоговом отчете несколько страниц, на каждой странице есть кросс таблица. Таким способом как вы указали измеряется ширина кросс таблицы на первой странице, и присваивается эта ширина остальным элементам во всем отчете, а не у каждой кросс таблицы вычисляется своя ширина.

и я подумал, что может быть будет проще изменять ширину кросс таблицы...

Re: Вопрос по CrossTab

Добавлено: 20 май 2013, 11:00
Aleksey
Здравствуйте,

Как вариант, можно добавить дополнительную хэштаблицу, в которой хранить ширину кросстаба на каждой странице. И в начале второго прохода присваивать текстовым компонентам данное значение.
Пример в аттаче.

Спасибо.

Re: Вопрос по CrossTab

Добавлено: 22 май 2013, 16:26
Anton.Shetsov
Aleksey писал(а):Здравствуйте,

Как вариант, можно добавить дополнительную хэштаблицу, в которой хранить ширину кросстаба на каждой странице. И в начале второго прохода присваивать текстовым компонентам данное значение.
Пример в аттаче.

Спасибо.
принцип понял, спасибо.

Теперь другая ситуация.
Данный вариант работает, когда на странице одна кросс таблица, если у меня их несколько, то ширина их будет разная и соответственно, как не крути, если сделать ширину остальных элементов равной ширине максимально широкой кросс таблицы, то ширина остальных кросс таблиц будет отлична от ширины других элементов DataBand'а...тут вот встает вопрос...как изменить ширину кросс таблиц (отдельных ее элементов) и сделать ее равной ширине других элементов DataBand'а?

ну и за одно, подскажите еще пожалуйста, как вычислить высоту кросс таблицы после рендеринга отчета? как получить координаты элемента (например значения свойства "Сверху" (Top)) после построения отчета? например у элемента Text6 из приложенного вами ранее отчета?

Re: Вопрос по CrossTab

Добавлено: 24 май 2013, 15:48
HighAley
Здравсствуйте.

Кросс-таб является сложным
Для ответа на данный вопрос нам необходимо дополнительное время.

Спасибо.

Re: Вопрос по CrossTab

Добавлено: 27 май 2013, 08:24
Anton.Shetsov
Aleksey Andreyanov писал(а):Здравсствуйте.

Кросс-таб является сложным
Для ответа на данный вопрос нам необходимо дополнительное время.

Спасибо.
а по поводу нижеследующего что можете ответить?
как получить координаты элемента (например значения свойства "Сверху" (Top)) после построения отчета? например у элемента Text6 из приложенного вами ранее отчета?

Re: Вопрос по CrossTab

Добавлено: 27 май 2013, 14:07
HighAley
Здравствувйте.
Anton.Shetsov писал(а):а по поводу нижеследующего что можете ответить?
как получить координаты элемента (например значения свойства "Сверху" (Top)) после построения отчета? например у элемента Text6 из приложенного вами ранее отчета?
Мы уже отвечали вам выше. Надо только поменять имя компонента и свойство Width на Top:
Aleksey Andreyanov писал(а):Для получения ширины надо смотреть свойство Width отрендеренного компонента.

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

this.RenderedPages.GetComponentByName("CrossTab1_LeftTitle").Width
Спасибо.

Re: Вопрос по CrossTab

Добавлено: 27 май 2013, 14:56
Anton.Shetsov
Aleksey Andreyanov писал(а):Здравствувйте.
Anton.Shetsov писал(а):а по поводу нижеследующего что можете ответить?
как получить координаты элемента (например значения свойства "Сверху" (Top)) после построения отчета? например у элемента Text6 из приложенного вами ранее отчета?
Мы уже отвечали вам выше. Надо только поменять имя компонента и свойство Width на Top:
Aleksey Andreyanov писал(а):Для получения ширины надо смотреть свойство Width отрендеренного компонента.

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

this.RenderedPages.GetComponentByName("CrossTab1_LeftTitle").Width
Спасибо.
пробовал, таким способом получаю координаты элемента до построения отчета (т.е. его координаты как в конструкторе), а мне надо положение элемента, после того, как будет построен отчет, т.е. когда кросс таб уже будет заполнен всеми данными и элемент Text6 окажется на том месте, где и будет отображен пользователю...

Re: Вопрос по CrossTab

Добавлено: 27 май 2013, 15:44
Aleksey
Здравствуйте,
пробовал, таким способом получаю координаты элемента до построения отчета (т.е. его координаты как в конструкторе), а мне надо положение элемента, после того, как будет построен отчет, т.е. когда кросс таб уже будет заполнен всеми данными и элемент Text6 окажется на том месте, где и будет отображен пользователю...
Не могли бы вы более подробно описать какой код вы используете и где?
Теперь другая ситуация.
Данный вариант работает, когда на странице одна кросс таблица, если у меня их несколько, то ширина их будет разная и соответственно, как не крути, если сделать ширину остальных элементов равной ширине максимально широкой кросс таблицы, то ширина остальных кросс таблиц будет отлична от ширины других элементов DataBand'а...тут вот встает вопрос...как изменить ширину кросс таблиц (отдельных ее элементов) и сделать ее равной ширине других элементов DataBand'а?
ну и за одно, подскажите еще пожалуйста, как вычислить высоту кросс таблицы после рендеринга отчета? как получить координаты элемента (например значения свойства "Сверху" (Top)) после построения отчета?
Сложная задача, и, вероятнее всего, для более сложной кростаблицы, невыполнимая. Кросстаблица, при отображении, состоит из множества элементов - заголовки, строки, итоги. И чтобы получить высоту, ширину или позицию необходимо учитывать все данные элементы. Поэтому, сложно что-то сказать в общем, необходимо рассматривать конкретный пример.

Спасибо.

Re: Вопрос по CrossTab

Добавлено: 28 май 2013, 08:54
Anton.Shetsov
Aleksey писал(а):Здравствуйте,
пробовал, таким способом получаю координаты элемента до построения отчета (т.е. его координаты как в конструкторе), а мне надо положение элемента, после того, как будет построен отчет, т.е. когда кросс таб уже будет заполнен всеми данными и элемент Text6 окажется на том месте, где и будет отображен пользователю...
Не могли бы вы более подробно описать какой код вы используете и где?
пример в приложении. Подскажите, что не так делаю...мне надо получить смещение Text6 относительно начала отчета после того, как в отчете будут выведены данные...
Теперь другая ситуация.
Данный вариант работает, когда на странице одна кросс таблица, если у меня их несколько, то ширина их будет разная и соответственно, как не крути, если сделать ширину остальных элементов равной ширине максимально широкой кросс таблицы, то ширина остальных кросс таблиц будет отлична от ширины других элементов DataBand'а...тут вот встает вопрос...как изменить ширину кросс таблиц (отдельных ее элементов) и сделать ее равной ширине других элементов DataBand'а?
ну и за одно, подскажите еще пожалуйста, как вычислить высоту кросс таблицы после рендеринга отчета? как получить координаты элемента (например значения свойства "Сверху" (Top)) после построения отчета?
Сложная задача, и, вероятнее всего, для более сложной кростаблицы, невыполнимая. Кросстаблица, при отображении, состоит из множества элементов - заголовки, строки, итоги. И чтобы получить высоту, ширину или позицию необходимо учитывать все данные элементы. Поэтому, сложно что-то сказать в общем, необходимо рассматривать конкретный пример.

Спасибо.
понятно

Re: Вопрос по CrossTab

Добавлено: 29 май 2013, 16:55
HighAley
Здравствуйте.

На втором проходе затираются данные полученные на первом. Данный код исправит вашу проблему:

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

if (IsFirstPass)
ht2[PageNumber] = Height;
А в текстбоксе надо использовать следующее выражение:

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

{ht2[PageNumber]}
Спасибо.