01.11.2012, 17:17 | #1 |
Участник
|
Не находит запись в RecordSortedList
RecordSortedList по временной таблице, пишу RecordSortedList.find(tmpTable) - ничего не находит. В чем может быть проблема?
|
|
01.11.2012, 17:19 | #2 |
Программатор
|
нет такой записи?
|
|
01.11.2012, 17:23 | #3 |
Участник
|
|
|
01.11.2012, 17:30 | #4 |
Участник
|
Может ли такое быть именно потому-что таблица временная?
|
|
01.11.2012, 17:39 | #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; } |
|
01.11.2012, 17:48 | #6 |
Участник
|
Нет не пробовал, но
X++: if (RecordSortedList.find(tmpTable))
RecordSortedList.del(tmpTable) По идее find() все равно, что запись одна. Курсор тот же самый. Что не так, не пойму? |
|
01.11.2012, 23:49 | #7 |
Участник
|
А версия какая, не трёшка ли? А то была такая тема: Осторожно. RecordSortedList учитывает регистр символов
|
|
02.11.2012, 07:47 | #8 |
Участник
|
Цитата:
Сообщение от gl00mie
А версия какая, не трёшка ли? А то была такая тема: Осторожно. RecordSortedList учитывает регистр символов
|
|
02.11.2012, 07:57 | #9 |
Участник
|
Вот так заработало
X++: if (RecordSortedList.first(tmpTable)) { if (RecordSortedList.find(tmpTable)) RecordSortedList.del(tmpTable) } |
|
02.11.2012, 07:57 | #10 |
Участник
|
Сделайте мини пример. Джоб: заполнение RecordSortedList одной строкой, поиск, ошибка. Выложите здесь. Я думаю разобраться в ошибке после этого будет проще.
|
|
02.11.2012, 09:37 | #11 |
Участник
|
Цитата:
Это и стало решением данной проблемы |
|
02.11.2012, 09:44 | #12 |
Участник
|
А я понял. RecordSortedList.first(tmpTable) возвращает true, но между этим заполняет курсор данными первой записи из RecordSortedList.
Ладно хоть у меня была задача всегда удалять первую запись из RecordSortedList Но тем не менее не понимаю, почему RecordSortedList.find(tmpTable) не возвращал true и не заполнял курсор данными нужной строки из RecordSortedList. Может потому-что я tmpTable брал из Map'а? |
|
02.11.2012, 18:21 | #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"); |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|