растягивание строк в высоту в Cross-report

mchmch Киров
отредактировано 11:23 Раздел: FastReport 4.0
Строю сводную таблицу. AutoSize отключен.
Если ставить "Stretch" или "Stretch To Max Height" в "Rows", то строка растягивается (когда содержимое не входит в отведенную ширину), но при этом не зависимо от состояния параметра Shift "наезжает" на следующую строку. Также не "растягиваются" строки "Sum" (по которым идет агрегация), хотя установлена опция "Stretch To Max Height".
Вопрос в том, как сделать, чтобы строки "растягивались" и следующие за ними смещались, и одновременно "растягивались" строки с цифрами (sum).
Также параметр width у "Rows" нельзя сделать больше, чем "5,29", почему (или как увеличить ширину)?

Комментарии

  • gpigpi
    отредактировано 11:23
    Какие причины вынудили отключить AutoSize?
  • mchmch Киров
    отредактировано August 2007
    Нужно уместить на гориз. А4 определенное количество столбцов с достаточно длинными заголовками, авто-размер не дает нужного результата. Другими словами, AutoSize не так переносит слова в заголовках, как можно бы. Или, может, "я не умею его готовить"? )
  • gpigpi
    отредактировано 11:23
    procedure Cross1OnCalcWidth(ColumnIndex: Integer; ColumnValues: Variant; var Width: Extended);
    begin
         if ColumnIndex=0 then Width:=30;   
    \\  и т.д.                                                                
    end;
    
    AutoSize=True, высота будет рассчитана автоматически
  • mchmch Киров
    отредактировано 11:23
    спасибо, будем пробовать
  • mchmch Киров
    отредактировано 11:23
    попробовали :)
    результат почти тот что нужно - ширина столбцов (Column) регулируется, всё замечательно. Но так и не регулируется ширина/высота элементов Corner (пробовали в разных обработчиках - видимо изменения просто игнорируются) и, самое главное, не растягивается автоматически высота заголовков колонок, т.е. она остается такой же, как и в дизайнере. (AutoSize = True) Попытка изменить высоту в OnCalc привела к изменению высоты первой строки с данными, но не заголовков колонок.
    Может есть ещё какие-нибудь варианты ресайзинга элементов кросс-таба?
    В принципе, хватило бы нормального растягивания строк при AutoSize=False.
  • gpigpi
    отредактировано 11:23
    Похоже на баг
    Вот модифицированный отчёт из демо
    Если установить MaxWidth=200, то высота шапки значительно уменьшится. Такое впечатление, что при расчёте высоты ячейки шапки используется значение MaxWidth
  • mchmch Киров
    отредактировано 11:23
    gpi написал: »
    Если установить MaxWidth=200, то высота шапки значительно уменьшится.
    Спасибо за совет. Попробовал - получился интересный результат. Уменьшая MaxWidth я получил увеличение шапки, но это мне ничего не дало, т.к. вся таблица сильно "вытянулась" - некрасивл. Зато увеличивая, я смог увеличить ширину первого столбца с наименованиями - это здорово. Осталось только найти как увеличить высоту заголовков строк и всё будет отлично. Может есть ещё идеи?
  • gpigpi
    отредактировано 11:23
    А тестовый проект на Delphi, демонстрирующий проблему, можете сделать? Желательно с использованием ADO или BDE
  • mchmch Киров
    отредактировано 11:23
    вот кросс-таб и отображение отчета
  • gpigpi
    отредактировано 11:23
    Попробуйте убрать текст из мемо, в котором вертикально отображается "др". Скорее, всего конфликт при вычислении высоты строки с вертикальным текстом
Дискуссия закрыта.