![]() |
#4 |
Участник
|
DialogField.fieldControl([...])
Цитата:
Сообщение от glibs
![]() Интересно стало.
Вот один из способов достижения результата. Код, правда, не дописан. Но как академический пример сойдет. X++: #Define.underline("_") #Define.fieldNameTemplate("\%1_\%2") static server void glibs(Args _args) { Dialog dialog = new Dialog(); DialogField dialogField; FormStringControl formStringControl; FieldName fieldName; Counter pos, i; ; dialogField = dialog.addField(typeid(Dimension)); fieldName = dialogField.name(); pos = strfind(fieldName, #underline, 1, 9999); if (pos) { fieldName = substr(fieldName, 1, pos - 1); } for (i = 1; i <= 3; i++) { if (i != SysDimension::Department + 1) { formStringControl = dialogField.control(strfmt(#fieldNameTemplate, fieldName, i)); formStringControl.visible(false); } } formStringControl = dialogField.control(dialogField.name()); dialog.run(); } Но это теория. Просто хотелось разобраться и узнать что-то новое. На практике лучше так не делать. Проще создать расширенный тип. Я так делаю всегда. X++: static void jobDimensionFields(Args _args) { Dialog dialog ; DialogField dialogFieldDimension; FormStringControl formStringControl ; Counter idx ; ; dialog = new Dialog() ; dialogFieldDimension = dialog.addField(typeId(Dimension)); for( idx=2; idx<=Dimensions::numOfDimensions(); idx++ ) { formStringControl = dialogFieldDimension.fieldControl(idx) ; formStringControl.visible( false ) ; } dialog.run() ; } |
|
|
За это сообщение автора поблагодарили: glibs (1). |