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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.10.2005, 16:03   #1  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от e-statik
2 romeo:
А если нужно иметь возможность править записи, а не только смотреть? Ещё кучу тригеров переписать, я правильно понимаю?
Триггера в навижене вообще единственное место, куда пишется код ) И переписали мы этих триггеров уже немеряно. Так что .. можно и еще кучу переписать. Потом, почему нельзя править записи в такой форме? Единственное - они могут выпадать из фильтра, если перестанут удовлетворять условиям. Я говорю про форму, построенную на нормальной, не временной таблице.
Старый 19.10.2005, 17:01   #2  
e-statik is offline
e-statik
Участник
 
102 / 11 (1) +
Регистрация: 06.07.2005
Цитата:
Сообщение от romeo
Я говорю про форму, построенную на нормальной, не временной таблице.
А можно примерец привести, как на OnFind OnNext это сделать и без временной таблицы?? Спасибо.
Старый 19.10.2005, 17:50   #3  
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, время: 00:13.