Показать сообщение отдельно
Старый 11.07.2007, 15:23   #23  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Вообще варианта 2, но попробую показать на одном из них. (картинки с обоими вариантами prompt в классах RunBase неоднократно пробегали на форуме и даже есть в директории аксапты)

X++:
    // Move prompt to client when running on server and the class is swappable
    if (isRunningOnServer() && this.canSwapBetweenCS() && this.canSwapBetweenCSPrim())
    {
        [clientPrompt,clientPacked] = runbase::promptOnClient(classidget(this),this.promptPack());
        this.promptUnpack(clientPacked,clientPrompt);
        return clientPrompt;
    }
Вот собственно этот код есть в методе promptPrim класса RunBase
Как видим, вызываются последовательно promptPack и promptUnpack, которые в свою очередь вызывают pack и unpack класса.

То есть, когда класс исполняется на сервере, параметры в диалог попадают через те же методы, что и обычно. Но, соответственно, для того, чтобы они вернулись из диалога, они должны сохраняться в методе pack()