Показать сообщение отдельно
Старый 09.11.2009, 15:16   #4  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
376 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Цитата:
Сообщение от rusalaudinov Посмотреть сообщение
эм.. А что за метод такой и где его брать? на форме есть метод updateDesign, но как туда дописывать поля что-то непонял. простое

X++:
iPost1.allowEdit(true);
iPost1.enabled(true);
никакого результата не дало. АХ2009
Метод initDesign_W присутствует на gls-слое данной формы, если у вас только sys-слой, то нужно сделать примерно следующее :

В методе init формы прописать:
X++:
...
super();
 
CustInvoiceJour_ds.allowEdit(true);
Global::allowEditFieldsOnFormDS_W(CustInvoiceJour_DS, false);
CustInvoiceJour_ds.object(fieldNum(CustInvoiceJour, InvoiceAccount)).allowEdit(true);
...
Где вместо fieldNum(CustInvoiceJour, InvoiceAccount) написать свое поле.

Код метода allowEditFieldsOnFormDS_W приведен ниже (его нужно поместить в класс Global) - данный метод устававливает доступ ко всем полям датасорса.
X++:
client static public void allowEditFieldsOnFormDS_W(FormDataSource _dataSource, boolean _allowEdit)
{
    DictTable       dictTable = new DictTable(_dataSource.table());
    DictField       dictField;
    FormDataObject  dataObject;
    int         cx, idx;
    for(cx = 1; cx <= dictTable.fieldCnt(); cx ++)
    {
        dictField = dictTable.fieldObject(dictTable.fieldCnt2Id(cx));
        if(! dictField.isSystem())
        {
            for(idx = 1; idx <= dictField.arraySize(); idx++)
            {
                dataObject = _dataSource.object(fieldId2Ext(dictField.id(), idx));
                if (dataObject)
                {
                    dataObject.allowEdit(_allowEdit);
                }
            }
        }
    }
}
__________________
Sergey Nefedov
За это сообщение автора поблагодарили: rusalaudinov (1).