28.04.2016, 15:03 | #1 |
Участник
|
Ширина колонки FormTableControl
Была подобная тема 5 лет назад, а вопросы все те же.
Не пойму, что можно сделать с шириной колонки в созданном FormTableControl. Проблема 1: в зависимости от выбора пользователя, к примеру, вторая колонка FormTableControl будет показывать или StringEdit или IntEdit, у которых должна быть разная ширина (StringEdit: 100, IntEdit: 50). Однако, ширина колонки, судя по всему, определяется раз и навсегда при первоначальной инициализации FormTableControl. Проиллюстрирую на примере стандартной формы tutorial_Form_Table. На элементе EditLine установите свойство Width = 100 и перекройте метод modified: X++: public boolean modified() { boolean ret = super(); Table.update(); return ret; } Наконец, измените метод Table.editControl таким образом: X++: FormControl editControl(int column, int row) { if ((column == 2) || (column == 4)) { if (Table.cell(1,1).data() == 'AAA') return editline; else return intEdit; } else { return editline; } } Введем AAA в самое первое поле (в верхнем левом углу). Дизайн обновится (колонки №2 и 4 будут показывать StringEdit), но ширина колонок при этом осталась 50, а не стала 100. Для меня это большая проблема, так как я пытаюсь использовать FormTableControl на форме, где и количество колонок и их тип может динамически меняться, так что невозможность управлять шириной колонки, разумеется, портит всю картину. Проблема 2 сопутствующая - почему невозможно изменять ширину колонки с помощью мыши таким же образом, как в FormGridControl? Есть возможность обойти это ограничение? Подозреваю, что решение проблемы 2 автоматически решит проблему 1. |
|