Отчет переменной ширины

отредактировано 12:20 Раздел: FastReport 4.0
Дан набор данных, в котором несколько десятков полей. Необходимо реализовать отчет переменной ширины, а именно в run-time выбирать лишь часть столбцов.
Подошел к реализации так:
- чекбоксами даю пользователю отобрать нужные столбцы;
- через переменные отчета передаю флаги показать/скрыть для каждого столбца;
- в дизайнере отчета располагаю все поля датасета, причем Align у них по левому краю;
- в событии OnStartReport через переданные переменные устанавливаю Visible каждого поля;

В итоге получаю нужное: все неотмеченные столбцы становятся невидимы, а видимые - выстраиваются слева друг за другом.
Проблема в том, что холст листа остается таким же широким, как и в дизайнере (выставлено очень широко, около 3000px).
Как подстроить ширину листа run-time по правому краю последнего видимого поля. Его координату я знаю. Присвоение Page.PaperWidth в скрипте в событии OnStartReport не приводит к изменению ширины холста.

Комментарии

  • gpigpi
    отредактировано 12:20
    Попробуйте задавать ширину страницы в главной процедуре отчёта
  • отредактировано 12:20
    gpi написал: »
    Попробуйте задавать ширину страницы в главной процедуре отчёта
    Не получилось. Пробовал так:
    begin
      Page1.PaperWidth := 1000;                                                                
    end.
    
    Ширина листа так и осталась >3000
  • отредактировано 12:20
    точнее в большую сторону - увеличивается лист, а в меньшую - нет
  • gpigpi
    отредактировано 12:20
    Проверил на 4.11.13 - ширина уменьшается

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

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