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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.11.2012, 17:17   #1  
Airat is offline
Airat
Участник
 
14 / 13 (1) ++
Регистрация: 28.07.2011
Не находит запись в RecordSortedList
RecordSortedList по временной таблице, пишу RecordSortedList.find(tmpTable) - ничего не находит. В чем может быть проблема?
Старый 01.11.2012, 17:19   #2  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
нет такой записи?
Старый 01.11.2012, 17:23   #3  
Airat is offline
Airat
Участник
 
14 / 13 (1) ++
Регистрация: 28.07.2011
Цитата:
Сообщение от Sada Посмотреть сообщение
нет такой записи?
Запись точно есть, она одна и RecId у них совпадают
Старый 01.11.2012, 17:30   #4  
Airat is offline
Airat
Участник
 
14 / 13 (1) ++
Регистрация: 28.07.2011
Может ли такое быть именно потому-что таблица временная?
Старый 01.11.2012, 17:39   #5  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
396 / 478 (16) +++++++
Регистрация: 27.02.2006
Адрес: Дания
А RecordSortedList.sortOrder(...) метод использовали?

Вот это работает, например:

X++:
static void testRecordSortedList(Args _args)
{
    TmpABC tmpABC;
 
    RecordSortedList rslTmpABC = new RecordSortedList(tableNum(tmpABC));
 
    rslTmpABC.sortOrder(fieldNum(tmpABC, ItemId));
 
    tmpABC.ItemId = '1';
    tmpABC.Amount = 1.0;
    rslTmpABC.ins(tmpABC);
 
    tmpABC.ItemId = '2';
    tmpABC.Amount = 2.0;
    rslTmpABC.ins(tmpABC);    
 
    tmpABC.ItemId = '3';
    tmpABC.Amount = 3.0;
    rslTmpABC.ins(tmpABC);    
 
    tmpABC.ItemId = '2';    
    rslTmpABC.find(tmpABC);
 
    print tmpABC.Amount;
    pause;
}
Старый 01.11.2012, 17:48   #6  
Airat is offline
Airat
Участник
 
14 / 13 (1) ++
Регистрация: 28.07.2011
Нет не пробовал, но
X++:
if (RecordSortedList.find(tmpTable))
    RecordSortedList.del(tmpTable)
до del() даже не доходит, при условии что RecordSortedList содержит одну запись.
По идее find() все равно, что запись одна. Курсор тот же самый. Что не так, не пойму?
Старый 01.11.2012, 23:49   #7  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
А версия какая, не трёшка ли? А то была такая тема: Осторожно. RecordSortedList учитывает регистр символов
Старый 02.11.2012, 07:47   #8  
Airat is offline
Airat
Участник
 
14 / 13 (1) ++
Регистрация: 28.07.2011
Цитата:
Сообщение от gl00mie Посмотреть сообщение
А версия какая, не трёшка ли? А то была такая тема: Осторожно. RecordSortedList учитывает регистр символов
нет, 5ка
Старый 02.11.2012, 07:57   #9  
Airat is offline
Airat
Участник
 
14 / 13 (1) ++
Регистрация: 28.07.2011
Вот так заработало
X++:
if (RecordSortedList.first(tmpTable))
{
    if (RecordSortedList.find(tmpTable))
        RecordSortedList.del(tmpTable)
}
Может кто-нибудь объяснить, почему find() без предварительной проверки first() не возвращал true?
Старый 02.11.2012, 07:57   #10  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,427 / 1771 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Сделайте мини пример. Джоб: заполнение RecordSortedList одной строкой, поиск, ошибка. Выложите здесь. Я думаю разобраться в ошибке после этого будет проще.
Старый 02.11.2012, 09:37   #11  
Airat is offline
Airat
Участник
 
14 / 13 (1) ++
Регистрация: 28.07.2011
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Сделайте мини пример. Джоб: заполнение RecordSortedList одной строкой, поиск, ошибка. Выложите здесь. Я думаю разобраться в ошибке после этого будет проще.
Никакой ошибки не было, просто RecordSortedList.find() не возвращал true, если предварительно не проверять RecordSortedList.first().
Это и стало решением данной проблемы
Старый 02.11.2012, 09:44   #12  
Airat is offline
Airat
Участник
 
14 / 13 (1) ++
Регистрация: 28.07.2011
А я понял. RecordSortedList.first(tmpTable) возвращает true, но между этим заполняет курсор данными первой записи из RecordSortedList.
Ладно хоть у меня была задача всегда удалять первую запись из RecordSortedList
Но тем не менее не понимаю, почему RecordSortedList.find(tmpTable) не возвращал true и не заполнял курсор данными нужной строки из RecordSortedList. Может потому-что я tmpTable брал из Map'а?
Старый 02.11.2012, 18:21   #13  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
305 / 137 (5) +++++
Регистрация: 21.04.2008
Прошелся поиском по формам и классам (Ax 3.0) нигде не используется .first()
Джоб отработал и без него
X++:
    recordSortedList    recordSortedList;
    tmpTable    tmp;
    ;

    select tmp;
    if (!tmp)
    {
        tmp.clear();
        tmp.ItemId = "JJ009";
        tmp.insert();

        tmp.clear();
        tmp.ItemId = "JJ008";
        tmp.insert();
    }


    recordSortedList = new RecordSortedList(tableNum(tmpTable));

    recordSortedList.ins(tmp);

    //recordSortedList.first(tmp);

    if (recordSortedList.find(tmp))
        info("find");
    else
        info("no");
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axzaptech: RecordSortedList and RecordInsertList Blog bot DAX Blogs 0 28.01.2011 23:14
Не корректно сохраняет запись в inventTable Starling DAX: Программирование 8 31.03.2008 15:30
Как узнать по объекту RecordSortedList, из какой таблицы в нем записи? gl00mie DAX: Программирование 4 20.02.2008 15:39
Очень просто: создать новую запись в таблице Hobo DAX: Программирование 20 11.07.2006 13:02
Ошибка при импорте демоданных (Axapta 3.0 CIS SP1) KocDm DAX: Администрирование 2 11.08.2005 12:04
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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