|
![]() |
#1 |
Участник
|
Не, отказываться от AutoDataGroup == Yes из-за такой мелочи не стоит - уж слишком полезное это свойство
![]() Цитата:
![]() Последний раз редактировалось gl00mie; 26.10.2009 в 19:05. |
|
![]() |
#2 |
Участник
|
оч удобно, но порождает ошибку run-time..
Цитата:
Сообщение от gl00mie
![]() В данном конкретном случае можно в методе обратного вызова у FormRealControl проверять свойства dataSource() и dataField(): первое должно совпадать с MyTable_DS.id() (к которому относится поле), а второе - с extendedFieldId поля в таблице, т.е., например, с fieldId2Ext( fieldnum(MyTable, MyRealField), 1 ). Если совпали, значит, итератор передал контрол, связанный с нужным полем, и надо выставить у него свойство NoOfDecimals..
![]() Последний раз редактировалось decoder; 27.10.2009 в 12:54. |
|
![]() |
#3 |
Боец
|
Какую именно ошибку? Я привел "сырой" код, ест-но нужно оформить немножко.
Пример для формы tutorial_Form_Controls: X++: public void init() { super(); element.setPrecision(); } X++: void setPrecision() { FormRealControl formRealControl; ; formRealControl = element.control(control::RealEdit); if (formRealControl) { formRealControl.NoOfDecimals(16); } } |
|
![]() |
#4 |
Участник
|
|
|
![]() |
#5 |
Участник
|
где-нить после super() в init() формы пишем примерно следующее:
X++: DEV_iterateThroughFormControls( element.design(), element, @"setFieldPrecision", DEV_FormHelpers::addRealCtrlId2Set() ); X++: public void setFieldPrecision(FormRealControl _formControl) { // проверяем, связан ли контрол с нужным полем datasource'а на форме if ( _formControl.dataSource() == MyTable_DS.id() && _formControl.dataField() == fieldId2Ext( fieldnum(MyTable, MyRealField), 1 ) ) { _formControl.noOfDecimals( 11, AutoMode::Fixed ); } } |
|
|
За это сообщение автора поблагодарили: decoder (1). |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|