12.12.2006, 11:24
|
#1
|
Участник
Регистрация: 28.11.2005
Адрес: Москва
|
args.dataset() и args.record().tableid - могут ли отличаться?
В методе класса InventDimCtrl_Frm_Lookup.callerFormDatasource() обнаружил странный код:X++: FormDataSource callerFormDatasource()
{
if (! fr.args())
return null;
// Don't check on 'fr.args().record()' alone
// Try test for dataset instead
if (! fr.args().dataset())
return null;
// Could be a buffer which isn't inserted yet
if (! fr.args().record().tableId)
return null;
return fr.args().record().dataSource();
} Что означают вторая и третья проверка? Из комментариев можно понять так, что для буфера (табличной переменной), который еще не вставлен в таблицу SQL, поле tableId может быть пустым, при этом args.dataset() откуда-то знает нужное значение этого поля. Это что, паранойя разработчиков, навеянная глюками в ранних версия Аксапты, или реально встречающаяся ситуация? Кто-нить с таким сталкивался?
PS. И почему вообще второй if раскрашен, как коментарий?..
|
|