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

Re: Вопрос по CrossTab

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

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

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

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

Re: Вопрос по CrossTab

Добавлено: 13 май 2013, 11:59
HighAley
Здравствуйте.

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

Спасибо.

Re: Вопрос по CrossTab

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

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

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

Re: Вопрос по CrossTab

Добавлено: 15 май 2013, 10:32
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;
}
Пожалуйста, посмотрите пример в аттаче. Так как вы не прислали тестовые данные, то в примере используются наши демонстрационные данные.

Спасибо.

Re: Вопрос по CrossTab

Добавлено: 15 май 2013, 14:14
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;
}
Пожалуйста, посмотрите пример в аттаче. Так как вы не прислали тестовые данные, то в примере используются наши демонстрационные данные.

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

Re: Вопрос по CrossTab

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

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

Спасибо.

Re: Вопрос по CrossTab

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

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

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

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

Re: Вопрос по CrossTab

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

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

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

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

Re: Вопрос по CrossTab

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

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

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

this.RenderedPages.GetComponentByName("CrossTab1_LeftTitle").Width
Спасибо.
как смотреть ширину отрендеренного компонента кросс таба я понял, а как ее установить в зависимости от моих расчетов?
таким образом как вы говорите, определяется ширина только кросс таба на первой странице, а остальные?

Re: Вопрос по CrossTab

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

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

Спасибо.