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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.01.2002, 12:22   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Обращение к полю таблицы
Есть форма. Помещаю в DataSource таблицу Unit. Создаю button, переопределяю метод clicked. В нем я хочу получать текущее значение поля UnitId из таблицы Unit. Перемещение по таблице происходит с помощью grid, расположенного на этой же форме. Как мне обратиться к этому полю, текущей записи ?

Пробовал так:

Unit un;
StaticText.text(un.UnitId);

Данный код возвращает пустую строку. В принципе это понятно. Но почему не работают следующие варианты:

1) Unit_ds.UnitId

2) this.UnitId, если я вызываю это из метода, принадлежащего таблице, которая помещена в DataSource какой-либо формы.

Спасибо.
Старый 30.01.2002, 13:06   #2  
Andrew Besedin is offline
Andrew Besedin
Участник
 
121 / 15 (1) ++
Регистрация: 25.01.2002
Привет!
Точно будет работать конструкция <Имя DataSource'а>.<Имя поля>. Если не работает - выйдите из Аксапты и зайдите вновь
Ваши варианты не работают, т.к:
1. Вы имеете датасорс, а не запись таблицы
2. Простите, не понял...

Успехов,
Андрей Беседин
Старый 30.01.2002, 13:36   #3  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Andrew Besedin

Точно будет работать конструкция <Имя DataSource'а>.<Имя поля>. Если не работает - выйдите из Аксапты и зайдите вновь
Так ?

Unit.UnitId или InventTable.ItemId

Не работает, хотя эти таблицы и помещены в DataSource формы.
Перезагружал Аксапту, не помогло.
Собственно говоря, когда я набираю Unit. в ниспадающем списке вообще нет имен полей.

1. Не могли бы Вы объяснить в чем различие в этиз подходах:

а) Unit.
б) Unit_ds.
в) Unit un;
un.

Как я заметил, только в третьем случае я могу обратиться к полю, хотя список подстановки различен во всех трех случаях.

2. Создаю форму. Помещаю в DataSource таблицу (например Unit). Перекрываю какой-нибудь метод этой таблицы (в DataSource). В этом методе как мне казалось должен работать код:

this.<имя поля>

Как я понимаю this - указатель на самого себя. Если я употребляю его в методе таблицы, то указывать он должен на саму таблицу, а следовательно я могу добраться до любого ее поля. Ан нет - не работает.
Старый 30.01.2002, 13:51   #4  
Andrew Besedin is offline
Andrew Besedin
Участник
 
121 / 15 (1) ++
Регистрация: 25.01.2002
Скорее всего, Ваш датасорс называется Unit_1 (или InventTable_1). Лучше всего опубликуйте здесь картинку с деревом Вашей формы - станет яснее.
Разница (кратко)
1. <Имя Datasource> вернет указатель на ТЕКУЩУЮ запись соответств. таблицы. То есть, после точки Вы будете видеть все поля и методы ТАБЛИЦЫ
2. <Имя Datasource>_DS - возвращает экземпляр класса QueryRun (см. AOT/System Documentation/Classes - там немного про него написано)
3. Unit un; Это всего лишь табличная переменная. Сразу после объявления она ничему не равна

Теперь насчет 2-го подхода. Вы опять видите методы КЛАССА QURYRUN, а не таблицы.
__________________
С уважением,
Андрей Беседин
Старый 30.01.2002, 14:39   #5  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Спасибо за ответ.

Я прикрепил картинку с деревом моей формы. На ней видны все DataSource. Также на рисунке внизу представлен метод, в котором я и пытаюсь обратиться к полю таблицы.
Миниатюры
Нажмите на изображение для увеличения
Название: img1169-1.gif
Просмотров: 484
Размер:	21.8 Кб
ID:	1550  
Старый 30.01.2002, 15:08   #6  
slava is offline
slava
сибиряк
Самостоятельные клиенты AX
 
468 / 23 (1) +++
Регистрация: 28.12.2001
Адрес: Москва
:) ;
поставьте после
void clicked()
{
.. символ ";"
-->
void clicked()
{
;
Unit.Id;

Очень часто помогает
__________________
С уважением, Вячеслав.
Старый 30.01.2002, 15:20   #7  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Спасибо помогло.

Раньше знал, но сейчас не догадался. :-))
Старый 31.01.2002, 11:59   #8  
Роман Кошелев is offline
Роман Кошелев
Продавец игрушек
Аватар для Роман Кошелев
 
433 / 73 (3) ++++
Регистрация: 22.11.2001
Адрес: Москва
Угу, об это писалось уже достаточно давно:
http://www.axforum.info/forums/showt...s=&threadid=53
__________________
С уважением, Роман Кошелев.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Пересоздание таблицы при синхронизации Serg16 DAX: Администрирование 1 26.08.2009 13:55
Фильтр в Lookup по полю другой таблицы gefr DAX: Программирование 6 12.03.2007 13:06
Обращение к полю по его Id Lucky13 DAX: Программирование 2 16.01.2006 10:21
Поиск по полю временной таблицы Swetik DAX: Программирование 2 10.12.2003 11:35
Поиск в Grid по полю из другой таблицы Dron AKA andy DAX: Программирование 9 01.08.2002 16:36
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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