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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.10.2018, 14:29   #1  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
D365 Custom datasource EventHandler on ListPage
Необходимо написать EventHandler для кастомной таблицы, которая была добавлена на ProjProjectsListPage через Query. При копировании хендлера VS ругается что такой датасорц не найден. Как решить проблему?
Старый 24.10.2018, 16:21   #2  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
673 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от syl Посмотреть сообщение
Необходимо написать EventHandler для кастомной таблицы, которая была добавлена на ProjProjectsListPage через Query. При копировании хендлера VS ругается что такой датасорц не найден. Как решить проблему?
какой именно обработчик? в смысле, для какого события?

сделай пару скриншотов, что ли: что куда добавил, модели, расширение это или перекрытие - короч, больше деталей.
__________________
Felix nihil admirari
Старый 24.10.2018, 16:26   #3  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
Сама таблица была добавлена в Query "ProjTable_NoFilter", в редакторе формы отображается в списке DataSources

Код EventHandler скопированного из редактора форм, метод OnInitialized.

X++:
[FormDataSourceEventHandler(formDataSourceStr(ProjProjectsListPage, ProjTableLink), FormDataSourceEventType::Initialized)]
    public static void ProjTableLink_OnInitialized(FormDataSource sender, FormDataSourceEventArgs e)
Ругается на "formDataSourceStr(ProjProjectsListPage, ProjTableLink)"
Старый 24.10.2018, 17:08   #4  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
673 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
а на другие таблицы из того же квери тоже ругается?

боюсь, придётся цеплятся к событию инициализации формы и там уже программно добираться до твоей новой таблицы
__________________
Felix nihil admirari
Старый 24.10.2018, 17:20   #5  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
На те таблицы что были в Query изначально не ругается. Кроме того, метод formDataSourceStr видит больше таблиц чем перечислено в дизайне формы или той же Query.

Добраться до моего датасорца из ProjProjectsListPageInteraction тоже пытался, ничего не выходит: this.listPage().formRun().dataSource(tableStr(ProjTableLink) возвращает null

не могу никак понять где ListPage ищет доступные источники, и можно ли это вообще решить в extensions
Старый 24.10.2018, 17:46   #6  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
673 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
я тебе больше скажу: я и таблицы-то такой найти не могу ProjTableLink - это что за зверь такой?
__________________
Felix nihil admirari
Старый 24.10.2018, 17:58   #7  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
673 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
да, похоже, нашли подводный камень: прицепиться нельзя. по крайней мере, привычными нам способами. ищи, стало быть, необычный. через method overloading, например.

Нажмите на изображение для увеличения
Название: custgroupadded.png
Просмотров: 221
Размер:	153.2 Кб
ID:	12120

Нажмите на изображение для увеличения
Название: formdatasourcestr.png
Просмотров: 136
Размер:	102.4 Кб
ID:	12121
__________________
Felix nihil admirari
Старый 24.10.2018, 18:00   #8  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
ProjTableLink - это кастомная таблица. Я ее добавил в Query рядом с CustGroup. То что прицепиться нельзя не самое страшное, я ее даже не могу в коде формы получить как ссылку на DataSource
Старый 24.10.2018, 18:02   #9  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
673 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
CustGroup - это я добавил таблицу для эксперимента, её в оригинальном квери нет.

поясни, что такое "я ее даже не могу в коде формы получить как ссылку на DataSource"

подсказка: посмотри, как я оформил информацию в предыдущем ответе; так сразу всем всё понятно станет
__________________
Felix nihil admirari
Старый 24.10.2018, 18:41   #10  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
X++:
public void initialized()
{
    FormDataSource ds;
    next initialized();
    ds = this.listPage().formRun().dataSource(tableStr(ProjTableLink)); //= null
}
Старый 24.10.2018, 19:51   #11  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
673 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
tableStr того же поля ягода. попробуй искать по коду таблицы, без использования подобных функций.
__________________
Felix nihil admirari
Старый 26.10.2018, 11:42   #12  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
пробовал tableNum тоже самое. Оно в списке датасорцов такой таблицы просто не видит. Список датасорцов можно в дебаггере просмотреть, он немного странный в данном случае, я не могу понять откуда там взялись некоторые таблицы
Старый 26.10.2018, 18:11   #13  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от syl Посмотреть сообщение
На те таблицы что были в Query изначально не ругается. Кроме того, метод formDataSourceStr видит больше таблиц чем перечислено в дизайне формы или той же Query.

Добраться до моего датасорца из ProjProjectsListPageInteraction тоже пытался, ничего не выходит: this.listPage().formRun().dataSource(tableStr(ProjTableLink) возвращает null

не могу никак понять где ListPage ищет доступные источники, и можно ли это вообще решить в extensions
Я бы попробывал разные варианты в ProjProjectsListPageInteraction. Выводил бы все датасоурсы чтобы убедиться что код
this.listPage().formRun().dataSource(tableStr(ProjTableLink)
рабочий и не нужно обращаться через что-то типа queryRun(),query().

Попробывал бы из run то же самое. Мало ли какое там связывание.

Ну и чуть оффтопа, как со сроками?
Старый 29.10.2018, 17:29   #14  
pepperov is offline
pepperov
Участник
 
1 / 10 (1) +
Регистрация: 23.01.2014
Try this:
X++:
[ExtensionOf(classStr(ProjProjectsListPageInteraction))]
final public class ProjProjectsListPageInteraction_Extension
{
    public void initializeQuery(Query _query)
    {
        next initializeQuery(_query);
        //your new datasource will be in _query
    }
}
I hope this will help you.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX7 D365 Перехват lookup на поле datasource Maximin DAX: Программирование 13 11.01.2018 18:19
alirazazaidi: Custom financial Dimension shows in lookup D365 for Finance and operations Blog bot DAX Blogs 0 14.09.2017 13:11
dynamicsaxinsight: AX7/D365/Operations: Create custom data entity Blog bot DAX Blogs 0 14.09.2017 13:11
sumitsaxfactor: Custom Financial Dimensions – D365 Blog bot DAX Blogs 0 10.09.2017 03:51
palleagermark: Datasource names on Data Sets used for custom lookups on Enterprise Portal Blog bot DAX Blogs 0 05.02.2010 15:05

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

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

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