28.06.2013, 14:30 | #1 |
Участник
|
Отчет с динамич высотой контролов
Может, кому сэкономит время, тк я немного "поразвлекалась" , пока нашла решение.
Задача: Есть отчет, в котором один из контролов имеет дин высоту. Отчет-сетка т.е выглядит как таблица с разными по высоте строками , высота строки определяется высотой контрола с дин высотой. Графика для отрисовки таблицы создается с помощью Box+ vertical Lines Проблема: Для того, чтобы высота строк менялась динамически, и соответствеенно изменялась высота Box, и растягивались линии, логично выставить Height=ColumnHeight у контролов. Все работает, но я так и не поняла , что определяет ColumnHeight, в результате высота строк, что бы я ни делала - выше высоты контролов с тексом приблизительно на 1.5 символа (см описание проблемы тут) . Пользователи не оч рады, тк им не понятно, почему строки в 2 раза выше, чем должны были бы по логике вещей быть("можно было бы в 2 раза больше данных на листе уместить!") Решение: (основано на замечательном предложении Dronas) 1) Ставим DynHeight на контроле, кот изменяет высоту 2) Всем shapes устанавливаем ColumnHeight 3) На секции указываем высоту 0mm 4) в executeSection пишем: MySection.height100mm(MyDynHeightControl.heightOfWordWrappedString100mm(StringValue_In_MyDynHeightControl) + 200); PS: тут я накинула к высоте 200, чтобы текст не был оч близко к границе секции. 5) У всех остальных контролов ставим Height = Auto ( + можно TopMargin = 1mm, BottomMargin=1mm,чтобы контролы не были впритык к границе секции) Итого у нас в руках замечательный инструмент: используем достоинства ColumnHeight - все контролы замечательно растягиваются и создают нужную сетку, и нивелируем недостаток - высоту секции мы контролируем сами. Ax2009 RU2 Последний раз редактировалось IKA; 28.06.2013 в 14:35. |
|
|
За это сообщение автора поблагодарили: gl00mie (3). |
|
|