Вопрос по CrossTab

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

Re: Вопрос по CrossTab

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

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

Пришлите, пожалуйста ваш шаблон отчёта с тестовыми данными для анализа.

Спасибо.
mdc файл?

желательно бы чтобы, ширина всех элементов была одинакова, т.е. либо ширина кросс таблицы была равна ширине остальных полей, либо ширина остальных полей была равна шире кросс таблицы...
Вложения
Report.mdc
(35.81 КБ) 348 скачиваний
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Вопрос по CrossTab

Сообщение HighAley »

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

Вы прислали файл готового отчёта, а на необходимо увидеть шаблон отчёта с тестовыми данными.

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

Re: Вопрос по CrossTab

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

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

Вы прислали файл готового отчёта, а на необходимо увидеть шаблон отчёта с тестовыми данными.

Спасибо.
я могу прислать только шаблон, данные у меня выбираются из базы данных.
Вложения
Копия ReportDispPMT.mrt
(26.56 КБ) 338 скачиваний
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Вопрос по CrossTab

Сообщение Aleksey »

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

В данном случае, ширину можно расчитать только по отрендеренным заголовкам кросстаба. Для этого для отчета выставляем свойство NumberOfPass в DoublePass и в событии EndRender отчета используем следующий код:

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

MaxWidth = this.RenderedPages.GetComponentByName("CrossTab1_LeftTitle").Width + this.RenderedPages.GetComponentByName("CrossTab1_RightTitle").Width ;

if (IsFirstPass)
{
   Text4.Width = MaxWidth;
   Text5.Width = MaxWidth;
   Text6.Width = MaxWidth;
   Text7.Width = MaxWidth;
}
Пожалуйста, посмотрите пример в аттаче. Так как вы не прислали тестовые данные, то в примере используются наши демонстрационные данные.

Спасибо.
Вложения
ReportCrossTabWidth.mrt
(25.62 КБ) 330 скачиваний
Anton.Shetsov
Сообщения: 102
Зарегистрирован: 03 апр 2013, 20:20

Re: Вопрос по CrossTab

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

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

В данном случае, ширину можно расчитать только по отрендеренным заголовкам кросстаба. Для этого для отчета выставляем свойство NumberOfPass в DoublePass и в событии EndRender отчета используем следующий код:

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

MaxWidth = this.RenderedPages.GetComponentByName("CrossTab1_LeftTitle").Width + this.RenderedPages.GetComponentByName("CrossTab1_RightTitle").Width ;

if (IsFirstPass)
{
   Text4.Width = MaxWidth;
   Text5.Width = MaxWidth;
   Text6.Width = MaxWidth;
   Text7.Width = MaxWidth;
}
Пожалуйста, посмотрите пример в аттаче. Так как вы не прислали тестовые данные, то в примере используются наши демонстрационные данные.

Спасибо.
спасибо ознакомлюсь...
я думаю что еще один способ это проставить фиксированную ширину для ячеек кросс таба и установить свойство переноса текста, на случай если текст в ячейке не уберется в одной строке...что думаете про такой вариант?
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Вопрос по CrossTab

Сообщение Aleksey »

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

Второй вариант, по идее, тоже можно использовать, но могут быть проблемы при переносах в отображении, при сложном по строению кросстабе.

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

Re: Вопрос по CrossTab

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

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

Второй вариант, по идее, тоже можно использовать, но могут быть проблемы при переносах в отображении, при сложном по строению кросстабе.

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

и как, например, программно изменить ширину одной колонки кросс таблицы? какую функцию для этого надо применить?
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Вопрос по CrossTab

Сообщение HighAley »

Здравствуйте.
Anton.Shetsov писал(а):в том, отчете, что вы приложили всего одна страница после построения отчета, а у меня их несколько...можно в этом случае выбрать ширину то максимальной кросс таблицы? если да, то как?

и как, например, программно изменить ширину одной колонки кросс таблицы? какую функцию для этого надо применить?
Для получения ширины надо смотреть свойство Width отрендеренного компонента.

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

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

Re: Вопрос по CrossTab

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

Aleksey Andreyanov писал(а):Здравствуйте.
Anton.Shetsov писал(а):в том, отчете, что вы приложили всего одна страница после построения отчета, а у меня их несколько...можно в этом случае выбрать ширину то максимальной кросс таблицы? если да, то как?

и как, например, программно изменить ширину одной колонки кросс таблицы? какую функцию для этого надо применить?
Для получения ширины надо смотреть свойство Width отрендеренного компонента.

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

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

Re: Вопрос по CrossTab

Сообщение HighAley »

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

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

Спасибо.
Ответить