AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.10.2005, 17:50   #1  
zub is offline
zub
Участник
 
40 / 10 (1) +
Регистрация: 23.08.2005
Цитата:
Сообщение от 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 для записей удовлетворяющих условию

Недостаток такого подхода - если интервал между записями удовлетворяющими условию достаточно большой, то будет ощутимое замедление вывода записей
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:48.