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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.04.2004, 09:26   #1  
kaw is offline
kaw
Участник
 
122 / 35 (2) +++
Регистрация: 23.03.2004
Адрес: Новосибирск
Как использовать значение переменной в Select-е
Есть таблица DefineDescrition, в которой хранится пользовательское название и соответствующее ему таблица и поле (данной таблицы), например:
BANK_PL -> bankAccountTable, Name

Как обратившись к первой таблице сделать второй select используя
в качестве полей значение первого select-а, например:

select * from DefineDescrition;
select DefineDescrition.NoteDatabaseField from DefineDescrition.NoteDatabase;

где DefineDescrition.NoteDatabase - таблица bankAccountTable
DefineDescrition.NoteDatabaseField - поле таблицы bankAccountTable

Заранее благодарен за совет, критику.
Старый 22.04.2004, 11:04   #2  
Prof is offline
Prof
Участник
 
732 / 64 (4) ++++
Регистрация: 18.10.2002
Адрес: Москва
Все это делается гораздо более муторно

PHP код:

DictTable dt
;
DictField  df;
common common;
;
select from DefineDescrition;
dt = new DictTable(tableName2Id(DefineDescrition.NoteDatabase);
df = new DictField(dt.id(), fieldName2Id(dt.id(), DefineDescrition.NoteDatabaseField);

common dt.makeRecord();

select common;

info(common.(df.id())); // выдает значение поля NoteDatabaseField 
Извиняйте если что упустил, писал сходу.
Можно обойтись без dictField в данном случае но так красивше.
Старый 22.04.2004, 12:05   #3  
kaw is offline
kaw
Участник
 
122 / 35 (2) +++
Регистрация: 23.03.2004
Адрес: Новосибирск
Огромное спасибо
Два дня искал! Сам бы не додумался!

Еще один вопрос, а зачем эта строчка:
(в help-е создание пустой строчки в таблице dt)

common = dt.makeRecord();

Почему сразу не работает?

select df from dt;
Старый 22.04.2004, 12:29   #4  
Prof is offline
Prof
Участник
 
732 / 64 (4) ++++
Регистрация: 18.10.2002
Адрес: Москва
Ну уж знаете...
DictTable это совсем другой класс, предназначен для получения свойств таблицы как класса, а не как хранилища данных.
А common - это базовый класс для всех таблиц уже как объектов. Любая табличная переменная является переменной класса, унаследованного от common.
В общем, это сложнее объяснить чем понять

Запись select df from dt значит что у вас есть таблица с названием dt и полем df.
Старый 22.04.2004, 13:07   #5  
kaw is offline
kaw
Участник
 
122 / 35 (2) +++
Регистрация: 23.03.2004
Адрес: Новосибирск
Все понял. Большое спасибо.

Закрываю тему.
Старый 23.04.2004, 11:13   #6  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Можно еще вот так попробовать, при этом можно еще и запрос сделать посложнее, а параметры его хранить в той же таблице DefineDescrition.
Сами догадаетесь куда вписать DefineDescrition.

PHP код:
static void Job1(Args _args)
{
    
Common                  Common;
    
Query                   Query;
    
QueryRun                QueryRun;
    ;
    
Query = new Query();
    
Query.addDataSource(tableName2id("InventTable"));
    
QueryRun = new QueryRun(Query);
    
QueryRun.next();
    
Common QueryRun.getNo(1);
    
info(Common.(fieldName2id(tableName2id("InventTable"), "ItemId")));

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
теряется значение переменной laxel DAX: Программирование 3 05.02.2009 10:07
Можно ли в SELECT использовать критерия вида "10..20" Poleax DAX: Программирование 26 20.06.2008 12:28
Как передать значение переменной Аксапты COM-объекту AxaptaUser DAX: Программирование 2 11.07.2007 18:03
Как получить значение переменной из типа Object Arahnid DAX: Программирование 6 23.05.2007 16:17
Значение переменной cherv DAX: Программирование 5 30.05.2006 14:11
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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