|
20.12.2002, 15:58 | #1 |
Участник
|
А именно, можно сделать так:
Dialog dialog = new Dialog(); DialogField dfdim; FormRun form; FormDesign design; FormControl control; ; dfdim = dialog.addField(TypeId(Dimension)); dialog.doInit(); form = dialog.formRun(); design = form.design(); control = design.controlName('Fld1_6'); // 1 - номер поля 6 - индекс control.enabled(false); dialog.run(); Интересно, а можно добавить в диалог тоько одну аналитику? Чтобы узнать ID индексного поля есть fieldId2Ext. Для EDT я такой функции не нашел :-( |
|
11.10.2007, 16:32 | #2 |
Участник
|
|
|
11.10.2007, 17:46 | #3 |
Участник
|
Создаете свой EDT, наследуете его от SysDim. В нем создаете relation на таблицу Dimensionsс двумя значениями:
EDT_Name == Dimensions.Num <номер аналитики> == Dimensions.DimensionCode Например, для выбора Отдела создаете EDT MyDimensionDepartment с realtion: MyDimensionDepartment == Dimensions.Num 0 == Dimensions.DimensionCode Потом просто используете этот EDT при создании диалога: X++: dialogField = dialog.addField(TypeId(MyDimensionDepartment)); |
|
|
За это сообщение автора поблагодарили: Gustav (5). |
12.10.2007, 12:38 | #4 |
Участник
|
Цитата:
Частично проблема решается созданием ArrayElements с нужными relations. НО в начале списка всегда будет первая аналитика (Отдел), какое значение Dimensions.DimensionCode ни задавай для самого EDT - такое ощущение, что значение всегда = 0. |
|