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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.03.2022, 09:49   #1  
oleggy is offline
oleggy
Участник
 
276 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
вызов метода таблицы через переменную Common. возможно?
Привет.
Писал такой метод.

X++:
void myUpdate(TableId _tableId, FieldId _fieldId, anytype _value)
{
        DictTable   dictTable;
        DictField   dictField;
        Common      common;
        ExecutePermission perm;
        ;

        perm = new ExecutePermission();
        dictTable = new DictTable(_tableId);
        dictField = new DictField(_tableId, _fieldId);
        common = dictTable.makeRecord();
        perm.assert();
        common = dictTable.callObject("find", common); // тут ошибка времени выполнения xRecord Объект не имеет метода "find".
        ....
}


Цель что бы при передачи в метод к примеру таких параметров:

X++:
updateFieldValue(tablenum(Table1), fieldnum(Table1, Field), @'значение1');
Метод обновлял значение у поля Table1.Field = 'значение1'.

Подскажие как можно вызвать метод find у таблицы Table1.
А еще как передать ему параметры?

Последний раз редактировалось oleggy; 28.03.2022 в 09:51.
Старый 28.03.2022, 09:54   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,324 / 3548 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Обычно метод find является статическим, а это значит, что нужно использовать не callObject, а callStatic.
У Вас метод find статический?
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: mazzy (2), oleggy (1).
Старый 28.03.2022, 13:32   #3  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Как насчет более простого решения?
В любом случае вам по хорошему надо бы еще тип значения на корректность проверить.
X++:
    SalesTable  salesTable;
    
    void updateFieldValue(Common _common, FieldId _fieldId, anytype _value)
    {
        ttsbegin;
        
        _common.(_fieldId) = _value;
        if (_common.validateWrite())
        {
            _common.update();
        }
        
        ttscommit;
    }
    ;
    
    salesTable  = SalesTable::find('M073237', true);
    
    updateFieldValue(salesTable, fieldnum(SalesTable, SalesTaker), 'Denis');
__________________
// no comments
За это сообщение автора поблагодарили: mazzy (2).
Старый 28.03.2022, 18:44   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от oleggy Посмотреть сообщение
Подскажие как можно вызвать метод find у таблицы Table1.
А еще как передать ему параметры?
1.
Вам нужно найти запись по значениям уникального индекса.
Ну и ищите запись, вместо того, чтобы решать программистскую задачу как универсально передать методу параметры.

ищите запись используя пару стандартных методов
= SysDictTable::getKeyData
= SysDictTable::findFromKeyData

см. метод findFromUniqueIndexFields в проекте SysUtil
https://github.com/mazzy-ax/SysUtil/...il.xpp#L61-L67

==========
2.
чтобы вызвать произвольный метод с произвольными параметрами используйте классы

DictMethod
SysDictMethod
__________________
полезное на axForum, github, vk, coub.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как узнать, что форма открыта через "Перейти к форме основной таблицы"? mazzy DAX: Программирование 15 13.09.2021 10:16
Lookup, фильтр по значению метода выбираемой таблицы smailik DAX: Программирование 4 01.08.2014 12:22
AX 2012 R2: импорт данных через Excel Add-in и добавление поля в стандартную таблицу Kabardian DAX: Программирование 1 13.02.2014 22:40
Запись в поле таблицы значения из перекрытого lookup-метода kvantono DAX: Программирование 2 30.04.2013 11:13
Можно делать join таблицы к себе же через Query? korvin DAX: Программирование 13 02.03.2006 11:51

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

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

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