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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.08.2011, 11:25   #1  
maximka is offline
maximka
Сам.AX
Аватар для maximka
Самостоятельные клиенты AX
 
96 / 24 (1) +++
Регистрация: 26.10.2006
Адрес: Тюмень
Изменив первый джоб еще немного:
X++:
    void testMethod(CustTable _custTable)
    {
        CustTable custTable2;
    
        custTable2 = _custTable;
        custTable2.clear();
    }
Тот же результат...
__________________
ѣ
Старый 17.08.2011, 11:40   #2  
maximka is offline
maximka
Сам.AX
Аватар для maximka
Самостоятельные клиенты AX
 
96 / 24 (1) +++
Регистрация: 26.10.2006
Адрес: Тюмень
В общем, смысл я понял И по вашему оно действительно работает как и сказано (для временной и обычной по разному), но я ориентировался на пример из книги:
X++:
void callByReference(TmpAccountSum _tmpAccountSum)
{
TmpAccountSum tmpAccountSum;
;
tmpAccountSum = _tmpAccountSum;
select firstonly tmpAccountSum order by accountNum desc;
{
info(tmpAccountSum.accountNum);
}
}
__________________
ѣ
Старый 17.08.2011, 11:43   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1789 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от maximka Посмотреть сообщение
И по вашему оно действительно работает как и сказано (для временной и обычной по разному)
На самом деле у меня не получилось найти то действие которое бы изменяло/не изменяло параметр по разному для временных/постоянных таблиц. Так что я тоже в замешательстве. Что именно имелось в виду в книге не понятно
Старый 17.08.2011, 11:52   #4  
maximka is offline
maximka
Сам.AX
Аватар для maximka
Самостоятельные клиенты AX
 
96 / 24 (1) +++
Регистрация: 26.10.2006
Адрес: Тюмень
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
На самом деле у меня не получилось найти то действие которое бы изменяло/не изменяло параметр по разному для временных/постоянных таблиц. Так что я тоже в замешательстве. Что именно имелось в виду в книге не понятно
Создал временную таблицу и вот так работает как надо:
X++:
static void JobTestCommonParameter(Args _args)
{
    _TmpTable tmpTable;

    void testMethod(_TmpTable _tmpTableParm)
    {
        _tmpTableParm = null;
    }

    ttsbegin;
    tmpTable.selectForUpdate();
    tmpTable.NumberOf = 1;
    tmpTable.insert();
    ttscommit;
    select tmpTable;
    info(strfmt("%1",tmpTable.NumberOf));
    testMethod(tmpTable);
    info(strfmt("%1",tmpTable.NumberOf));
}
__________________
ѣ
Старый 17.08.2011, 12:01   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1789 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от maximka Посмотреть сообщение
Создал временную таблицу и вот так работает как надо:
В AX2009 меняю свойство временности таблицы туда и обратно результат вашего примера остаётся прежним
Старый 17.08.2011, 12:11   #6  
maximka is offline
maximka
Сам.AX
Аватар для maximka
Самостоятельные клиенты AX
 
96 / 24 (1) +++
Регистрация: 26.10.2006
Адрес: Тюмень
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
В AX2009 меняю свойство временности таблицы туда и обратно результат вашего примера остаётся прежним
Сорри. Лажанулся (прогнал другой пример ). Пора в отпуск.
__________________
ѣ

Последний раз редактировалось maximka; 17.08.2011 в 12:15.
Старый 17.08.2011, 11:59   #7  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,821 / 402 (17) +++++++
Регистрация: 23.03.2006
Цитата:
Сообщение от maximka Посмотреть сообщение
В общем, смысл я понял И по вашему оно действительно работает как и сказано (для временной и обычной по разному), но я ориентировался на пример из книги:
X++:
void callByReference(TmpAccountSum _tmpAccountSum)
{
TmpAccountSum tmpAccountSum;
;
tmpAccountSum = _tmpAccountSum;
select firstonly tmpAccountSum order by accountNum desc;
{
info(tmpAccountSum.accountNum);
}
}
этот пример очень хорошо демонстрирует передачу ссылки на временную таблицу, но при передаче с клиента на сервер (или наоборот) лучше использовать метод setTmpData():
X++:
tmpAccountSum.setTmpData(_tmpAccountSum);

Последний раз редактировалось ice; 17.08.2011 в 12:02.
Старый 17.08.2011, 12:14   #8  
maximka is offline
maximka
Сам.AX
Аватар для maximka
Самостоятельные клиенты AX
 
96 / 24 (1) +++
Регистрация: 26.10.2006
Адрес: Тюмень
Цитата:
Сообщение от ice Посмотреть сообщение
этот пример очень хорошо демонстрирует передачу ссылки на временную таблицу, но при передаче с клиента на сервер (или наоборот) лучше использовать метод setTmpData():
X++:
tmpAccountSum.setTmpData(_tmpAccountSum);
Так работает как и должно, ибо никаких ссылок не используется. Вопрос-то в том, что автор книги говорит о разном поведении системы для временной и обычной таблиц при передаче их через параметры. Чего я не смог повторить.
__________________
ѣ
Старый 19.08.2011, 08:27   #9  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от ice Посмотреть сообщение
этот пример очень хорошо демонстрирует передачу ссылки на временную таблицу, но при передаче с клиента на сервер (или наоборот) лучше использовать метод setTmpData():
X++:
tmpAccountSum.setTmpData(_tmpAccountSum);
Этот пример демонстрирует передачу ссылки на табличную переменную

А вот использование setTmpData() - это как раз таки передача ссылки на временную таблицу. Причем, tmpAccountSum окажется на той же строне, что и _tmpAccountSum, но значения в этих переменных будут независимы (с привязкой к одной и той же временной таблице, естественно).

Передать данные из временной таблицы на другую строну можно только последовательным копированием и вставкой.
__________________
Axapta v.3.0 sp5 kr2
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
В Стандартной АХ2009 не работает кнопка <Параметры> на диалоге класса унаследованного от RunBaseReport Pustik DAX: Программирование 3 11.05.2011 19:47
Как правильно связать таблицы в форме? Как показать параметры партии? mazzy DAX: Программирование 10 27.10.2010 15:56
WebActionMenuFunction - получить параметры Alex05507 DAX: Программирование 0 18.06.2010 13:12
Связываемые переменные при работе с Oracle axbegin DAX: Программирование 8 04.08.2009 09:42
Система не видит новые параметры методов при работе Anais DAX: Программирование 28 20.01.2005 22:38

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

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

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