Показать сообщение отдельно
Старый 03.11.2005, 00:18   #10  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от AlexT1
Спасибо, так и сделаю, правда полей там около сотни
Ну и ладно. Да простит меня господин db (как автор кода), но уж больно тривиально
X++:
// created by db
// применятся ко всем полям датасорса, кроме контейнера, в котором перечислены исключающие поля
static void dsEnableFields(FormDataSource _formDataSource, boolean _allowEdit, container _fieldListExclude=connull())
{
    FormDataObject  fdo;
    DictTable       dictTable = new DictTable(_formDataSource.table());
    DictField       dictField;
    int             fieldCount = dictTable.fieldCnt();
    int             i;
    int             j;
    FieldId         fieldId;
    boolean         allowEdit;
    for (i = 1; i <= fieldCount; i++)
    {
        dictField = new DictField(dictTable.id(), dictTable.fieldCnt2Id(i));
        for (j = 1; j <= dictField.arraySize(); j++)
        {
            fdo = _formDataSource.object(fieldId2ext(dictField.id(), j));
            allowEdit = confind(_fieldListExclude, dictField.id()) ? ! _allowEdit : _allowEdit;
            if (fdo)
                fdo.allowEdit(allowEdit);
        }
    }
}
__________________
Возможно сделать все. Вопрос времени