Кросс бенды (отчет с переменным числом столбцов)
Добавлено: 16 ноя 2010, 09:45
Всем привет.
Столкнулся с проблемой и не могу найти решение. Подскажите, в каком направлении копать.
Задачка:
1. Нужен отчет с переменным числом столбцов
2. Заголовки столбцов имеют переменную ширину (ширина хранится в базе данных для каждого столбца)
3. Если заголовок столбца не убирается по ширине внутри столбца, то его нужно переносить с автоматическим увеличением высоты столбца.
2. Высота всех столбцов в итоге должна быть равна высоте самого высокого столбца.
Так и вот, сделал такую структуру:
У Текста, Кросс заголовка и Кросс заголовка выставил свойства:
1. Может расти - Да
2. Может сжиматься - Да
Кроме того у Текста выставил свойства:
1. Переносить - Да
2. Расти в высоту - Да
У Кросс заголовка на событие повесил следующее:
У Текст на событие повесил следующее:
Вот... отчет построился, НО есть 2 момента, которые я не понимаю:
1. Все Кросс заголовки получились разной высоты - как бы их привязать к нижней границе родительского Заголовок данных? Ведь у Кросс объектов не предусмотрено свойство ? Может подскажете синтаксис, как обойти все дочерние элементы Кросс заголовка и установить у них нужную высоту.
2. Почему событие возникает аж 5 раз для каждого столбца отчета (посмотрел с помощью добавления к событию текста System.Windows.Forms.MessageBox.Show("BeforePrint");)?
Столкнулся с проблемой и не могу найти решение. Подскажите, в каком направлении копать.
Задачка:
1. Нужен отчет с переменным числом столбцов
2. Заголовки столбцов имеют переменную ширину (ширина хранится в базе данных для каждого столбца)
3. Если заголовок столбца не убирается по ширине внутри столбца, то его нужно переносить с автоматическим увеличением высоты столбца.
2. Высота всех столбцов в итоге должна быть равна высоте самого высокого столбца.
Так и вот, сделал такую структуру:
Код: Выделить всё
-------------------Заголовок данных--------------------------
+- Кросс заголовок ------------+
| +- Текст-------------------+ |
| |{ИмяСтолбца} | |
| | | |
| +--------------------------+ |
+------------------------------+
-------------------------------------------------------------
1. Может расти - Да
2. Может сжиматься - Да
Кроме того у Текста выставил свойства:
1. Переносить - Да
2. Расти в высоту - Да
У Кросс заголовка на событие повесил следующее:
Код: Выделить всё
((StiBand)sender).Width = ШиринаСтолбца;
Код: Выделить всё
((StiText)sender).Width = ШиринаСтолбца;
1. Все Кросс заголовки получились разной высоты - как бы их привязать к нижней границе родительского Заголовок данных? Ведь у Кросс объектов не предусмотрено свойство ? Может подскажете синтаксис, как обойти все дочерние элементы Кросс заголовка и установить у них нужную высоту.
2. Почему событие возникает аж 5 раз для каждого столбца отчета (посмотрел с помощью добавления к событию текста System.Windows.Forms.MessageBox.Show("BeforePrint");)?