Показать сообщение отдельно
Старый 01.12.2008, 09:57   #11  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
;) DAX 4.0 - реализация примера одной строкой
Цитата:
Сообщение от mazzy Посмотреть сообщение
Вместо такой тягомотной конструкции лучше писать
X++:
SysQuery::findOrCreateRange(this.query().dataSourceTable(tablenum(InventLocation)),fieldNum(InventLocation, InventLocationId));
Для DAX 4.0 используя Global::findOrCreateRange_W можно пойти еще дальше в направлении компактного написания кода и тогда
X++:
qbr = this.query().dataSourceNo(1).findRange(fieldNum(InventLocation, InventLocationId));

    if (! qbr )
        qbr = this.query().dataSourceNo(1).addRange(fieldNum(InventLocation, InventLocationId));
    qbr.value(queryValue("ля-ля-ля"));

    //qbr.status(RangeStatus::Locked);

будет выгдядеть как:
X++:
...
findOrCreateRange_W( this.query().dataSourceTable(tablenum(InventLocation)),
                     fieldNum(InventLocation, InventLocationId),
                     queryValue("ля-ля-ля") ).status(RangeStatus::Locked);
...