однострочный Cross-tab
Как сделать кросс-таб с одной горизонтальной строкой (число столбцов неизвестно) и (внимание!!!) чтобы можно было задать фиксированную ширину колонки (или ячейки).
Сейчас делаю так (по шагам):
1. кидаю на бенд (header) объект кросс-таб (на бенд дата положить не могу - причины ниже)
2. снимаю все опции наличия заголовков, итогов, углов (справа)
3. кол-во строк, столбцов, ячеек = 1 (как варианты пробовал: кол-во строк = 0, кол-во столбцов и кол-во строк =0).
4. снимаю опцию "авторазмер"
5. 'OK'
А инспекторе объектов св-ва autosize = false, autowidth=false
При этих условиях я не могу задать фиксированную ширину ни объекта MemoView, ни объекта cross-tab. Причем ширина этих объектов устанавливается в значения 6,35 (cross-tab) и 5,29 (memoview).
Это что, глюк или ограничение? Даже старый добрый Freereport позволял реализовать такую возможность при помощи вертикального cross-бенда.
В принципе, можно было бы забить, выставить св-во autosize=true, если бы в последующем за ним бендом data не находился еще один cross-tab, колонки которого должны совпадать с cross-tab в бенде header.
А совместить оба cross-tab в бэнде data нельзя, т.к. бэнд содержит помимо cross-tab еще и обычные MemoView, которые должны отображаться для каждой записи набора данных, а выводить заголовок для каждой записи некрасиво.
Сейчас делаю так (по шагам):
1. кидаю на бенд (header) объект кросс-таб (на бенд дата положить не могу - причины ниже)
2. снимаю все опции наличия заголовков, итогов, углов (справа)
3. кол-во строк, столбцов, ячеек = 1 (как варианты пробовал: кол-во строк = 0, кол-во столбцов и кол-во строк =0).
4. снимаю опцию "авторазмер"
5. 'OK'
А инспекторе объектов св-ва autosize = false, autowidth=false
При этих условиях я не могу задать фиксированную ширину ни объекта MemoView, ни объекта cross-tab. Причем ширина этих объектов устанавливается в значения 6,35 (cross-tab) и 5,29 (memoview).
Это что, глюк или ограничение? Даже старый добрый Freereport позволял реализовать такую возможность при помощи вертикального cross-бенда.
В принципе, можно было бы забить, выставить св-во autosize=true, если бы в последующем за ним бендом data не находился еще один cross-tab, колонки которого должны совпадать с cross-tab в бенде header.
А совместить оба cross-tab в бэнде data нельзя, т.к. бэнд содержит помимо cross-tab еще и обычные MemoView, которые должны отображаться для каждой записи набора данных, а выводить заголовок для каждой записи некрасиво.
Комментарии
- отключите autosize;
- выставьте нужную ширину столбцов;
- отключите заголовок.
С отключенным заголовком изменения размеров в дизайнере работать не будет, т.к. ширена столбцов выравнивается в соответствии с шириной заголовка.
Да, работает. Спасибо. Век живи, век учись
Одно не пойму, что это сложно реализовать в компоненте? Нет заголовка - ну хрен с ним, неявно установим ширину заголовка при изменении ширины столбца. Или выдать сообщение при попытке изменения, у вас кажется есть такая возможность.
Вместо этого я бился головой несколько часов в эту дверь ...
Есть другой вариант, который мне подсказали в службе поддержки:
Обрабатывать событие OnCalcWidth и устанавливать значение Width в этом обработчике.