Показать сообщение отдельно
Старый 28.02.2014, 10:26   #3  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Предлагаю свое решение
Вот мое решение (для MS DAX 2009)

1. Ставим во всех контролах Section Body, которая у нас является строкой height = auto. DynamicHeight никому не ставим
2. У самой Section Body height также ставим auto
3. В перекрытом методе executeSection пишем такой код

X++:
public void executeSection()
{
    Integer offset = 200;     //смещение, если оно нужно

    //Например: из двух полей, у которых может быть переменная длина выбираем то, которое наибольшее

    Integer Height1 = PlanTable.height100mm(GetCrew.heightOfWordWrappedString100mm(Schedule.GetCrew()));
    Integer Height2 = PlanTable.height100mm(GetRoute.heightOfWordWrappedString100mm(Schedule.GetRoute()));
    Integer resultHeight = (Height1 > Height2? Height1 :Height2) + offset;
    Integer i = PlanTable.controlCount();

    //Перебираем контролы и меняем им высоту
    while (i)
    {
        PlanTable.controlNo(i).height100mm(resultHeight);
        i--;
    }

    super();
}
Работает как надо