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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.04.2010, 15:36   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от AlexeyVS Посмотреть сообщение
Мне как раз и нежелательно его вызывать, т.к. подчиненный датасорс перечитается и курсор перепрыгнет на первую строку подчиненного грида. А у меня позиция уже выставлена в методе findRecord в подчиненного дс.
позиция чего?
у вас одна и та же подчиненная запись может быть подчинена двум разным основным записям?

form1
====
main1
main2
...

form2
====
sub1,main1
sub2,main1
sub3,main2
sub4,main2
sub5,main2
...

итак, вы:
1. открыли форму1, ядро установило курсор на main1
2. открыли форму2 из формы1, ядро связало из dynalink'ом. В форме2 показаны две записи sub1, sub2
3. вы передвигаете курсор в форме1 на main2. ядро вызывает метод activeLink в форме2, чтобы покзать 3 (три) совсем другие (!!!) записи sub3, sub4, sub5.

Какая позиция? Какой findRecord? О чем вы говорите?
__________________
полезное на axForum, github, vk, coub.
Старый 14.04.2010, 15:44   #2  
AlexeyVS is offline
AlexeyVS
Участник
 
103 / 31 (2) +++
Регистрация: 02.04.2010
Немного не так...
Я получаю оповещение от некого объекта, в данном случае это Task. Из формы оповещений я хочу перейти к источнику оповещения. Для этого я должен сначала выставить позицию в главном дс, затем в подчиненном. Это все на одной форме в двух гридах.
Старый 14.04.2010, 15:49   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от AlexeyVS Посмотреть сообщение
я должен сначала выставить позицию в главном дс, затем в подчиненном.
Делайте это из одного и тогого же места, сразуже как только распознали, что форма открывается для просмотра конкретной задачи. Зачем вам перекрывать linkActive?
Старый 14.04.2010, 16:06   #4  
AlexeyVS is offline
AlexeyVS
Участник
 
103 / 31 (2) +++
Регистрация: 02.04.2010
Я как раз выставляю его в одном месте, в методе findRecord подчиненного дс, но после вызывается его же метод linkActive и сбрасывает выставленую позицию. Я и подумал, что можно запретить вызов, чтобы этого не происходило.
Старый 14.04.2010, 16:12   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от AlexeyVS Посмотреть сообщение
Я как раз выставляю его в одном месте, в методе findRecord подчиненного дс
а почему вы решили использовать метод подчинённого дс?
Старый 14.04.2010, 16:19   #6  
AlexeyVS is offline
AlexeyVS
Участник
 
103 / 31 (2) +++
Регистрация: 02.04.2010
Потому что туда в качестве параметра приходит как раз ссылка на контекст оповещения
public boolean findRecord(Common _record)
вот как раз _record это и есть моя задача, на которую мне надо встать.
Потом делаю так:
X++:
 select firstonly taskTable where taskTable.RecId == _record.RecId;
    select firstonly docTable where docTable.DocumentId == taskTable.DocumentId;

    Document_ds.findRecord(docTable);
    Task_ds.research();

    ret = super(_record);
Старый 14.04.2010, 17:04   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от AlexeyVS Посмотреть сообщение
Потому что туда в качестве параметра приходит как раз ссылка на контекст оповещения
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Я так понимаю, это продолжение темы Контекст оповещения Workflow
Ага. Значит вы зажаты контекстом класса EventContextInformation. У меня возник альтернативный вариант выхода из этого "порочного круга". Что если добавить на форму ещё один отдельный (не связанный ни с какимими другими) вспомогательный DataSource по подчинённой таблице. И натравить EventContextInformation именно на него. Тогда управление прийдёт именно в его findRecord, из которого можно будет свободно (не перекрывая linkActive) управлять связкой двух других "настоящих" дс.

P.S.: Гипотеза чисто теоретическая, т.к. сам с оповещениями никогда не работал
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Возможно ли изменить Fields в датасорсе на форме? andriy_s DAX: Функционал 2 26.03.2010 14:04
Запретить редактирование поля в датасорсе Eldar9x DAX: Программирование 3 10.07.2008 12:04
При повторном вызове linkActive проваливается в validateWrite(Строки общего журнала ГК) Lemming DAX: Программирование 6 25.10.2007 13:50
Слетают методы на полях в датасорсе... как бороться? soin DAX: Программирование 6 17.01.2005 15:53
Перекрытие метод new у формы Хилари DAX: Программирование 8 27.04.2004 13:48

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

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

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