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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.11.2012, 11:50   #1  
bodeaux is offline
bodeaux
Участник
Аватар для bodeaux
 
35 / 10 (1) +
Регистрация: 08.10.2012
Адрес: Екатеринбург
Получить значение поля по TableId, FieldId, RecId
Подскажите, пожалуйста, как получить значение поля таблицы, зная параметры TableId, FieldId, RecId.
Старый 06.11.2012, 11:56   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,282 / 1624 (61) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Find для Common-а
За это сообщение автора поблагодарили: bodeaux (1).
Старый 06.11.2012, 11:59   #3  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,443 / 963 (35) +++++++
Регистрация: 22.07.2003
Адрес: МО
X++:
static void Job10(Args _args)
{
    TableId     tableId;
    RecId       recId;
    FieldId     fieldId;
    Common      common;
    ;
    common = new DictTable(tableId).makeRecord();
    
    select firstonly common
        where common.RecId == recId;
        
    info(strfmt("%1", common.(fieldId)));
}
За это сообщение автора поблагодарили: bodeaux (1).
Старый 06.11.2012, 12:09   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,282 / 1624 (61) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Ещё вот так можно:
X++:
anyType find(TableId TableId, RecId RecId, FieldId FieldId)
    {
        Query Query;
        QueryBuildDataSource qbds;
        QueryRun QueryRun;
        Common Common;
        anyType ret;
        ;

        Query = new Query();
        qbds = Query.addDataSource(TableId);
        qbds.addRange(fieldName2id(TableId, 'RecId')).value(queryvalue(RecId));
        qbds.addSelectionField(FieldId, SelectionField::Database);
        qbds.firstOnly(true);

        QueryRun = new QueryRun(Query);
        if (QueryRun.next())
        {
            Common = QueryRun.get(TableId);
            ret = Common.(fieldId);
        }

        return ret;
    }
Старый 07.07.2014, 17:41   #5  
userax2009 is offline
userax2009
Участник
 
24 / 10 (1) +
Регистрация: 16.05.2014
Цитата:
Сообщение от raz Посмотреть сообщение
X++:
static void Job10(Args _args)
{
    TableId     tableId;
    RecId       recId;
    FieldId     fieldId;
    Common      common;
    ;
    common = new DictTable(tableId).makeRecord();
    
    select firstonly common
        where common.RecId == recId;
        
    info(strfmt("%1", common.(fieldId)));
}
Почему запуская Джоб, я получаю данную ошибку
Изображения
 
Старый 07.07.2014, 17:43   #6  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,443 / 963 (35) +++++++
Регистрация: 22.07.2003
Адрес: МО
X++:
TableId     tableId = tableNum(Address);
FieldId     fieldId = fieldNum(Address, RecId);
Подправьте так.
Старый 07.07.2014, 17:46   #7  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,443 / 963 (35) +++++++
Регистрация: 22.07.2003
Адрес: МО
X++:
static void Job10(Args _args)
{
    TableId     tableId = tableNum(Address);
    FieldId     fieldId = fieldNum(Address, RecId);
    Common      common;
    ;
    common = new DictTable(tableId).makeRecord();
    
    select firstonly common;
        
    info(strfmt("%1", common.(fieldId)));
}
За это сообщение автора поблагодарили: userax2009 (1).
Старый 08.07.2014, 10:24   #8  
userax2009 is offline
userax2009
Участник
 
24 / 10 (1) +
Регистрация: 16.05.2014
Цитата:
Сообщение от raz Посмотреть сообщение
X++:
static void Job10(Args _args)
{
    TableId     tableId = tableNum(Address);
    FieldId     fieldId = fieldNum(Address, RecId);
    Common      common;
    ;
    common = new DictTable(tableId).makeRecord();
    
    select firstonly common;
        
    info(strfmt("%1", common.(fieldId)));
}
Мне надо более универсальный код, то есть я хочу узнать fieldId для любого поля любой таблицы. Возможно ли это ?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptapedia: Having Clause Blog bot DAX Blogs 1 31.07.2009 14:07
поля, содержащие RecId somebody DAX: Программирование 15 16.05.2008 17:50
Каким образом можно получить значение поля, зная fieldId? Lemming DAX: Программирование 10 19.06.2006 12:25
Получить значение поля таблицы по номеру (Id) поля Anais DAX: Программирование 2 15.04.2004 13:00
Как получить значение поля Datasource на динамически созданной форме? storer DAX: Программирование 2 14.11.2003 16:41
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:21.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.