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