Переменная ширина колонок в отчёте в ширину

отредактировано 09:45 Раздел: FastReport 3.0
Подскажите, плз, как я могу создать отчёт с переменной шириной колонок.
В отчёте есть два дата-бэнда: нормальный(горизонтальный) и вертикальный.
На пересечении бэндов мэмо-поле с внешней переменной (используется обработсик "OnGetValue").

Первое, что пришло на ум, зделать отчёт двухпроходным, а для мэмо-поля поставить признак "Автоширина" и поставить ему обработчик "MemoX.OnAfterPrint", который запоминает в массиве ширину этого мэмо (елси оно больше того, которое там уже записано). Таким образом, за первый проход я подсчитываю максимальную ширину ячеек для каждой колонки (именно эти значения и сохраняются в массиве).
В обработчике "MemoX.OnBeforePrint" во время второго прохода - выставляю свойство "MemoX.Width := ColumnsMax[ColumnNo];" , т.е. делаю ширину, равную максимальной для данной колонки.

Однако этот метод НЕ РАБОТАЕТ!!! - Поле "MemoX.With" - не изменяется, даже если установлено свойство "Автоширина" - т.е. на экране действительно ширина подгоняется, а вот свойство "With" - остаётся неизменным!!!

Может поскажете другую идею?

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

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