Показать сообщение отдельно
Старый 04.07.2007, 14:01   #3  
ymv2000 is offline
ymv2000
Участник
 
84 / 11 (0) +
Регистрация: 03.05.2006
Цитата:
Сообщение от AndyD Посмотреть сообщение
Так у вас же в k уже находится Id поля. Подставляйте его вместо fieldNum()

Кстати, правильнее было бы указать для k тип FieldId

PS Надо учитывать наличие массивов. И ошибка, скорее всего, связана с отсутствием .object() - надо проверять на NULL
X++:
DictTable dt = new DictTable(_forecastpurch.TableId);
int i;
FieldId id = 0;
FieldId extId;
DictField dictField;
;
id = dt.fieldNext(id);
while (id)
{
    if (id != fieldNum(ForecastPurch, itemId))
    {
        dictField = dt.fieldObject(id);
        for (i=1;i<=dictField.arraySize();i++)
        {
            extId = fieldid2ext(id, i);
            if (ForecastPurch_DS.object(extId))
                ForecastPurch_DS.object(extId).allowEdit(false);
        }
    }
    id = dt.fieldNext(id);
}
Спасибо за идею!
короче вот так вот заработало:
...................
..................
id = dt.fieldNext(id);
while (id)
{
if (id != fieldnum(ForecastPurch,itemId))
{
dictField = dt.fieldObject(id);
extId = fieldid2ext(id, i);
if (ForecastPurch_DS.object(extId))
{
ForecastPurch_DS.object(extId).allowEdit(false);
}
}
id = dt.fieldNext(id);
}