Цитата:
Сообщение от
e-statik
Цитата:
Сообщение от
romeo
Я говорю про форму, построенную на нормальной, не временной таблице.
А можно примерец привести, как на OnFind OnNext это сделать и без временной таблицы?? Спасибо.
<div class='CALtop'>C/AL</div><div class='CAL'>
OnFind
Exit(FormFind(Which));
OnNext
exit(FormNext(Steps));
FormFind(Which : Text[1024]) : Boolean
lrec.COPY(Rec);
IF NOT lrec.FIND(Which) THEN EXIT(FALSE);
IF Which='+' THEN
li:=-1
ELSE
li:=1;
WHILE NOT CheckFindRec(lrec) DO BEGIN
lii:=lrec.NEXT(li);
IF lii=0 THEN EXIT(FALSE);
END;
Rec:=lrec;
EXIT(TRUE);
FormNext(Steps : Integer) : Integer
lrec.COPY(Rec);
lrec:=Rec;
li:=0;
CASE TRUE OF
Steps>0:li:=1;
Steps<0:li:=-1;
END;
lRealStep:=0;
REPEAT
lii:=lrec.NEXT(li);
IF lii=0 THEN EXIT(lRealStep);
IF CheckFindRec(lrec) THEN BEGIN
lRealStep:=lRealStep+li;
Rec:=lrec;
END;
UNTIL lRealStep=Steps;
EXIT(lRealStep);
</div>
функция CheckFindRec возвращает TRUE для записей удовлетворяющих условию
Недостаток такого подхода - если интервал между записями удовлетворяющими условию достаточно большой, то будет ощутимое замедление вывода записей