Показать сообщение отдельно
Старый 28.09.2010, 16:12   #1  
kornix is offline
kornix
MCP
MCBMSS
Злыдни
Ex AND Project
 
414 / 146 (5) +++++
Регистрация: 24.02.2009
Адрес: Санкт-Петербург
Стал перекрывать лукап программно, либо я что-то не так делаю, либо в аксапте не предусмотрено перекрытие лукапа для контролов типа Guid. Открыл класс SysTableLookup, метод performFormLookup():
X++:
void performFormLookup()
{
    FormStringControl   callingStringControl;
    FormIntControl      callingIntControl;
    FormInt64Control    callingInt64Control;
    FormDateControl     callingDateControl;
    FormGuidControl     callingGuidControl; // добавил новый вид контрола, его почему-то не было
    if (!callingControl)
        throw(error(Error::wrongUseOfFunction(funcname())));

    switch (callingControl.handle())
    {
        case classnum(FormStringControl):
            callingStringControl = callingControl;
            callingStringControl.performFormLookup(this.formRun());
            break;
        case classnum(FormIntControl):
            callingIntControl = callingControl;
            callingIntControl.performFormLookup(this.formRun());
            break;
        case classnum(FormInt64Control):
            callingInt64Control = callingControl;
            callingInt64Control.performFormLookup(this.formRun());
            break;
        case classnum(FormDateControl):
            callingDateControl = callingControl;
            callingDateControl.performFormLookup(this.formRun());
            break;
        // без этого изменения лукап не работает (перекрытый) -->
        case classnum(FormGuidControl):
            callingGuidControl = callingControl;
            callingGuidControl.performFormLookup(this.formRun());
            break;
        // без этого изменения лукап не работает (перекрытый) <--
    }
}
Теперь не могу сообразить, как же работает стандартный лукап по EDT с типом Guid, и почему под это не приспособлен такой вариант лукапа?