![]() |
#1 |
Участник
|
Не находит запись в RecordSortedList
RecordSortedList по временной таблице, пишу RecordSortedList.find(tmpTable) - ничего не находит. В чем может быть проблема?
|
|
![]() |
#2 |
Программатор
|
нет такой записи?
![]() |
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Участник
|
Может ли такое быть именно потому-что таблица временная?
|
|
![]() |
#5 |
Участник
|
А 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; } |
|
![]() |
#6 |
Участник
|
Нет не пробовал, но
X++: if (RecordSortedList.find(tmpTable))
RecordSortedList.del(tmpTable) По идее find() все равно, что запись одна. Курсор тот же самый. Что не так, не пойму? |
|
![]() |
#7 |
Участник
|
А версия какая, не трёшка ли? А то была такая тема: Осторожно. RecordSortedList учитывает регистр символов
|
|
![]() |
#8 |
Участник
|
Цитата:
Сообщение от gl00mie
![]() А версия какая, не трёшка ли? А то была такая тема: Осторожно. RecordSortedList учитывает регистр символов
|
|
![]() |
#9 |
Участник
|
Вот так заработало
X++: if (RecordSortedList.first(tmpTable)) { if (RecordSortedList.find(tmpTable)) RecordSortedList.del(tmpTable) } |
|
![]() |
#10 |
Участник
|
Сделайте мини пример. Джоб: заполнение RecordSortedList одной строкой, поиск, ошибка. Выложите здесь. Я думаю разобраться в ошибке после этого будет проще.
|
|
![]() |
#11 |
Участник
|
Цитата:
Это и стало решением данной проблемы |
|
![]() |
#12 |
Участник
|
А я понял. RecordSortedList.first(tmpTable) возвращает true, но между этим заполняет курсор данными первой записи из RecordSortedList.
Ладно хоть у меня была задача всегда удалять первую запись из RecordSortedList Но тем не менее не понимаю, почему RecordSortedList.find(tmpTable) не возвращал true и не заполнял курсор данными нужной строки из RecordSortedList. Может потому-что я tmpTable брал из Map'а? |
|
![]() |
#13 |
Участник
|
Прошелся поиском по формам и классам (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"); |
|