|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от Likefire
Цикл в данном случае очень непродуктивно, так как записей в таблице может быть очень много и пробегаться по каждой записи, чтобы найти последний элемент таблицы - мягко говоря неумно, потому что существует такой простой метод как COUNT.
RESET(Customer); //сбрасываем все фильтры = все записи таблицы IsCount := Customer.COUNT; Сustomer.SETRANGE("No.", No1, No2); //ставим фильтр = избранные записи IsCount := Customer.COUNT; Вот и вся любовь... Не понял идеи. При чём здесь COUNT? Искать последнюю запись с помощью цикла - далеко не лучшая идея, конечно :-) Но вопрос был не об этом - человеку, как я понял, нужно изменить значение поля во всех записях. В этом деле COUNT точно не поможет, там без цикла не обойтись. Для того, чтобы найти последнюю запись, на самом деле, существует такой простой метод как FIND('+') В примере кода, приведённом Вами я опять-таки не увидел поиска поска записи. RESET(Customer); //сбрасываем все фильтры = все записи таблицы IsCount := Customer.COUNT; Сustomer.SETRANGE("No.", No1, No2); //ставим фильтр = избранные записи IsCount := Customer.COUNT; Вы здесь дважды считаете количество записей. Первый раз - всего в такблице, второй - количество записей, удовлетворяющих фильтру. А где, собственно, поиск? |
|