![]() |
#5 |
Участник
|
Цитата:
Сообщение от Neovision
![]() А вы фильтруете по тем полям, по которым рассчитываете калкфилд? Если да, то по-моему следует сперва определить значения в этих полях с помощью калкфилда, а потом уже после наложения фильтра запускать цикл. Могу ошибаться, но мне кажется, что до вызова CALCFIELDS значения в этом поле пустые, стало быть и фильтр SETRANGE по этому полю вернёт вам пустую запись, и выражение IF FIND('-') ... возвратит FALSE. Сделайте так:
Record.CALCFIELDS(Field1,Field2,...); Record.SETRANGE(Field1,Value1,Value2) (или как там у вас) IF Record.FIND('-') THEN REPEAT {тело цикла} UNTIL Record.NEXT=0; ![]() Цитата:
Как я понимаю, 2-й - медленее 1-го, но в первом не получается расчитать вычисляемое поле (не срабатывает CALCFIELDS) - нули.
После FIND('-') запись позиционируется и CALCFIELD работает. Первый способ однозначно не подходит. |
|