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

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

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

И еще возможно ли не отфильтровывать, а сортировать по этому признаку?
Старый 25.10.2006, 09:45   #2  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
Делаете форму в которой отображаете временную таблицу Employee, которую в свою очередь заполняете по фильтру, если добавите поле с признаком в Employee и ключик по нему, то можно будет в этой форме и сортировать.

В самом простом случае можно использовать маркировку по фильтру... как правило Employee содержит не много записей - поэтому может подойти.
__________________
Want to believe...
Старый 25.10.2006, 10:40   #3  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от usach Посмотреть сообщение
можно ли отфильтровывать на форме данные из Таблицы1 на основе информации из Таблици2.

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

И еще возможно ли не отфильтровывать, а сортировать по этому признаку?
Можно переписать триггера OnFindRecord() OnNextRecord() формы. На ходу определять - подходит ли запись для показа или нет. Минусы этого способа - задержки в отображении записей, если между ними большое колво записей, которые показаны не будут.
Минус работы с маркированными записями в том, что если выбрать ключ сортировки, отличный от первичного (когда на форме показываются только марки), то работа с формой станет невозможной, будут нереальные тормоза.
Старый 25.10.2006, 10:46   #4  
usach is offline
usach
Участник
 
55 / 10 (1) +
Регистрация: 31.08.2005
Цитата:
Сообщение от DA_NEAL Посмотреть сообщение
Делаете форму в которой отображаете временную таблицу Employee, которую в свою очередь заполняете по фильтру, если добавите поле с признаком в Employee и ключик по нему, то можно будет в этой форме и сортировать.

В самом простом случае можно использовать маркировку по фильтру... как правило Employee содержит не много записей - поэтому может подойти.
ок.

а еще не подскажешь, как динамически формировать фильтр для поля.

Например мне нужно вывести форму с Учтенными приказами по Сотруднику.
я пробегаюсь по таблице Posted Pers. Order Line, смотрю номера приказов и из найденных нужно сформировать фильтр для Posted Pers. Order Header......
Старый 25.10.2006, 11:16   #5  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от usach Посмотреть сообщение
Цитата:
Сообщение от DA_NEAL Посмотреть сообщение
Делаете форму в которой отображаете временную таблицу Employee, которую в свою очередь заполняете по фильтру, если добавите поле с признаком в Employee и ключик по нему, то можно будет в этой форме и сортировать.

В самом простом случае можно использовать маркировку по фильтру... как правило Employee содержит не много записей - поэтому может подойти.
ок.

а еще не подскажешь, как динамически формировать фильтр для поля.

Например мне нужно вывести форму с Учтенными приказами по Сотруднику.
я пробегаюсь по таблице Posted Pers. Order Line, смотрю номера приказов и из найденных нужно сформировать фильтр для Posted Pers. Order Header......
В OnOpenForm() можно вписать эту процедуру, а номера полученных приказов записывать в текстовую переменную через палку. После цикла отфильтровать записи по полученному фильтру. Если приказов не слишком много ..)
Старый 25.10.2006, 12:22   #6  
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   #7  
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   #8  
usach is offline
usach
Участник
 
55 / 10 (1) +
Регистрация: 31.08.2005
Цитата:
Сообщение от romeo Посмотреть сообщение
Item1 := Rec;
Item1 это что?
Старый 25.10.2006, 13:43   #9  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от usach Посмотреть сообщение
Item1 это что?
Моя форма, откуда я это копировал, была на таблице товар. Вам нужно объявить переменную на приказах по сотруднику. И этой переменной присваивать Rec.
 


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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:28.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.