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