Вопрос по CrossTab

Обсуждение Stimulsoft Reports.NET
Anton.Shetsov
Сообщения: 102
Зарегистрирован: 03 апр 2013, 20:20

Re: Вопрос по CrossTab

Сообщение Anton.Shetsov »

Aleksey Andreyanov писал(а):Здравствуйте.

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

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

и я подумал, что может быть будет проще изменять ширину кросс таблицы...
Aleksey
Сообщения: 2908
Зарегистрирован: 22 апр 2010, 06:57

Re: Вопрос по CrossTab

Сообщение Aleksey »

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

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

Спасибо.
Вложения
ReportCrossTabWidth2.mrt
(25.72 КБ) 295 скачиваний
Capture.PNG
Capture.PNG (56.66 КБ) 3747 просмотров
Anton.Shetsov
Сообщения: 102
Зарегистрирован: 03 апр 2013, 20:20

Re: Вопрос по CrossTab

Сообщение Anton.Shetsov »

Aleksey писал(а):Здравствуйте,

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

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

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

ну и за одно, подскажите еще пожалуйста, как вычислить высоту кросс таблицы после рендеринга отчета? как получить координаты элемента (например значения свойства "Сверху" (Top)) после построения отчета? например у элемента Text6 из приложенного вами ранее отчета?
Вложения
ReportCrossTabWidth2.mrt
(25.72 КБ) 279 скачиваний
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Вопрос по CrossTab

Сообщение HighAley »

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

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

Спасибо.
Anton.Shetsov
Сообщения: 102
Зарегистрирован: 03 апр 2013, 20:20

Re: Вопрос по CrossTab

Сообщение Anton.Shetsov »

Aleksey Andreyanov писал(а):Здравсствуйте.

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

Спасибо.
а по поводу нижеследующего что можете ответить?
как получить координаты элемента (например значения свойства "Сверху" (Top)) после построения отчета? например у элемента Text6 из приложенного вами ранее отчета?
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Вопрос по CrossTab

Сообщение HighAley »

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

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

this.RenderedPages.GetComponentByName("CrossTab1_LeftTitle").Width
Спасибо.
Anton.Shetsov
Сообщения: 102
Зарегистрирован: 03 апр 2013, 20:20

Re: Вопрос по CrossTab

Сообщение Anton.Shetsov »

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

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

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

Re: Вопрос по CrossTab

Сообщение Aleksey »

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

Спасибо.
Anton.Shetsov
Сообщения: 102
Зарегистрирован: 03 апр 2013, 20:20

Re: Вопрос по CrossTab

Сообщение Anton.Shetsov »

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

Спасибо.
понятно
Вложения
ReportCrossTabWidth2.mrt
(27.14 КБ) 319 скачиваний
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Вопрос по CrossTab

Сообщение HighAley »

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

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

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

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

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

{ht2[PageNumber]}
Спасибо.
Ответить