Кросс-таблицы, ширина столбцов заголовка
Подскажите, как для кросс-таблицы в скрипте можно управлять шириной колонок? Причем интересуют и заголовки и данные.
Событие OnCalcWidth отрабатывает только для столбцов с данными, при условии что AutoSize = True;
Как выставить необходимую ширину всех колонок кросс-таблицы включая колонки заголовка при AutoSize = False?
Событие OnCalcWidth отрабатывает только для столбцов с данными, при условии что AutoSize = True;
Как выставить необходимую ширину всех колонок кросс-таблицы включая колонки заголовка при AutoSize = False?
Комментарии
Если нельзя, но очень <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 устанавливаю ширину столбцов для данных (рассчитываю исходя из количества столбцов и оставшегося места на странице).
Насколько жизнеспособный данный подход? Вопросы с "влезанием" данных в ячейки пока опускаем.
Ширину столбцов можно задавать в OnCalcWidth