Может, кому сэкономит время, тк я немного "поразвлекалась" , пока нашла решение.
Задача:
Есть отчет, в котором один из контролов имеет дин высоту. Отчет-сетка т.е выглядит как таблица с разными по высоте строками , высота строки определяется высотой контрола с дин высотой. Графика для отрисовки таблицы создается с помощью 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