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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.03.2010, 02:03   #1  
erudit is offline
erudit
Участник
 
36 / 52 (2) ++++
Регистрация: 19.03.2003
Адрес: Украина
Доступ к полю Map'a
Всем AX-привет,

Столкнулся с элементарной проблемкой, но что-то не разберусь.

Есть Map - TestMap
У него есть поле Field1.
У этого TestMap есть таблица TestTable, с которой связано поле Field1 = FieldX, НО в этой таблице поля с именем Field1 - нет.
У TestMap есть метод - testMethod().

Моя задача - внутри метода testMethod() обратиться с полю мэпа Field1.
Пытаюсь через this.Field1 - в run-time вылетает, т.к. пытается найти такое поле у таблицы TestTable, а там его нет.

Вопрос знатокам - как обратиться к полю Map'a из метода самого Map'a?

Заранее спасибо.
Старый 12.03.2010, 07:19   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,319 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от erudit Посмотреть сообщение
Всем AX-привет,

Столкнулся с элементарной проблемкой, но что-то не разберусь.

Есть Map - TestMap
У него есть поле Field1.
У этого TestMap есть таблица TestTable, с которой связано поле Field1 = FieldX, НО в этой таблице поля с именем Field1 - нет.
У TestMap есть метод - testMethod().

Моя задача - внутри метода testMethod() обратиться с полю мэпа Field1.
Пытаюсь через this.Field1 - в run-time вылетает, т.к. пытается найти такое поле у таблицы TestTable, а там его нет.

Вопрос знатокам - как обратиться к полю Map'a из метода самого Map'a?

Заранее спасибо.
Если вылетает - то гарантированно нет связки. Либо это поле в исходной таблице отключено конфиг ключом. Либо буфер,который Вы передаете не TestTable
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: erudit (1).
Старый 12.03.2010, 08:18   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Вы всё правильно делаете. Для наглядности прикрепляю проект, в котором это работает. В общем, берите бубен и в пляс.
Вложения
Тип файла: xpo SharedProject_TestProject.xpo (2.8 Кб, 262 просмотров)
За это сообщение автора поблагодарили: erudit (1).
Старый 12.03.2010, 12:44   #4  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от erudit Посмотреть сообщение
Есть Map - TestMap, У него есть поле Field1. У TestMap есть метод - testMethod(). Моя задача - внутри метода testMethod() обратиться с полю мэпа Field1. Пытаюсь через this.Field1 - в run-time вылетает, т.к. пытается найти такое поле у таблицы TestTable, а там его нет.
А что именно пишется в ошибке? Тут могут быть два варианта:
  1. Map "покривел", при этом ошибка звучит вроде "поле с идентификатором 0 не найдено в такой-то таблице". Это лечится, порой, лишь выгрузкой Map'а в XPO, его удалением из AOT и загрузкой обратно.
  2. Ошибка на самом деле возникает не при обращении к полю, а при попытке вызова метода map'а на табличном буфере, что связано с нарушением синтаксиса такого вызова. Надеюсь, это не ваш вариант.
За это сообщение автора поблагодарили: erudit (1).
Старый 12.03.2010, 12:50   #5  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от erudit Посмотреть сообщение
Всем AX-привет,

Столкнулся с элементарной проблемкой, но что-то не разберусь.

Есть Map - TestMap
У него есть поле Field1.
У этого TestMap есть таблица TestTable, с которой связано поле Field1 = FieldX, НО в этой таблице поля с именем Field1 - нет.
У TestMap есть метод - testMethod().

Моя задача - внутри метода testMethod() обратиться с полю мэпа Field1.
Пытаюсь через this.Field1 - в run-time вылетает, т.к. пытается найти такое поле у таблицы TestTable, а там его нет.

Вопрос знатокам - как обратиться к полю Map'a из метода самого Map'a?

Заранее спасибо.
Совсем не понятно, что значит "с которой связано поле Field1 = FieldX, НО в этой таблице поля с именем Field1 - нет." Т.е. поле связано таки или не связано?
FieldX - это что?
Если реальной связи поля мэпа с полем таблицы нет, то конечно вы не сможете к нему обратиться при работе. Реальная работа то идёт с записью таблицы, а не с записью мэпа. Если говорить в общем, не вдаваясь в подробности, то можно представлять, что понятия записи мэпа как бы не существует, т.к. работа идёт всегда именно со связанными таблицами.
__________________
Zhirenkov Vitaly
За это сообщение автора поблагодарили: erudit (1).
Старый 12.03.2010, 13:00   #6  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от ZVV Посмотреть сообщение
Совсем не понятно, что значит "с которой связано поле Field1 = FieldX, НО в этой таблице поля с именем Field1 - нет." Т.е. поле связано таки или не связано?
На сколько я понял, автор волнуется за несоответствие названий полей в мапе и в таблице. Волноваться тут не о чем, это вполне допустимо, узел Mapping для того и предназначен, чтобы указать какое поле мапа с каким физическим полем таблицы связывается. Главное чтобы совпадали типы и была настроена эта самая связь.
Старый 12.03.2010, 13:28   #7  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
На сколько я понял, автор волнуется за несоответствие названий полей в мапе и в таблице. Волноваться тут не о чем, это вполне допустимо, узел Mapping для того и предназначен, чтобы указать какое поле мапа с каким физическим полем таблицы связывается. Главное чтобы совпадали типы и была настроена эта самая связь.
Если так, тогда понятно. Именно это я и хотел уточнить у автора...
__________________
Zhirenkov Vitaly
Старый 13.03.2010, 02:16   #8  
erudit is offline
erudit
Участник
 
36 / 52 (2) ++++
Регистрация: 19.03.2003
Адрес: Украина
Всем ОГРОМНОЕ СПАСИБО за ответы и примеры кода! С меня свежевыжитый морковный!
Это и вправду не было связки между полем мэпа и таблицы. У меня там 3 таблицы на мэпе и у одной не заметил.
Как всегда - АХФОРУМ - нам строить и жить помогает!
Спасибо!

Последний раз редактировалось erudit; 13.03.2010 в 02:20.
Старый 17.03.2010, 13:50   #9  
tolstjak is offline
tolstjak
Участник
 
440 / 16 (1) ++
Регистрация: 05.01.2003
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Вы всё правильно делаете. Для наглядности прикрепляю проект, в котором это работает. В общем, берите бубен и в пляс.
для 3.0 не подходит.
__________________
Александр
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Классы коллекций (инициализация, сериализация): List, Set, Map. petergunn DAX: База знаний и проекты 12 06.11.2024 18:38
Помещение временной таблицы в Map Lemming DAX: Программирование 20 19.10.2017 14:16
Dynamics AX: Map Object Sorting - a real issue Blog bot DAX Blogs 7 15.10.2008 12:02
MAP vs Class. В чем идейная необходимость в MAP-ах? А что если использовать Class вместо MAP? Hub DAX: Программирование 16 11.08.2008 16:58
Кто знает можно как нибудь открыть доступ к полю на форме если DataSource закрыт для AlexT1 DAX: Программирование 9 03.11.2005 00:18

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

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

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