|
|
|
|
#1 |
|
Участник
|
Сам сейчас воспользовался советами из этой темы. Всё работает. Конкретно по этой форме ещё добавлю, что после открытия на редактирование CustInvoiceTrans, стала редактируемой складская аналитика. Т.е. нужно изменить свойство allowEdit ещё и на InventDim.
Вот что у меня получилось: X++: void initDesign_W() { custInvoiceJour_DS.allowEdit(true); allowEditFieldsOnFormDS_W(custInvoiceJour_DS, false); // -->> custInvoiceTrans_DS.allowEdit(true); allowEditFieldsOnFormDS_W(custInvoiceTrans_DS, false); InventDim_ds.allowEdit(false); // fix custInvoiceJour_DS.object(fieldNum(custInvoiceJour, newField)).allowEdit(true); // <<-- this.initDesign_LV(); this.initDesign_LT(); this.initDesign_RU(); } |
|
|
|
|
#2 |
|
Участник
|
пользуюсь таким вариантом, последний необязательный аргумент - список полей, которые нужно оставить редактируемыми.
X++: //Установить AllowEdit = _allowEdit для всех полей исключая _fieldListExclude static void setFieldsAllowEdit(FormDataSource _formDataSource, boolean _allowEdit, container _fieldListExclude = connull()) { FormDataObject fdo; FormObjectSet fos; DictTable dictTable = new DictTable(_formDataSource.table()); DictField dictField; int fieldCount = dictTable.fieldCnt(); int i; int j; FieldId fieldId; boolean allowEdit; ; fos = _formDataSource; for (i = 1; i <= fieldCount; i++) { dictField = new DictField(dictTable.id(), dictTable.fieldCnt2Id(i)); for (j = 1; j <= dictField.arraySize(); j++) { fdo = fos.object(fieldId2ext(dictField.id(), j)); allowEdit = confind(_fieldListExclude, dictField.id()) ? ! _allowEdit : _allowEdit; if (fdo) { fdo.allowEdit(allowEdit); } } } } |
|
|
|
|
|