однострочный Cross-tab

отредактировано April 2010 Раздел: FastReport 4.0
Как сделать кросс-таб с одной горизонтальной строкой (число столбцов неизвестно) и (внимание!!!) чтобы можно было задать фиксированную ширину колонки (или ячейки).

Сейчас делаю так (по шагам):

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, которые должны отображаться для каждой записи набора данных, а выводить заголовок для каждой записи некрасиво.

Комментарии

  • отредактировано 18:28
    - Включите заголовок;
    - отключите autosize;
    - выставьте нужную ширину столбцов;
    - отключите заголовок.

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

  • отредактировано April 2010
    написал: »
    - Включите заголовок;
    - отключите autosize;
    - выставьте нужную ширину столбцов;
    - отключите заголовок.

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

    Да, работает. Спасибо. Век живи, век учись :)
    Одно не пойму, что это сложно реализовать в компоненте? Нет заголовка - ну хрен с ним, неявно установим ширину заголовка при изменении ширины столбца. Или выдать сообщение при попытке изменения, у вас кажется есть такая возможность.

    Вместо этого я бился головой несколько часов в эту дверь ...
  • HunterNSHunterNS Таганрог
    отредактировано 18:28
    Спасибо Вам, -=Den=-. Я полдня бился с этой проблемой. :)
  • gpigpi
    отредактировано 18:28
    А если просто задать MaxWidth=MinWidth = нужное значение ширины?
  • HunterNSHunterNS Таганрог
    отредактировано April 2011
    gpi написал: »
    А если просто задать MaxWidth=MinWidth = нужное значение ширины?
    Нельзя, например, потому что в MaxWidth и MinWidth можно записать только целочисленные значения.

    Есть другой вариант, который мне подсказали в службе поддержки:
    Обрабатывать событие OnCalcWidth и устанавливать значение Width в этом обработчике.
  • gpigpi
    отредактировано 18:28
    написал:
    Нельзя, например, потому что в MaxWidth и MinWidth можно записать только целочисленные значения
    Для MaxWidth, MinWidth значения задаются в пикселах
  • HunterNSHunterNS Таганрог
    отредактировано 18:28
    Тогда возникает другая проблема: Заголовки строк становятся такими же как и все столбцы таблицы. В моём варианте ширина столбцов очень маленькая, поэтому заголовки строк просто не влезают.
  • gpigpi
    отредактировано 18:28
    Тогда используйте OnCalcWidth, как и посоветовали в техподдержке

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.