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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.10.2006, 12:22   #1  
usach is offline
usach
Участник
 
55 / 10 (1) +
Регистрация: 31.08.2005
Цитата:
Сообщение от romeo Посмотреть сообщение
Цитата:
Сообщение от usach Посмотреть сообщение
можно ли отфильтровывать на форме данные из Таблицы1 на основе информации из Таблици2.

Например у меня есть Список Сотрудников в Employee Qualification, и я хочу не отображать тех Сотрудников по Которым есть Сформированный Приказ в Pers Order Line.

И еще возможно ли не отфильтровывать, а сортировать по этому признаку?
Можно переписать триггера OnFindRecord() OnNextRecord() формы. На ходу определять - подходит ли запись для показа или нет. Минусы этого способа - задержки в отображении записей, если между ними большое колво записей, которые показаны не будут.
Минус работы с маркированными записями в том, что если выбрать ключ сортировки, отличный от первичного (когда на форме показываются только марки), то работа с формой станет невозможной, будут нереальные тормоза.
а поподробнее что нужно написать в этих триггерах?
Старый 25.10.2006, 12:40   #2  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от usach Посмотреть сообщение
а поподробнее что нужно написать в этих триггерах?
Form - OnFindRecord(Which : Text[1024]) : Boolean
EXIT(OnFindRecord(Which));

Form - OnNextRecord(Steps : Integer) : Integer
EXIT(OnNextRecord(Steps));

OnFindRecord(Which : Text[1024]) : Boolean
IF Which = '+'
THEN _Step := - 1
ELSE _Step := 1;

IF FIND(Which) THEN REPEAT
_Ok := CheckLineByFilter;

IF NOT _Ok
THEN _End := (NEXT(_Step) = 0);
UNTIL _End OR _Ok;
EXIT(_Ok);

OnNextRecord(Steps : Integer) : Integer
IF Steps <> 0 THEN
_Step := Steps / ABS(Steps);

Item1 := Rec;

REPEAT
_End := (NEXT(_Step) = 0);

IF NOT _End THEN BEGIN
_Ok := CheckLineByFilter;

IF _Ok THEN BEGIN
_Done += _Step;
Item1 := Rec;
END;
END;
UNTIL _End OR (_Done = Steps);

IF _End THEN
Rec := Item1;
EXIT(_Done);

CheckLineByFilter() и будет возвращать ДА или НЕТ - показывать строку или нет. Под себя адаптируете функции. У меня на товаре ...
Старый 25.10.2006, 13:35   #3  
usach is offline
usach
Участник
 
55 / 10 (1) +
Регистрация: 31.08.2005
Цитата:
Сообщение от romeo Посмотреть сообщение
Item1 := Rec;
Item1 это что?
Старый 25.10.2006, 13:43   #4  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от usach Посмотреть сообщение
Item1 это что?
Моя форма, откуда я это копировал, была на таблице товар. Вам нужно объявить переменную на приказах по сотруднику. И этой переменной присваивать Rec.
 

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

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

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

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

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