AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.03.2011, 18:59   #1  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от KiselevSA Посмотреть сообщение
В args.record() курсор дочерней формы (причем пустой), т.е. той формы, откуда вызван класс. Меня же интересует доступ к родительской записи.
Читайте внимательнее. Я писал про args формы, а не args класса. Т.е. дочерняя форма вызывается с аргументом содержащим ссылку на нужную вам таблицу.

Цитата:
Сообщение от KiselevSA Посмотреть сообщение
В args нет formRun.
В args eсть ссылка на вызывающий объект - args.caller(). В вашем случае в качестве вызывающего объекта выступает FormRun.

Последний раз редактировалось S.Kuskov; 31.03.2011 в 19:02.
Старый 31.03.2011, 19:50   #2  
Delfins is offline
Delfins
Участник
 
320 / 39 (2) +++
Регистрация: 20.09.2005
Адрес: Riga, Latvia
Всё правильно, я также делаю - обычно для классов типа "Proposal", у которого задача заполнить таблицу дочерними запясими.

Давно уже писал, вроде работает.
Сделано так, потому что форма может быть открыта из разных форм, и допустим, если надо знать какой нибудь "параметр", то можно сделать поиск по возможным вариантам.
Например, "Invoice" может фильтроваться и от "Дебитора/Кредитора", и также от самой "заготовки" (Sales/PurchTable).
X++:
/*
    Finds specific cursor on DS dynalinks
*/
public static Common findDynalinkTable(tableId _tableId, Common _common)
{
    FormDatasource          ds = _common.dataSource();
    QueryBuildDatasource    qbds;
    QueryBuildDynalink      qbd;
    Common                  ret;
    int                     i;
    ;

    if (ds)
    {
        qbds = ds.query().dataSourceTable(_common.tableId);
        if (qbds)
        {
            if (qbds.dynalinkCount())
            {
                for (i=1; i <= qbds.dynalinkCount(); i++)
                {
                    qbd = qbds.dynalink(i);
                    if (qbd && qbd.cursor().TableId == _tableId)
                    {
                        ret = qbd.cursor();
                        break;
                    }
                }
            }
        }
    }

    return ret;
}

Последний раз редактировалось Delfins; 31.03.2011 в 19:55.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Обновление DS формы из дочерней формы breakpoint DAX: Программирование 3 24.12.2008 15:54
Открытие формы из класса Акавешка DAX: Программирование 2 11.01.2007 13:39
Изменение свойства Table источника данных формы vasiliy DAX: Программирование 6 26.04.2005 12:16
обращение к методам датасоурса формы из класса simply DAX: Программирование 5 03.06.2004 12:02
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:41.