Кросс-таблицы, ширина столбцов заголовка

отредактировано 21:32 Раздел: FastReport 4.0
Подскажите, как для кросс-таблицы в скрипте можно управлять шириной колонок? Причем интересуют и заголовки и данные.
Событие OnCalcWidth отрабатывает только для столбцов с данными, при условии что AutoSize = True;
Как выставить необходимую ширину всех колонок кросс-таблицы включая колонки заголовка при AutoSize = False?

Комментарии

  • gpigpi
    отредактировано 21:32
    К сожалению, возможности управлять шириной заголовков строк в FR нет
  • отредактировано 21:32
    Спасибо за быстрый ответ.
    Если нельзя, но очень <strike>хочется</strike> надо, то подскажите, где можно наступить на грабли при таком подходе:
    У меня будет несколько кросс таблиц, у которых разный набор заголовков строк, но одинаковый набор заголовков столбцов (данных). Количество столбцов с данными определяется перед началом формирования отчета.
    При этом в отчете необходимо сохранить выравнивание столбцов с данными для всех таблиц.
    1. AutoSize := False;
    2. Определяю ширину, выделяемую на заголовки строк - она будет фиксированная для всех кросс-таблиц.
    3. В событии OnBeforePrint, исходя из общей ширины заголовка строк и количества полей для заголовка, распределяется и устанавливается ширина каждой колонки заголовка.
    Методом проб и ошибок и чтением форума выяснил, что
    - для установки ширины достаточно выставить ширину для строк
    DBCross5Row0.Width := 120;
    - Для скрытия столбца заголовка надо установить ширину в 0 и видимость в False как для Row так и для Corner
    DBCross5Corner4.Width := 0;
    DBCross5Corner4.Visible := False;
    DBCross5Row1.Width := 0;
    DBCross5Row1.Visible := False;

    4. В событии OnBeforePrint устанавливаю ширину столбцов для данных (рассчитываю исходя из количества столбцов и оставшегося места на странице).
    Насколько жизнеспособный данный подход? Вопросы с "влезанием" данных в ячейки пока опускаем.
  • gpigpi
    отредактировано 21:32
    написал:
    2. Определяю ширину, выделяемую на заголовки строк - она будет фиксированная для всех кросс-таблиц.
    Установите TfrxDBCrossView.MaxWidth, TfrxDBCrossView.MinWidth TfrxDBCrossView.AutoSize := True;
    Ширину столбцов можно задавать в OnCalcWidth
  • отредактировано 21:32
    gpi написал: »
    Установите TfrxDBCrossView.MaxWidth, TfrxDBCrossView.MinWidth TfrxDBCrossView.AutoSize := True;
    Ширину столбцов можно задавать в OnCalcWidth
    Увы, не мой случай. У меня переменное количество полей, которые формируют заголовок для строк и при этом необходимо выдержать фиксированную ширину для общего пула заголовка.

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

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