Показать сообщение отдельно
Старый 28.12.2010, 16:26   #2  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
Форму SalesQuotation в Axapta 3 я не нашел, но на примере формы AddressCheck удалось решить задачу все же через FormNotify следующим образом:
X++:
void formNotify(FormRun formRun,FormNotify event)
{
    FormDataSource  fds;
    ZipCode zipCode;
    ;

    switch (event)
    {
        case FormNotify::Activate:
            this.activate(formRun);
            if (docu)
                docu.reSearch(formRun);
            if(formRun.name() != FormStr(AddressCheck)) // Это делается для того чтобы сработала ветка "case FormNotify::DeActivate:".
                break;
        case FormNotify::DeActivate:
            if(formRun.name() == FormStr(AddressCheck))
            {
                fds = formRun.dataSource("ZipCode");
                zipCode = fds.cursor();
                zipCode.write();
            }
            break;
        case FormNotify::Open:
            this.open(formRun);
            if (docu)
                docu.set(formRun);
            break;
        case FormNotify::Close:
            this.close(formRun);
            if (docu)
                docu.clear(formRun);
            break;
        case FormNotify::RecordChange:
            if (docu)
                docu.reSearch(formRun);
            break;
        case FormNotify::NoteClicked:
            if (docu)
                docu.note(formRun);
            break;
    }
}
P.S. метод решения не очень тривиален и "красив", но, тем не менее, позволяет решить данную задачу.
__________________
С уважением, Александр.

Последний раз редактировалось samolalex; 28.12.2010 в 16:34.