| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Возможно ли создание такой же формы как и стандартная форма при вызове фильтра таблицы(Ctrl+F7)?
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	MBS Certified Master in Navision Developer  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			"Такой же" - это чтобы можно было выбрать, какое поле в левую часть зафигачить?  
		
		
		
		
		
		
			  Тогда, наверное, с помощью таблички Fields можно.
		
				__________________ 
		
		
		
		
	"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Предлагаю посмотреть в сторону использования стандартной закладки с фильтрами в реквест-форме отчета. 
		
		
		
		
		
		
		
	В некоторых случаях вполне годится вместо такой новой формы.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Дуд, с левой частью мне все ясно, я не могу понять каким образом значения в правой задавать, как этот текстбокс определить. 
		
		
		
		
		
		
			Wizard, не пойдет, аляповато, но ес-сно проще. 
				__________________ 
		
		
		
		
	MBS Certified Master in Navision Developer  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А в чем именно проблема?
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А проблема видимо в том, чтобы программно менять в текстбоксе формат ввода (как минимум). А как максимум - чтобы была полная уверенность, что ты редактируешь число, дату, код или текст
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	С уваженем, rootadmin  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Проблема в том, что не могу понять каким образом определить СоусЭкспрешн для правой части. Чтоб туда, соответственно полям, ставить значения фильтра. И потом всю эту фигню передать надо будет в функцию (но это не проблема). Вся эта штука с фильтрами необходима для оптимизации работы, т.к. стандартная фильтрация сильно тормозит. Конечно, я могу сделать тупо форму как в отчетах, но хотца однообразия в стиле Navision.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	MBS Certified Master in Navision Developer  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Наверное полной аналогии не получится. Хотя бы потому, что если связь с таблицей есть - выводится лукапная стрелочка. Если дата или число  - не выводится. Либо создвать дополнительную таблицу с нужными полями и связями и т.д. (под нашу таблицу), делать ее темповой и с ней уже работать.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	С уваженем, rootadmin  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			может всё таки поделишься своей идеей? 
		
		
		
		
		
		
		
	для чего эта форма нужна? что такое "сильно тормозит фильтрация"? может отговорю...  
		 | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Понятно. Всем спасибо. Если такую же форму не получится сделать без дополнительных таблиц, пойду другим путём. 
		
		
		
		
		
		
			to Wizard Сильно тормозит, в данном случае означает, что при наложенном стандартным способом фильтре перемещение по записям очень замедленно происходит. В моем случае уже сделана оптимизация и работает в 10, если не больше раз быстрее. Вопрос был только в организации пользовательского интерфейса. 
				__________________ 
		
		
		
		
	MBS Certified Master in Navision Developer  | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			ну так проблема-то не в способе накладывания фильтров, а в способе поиска записей... 
		
		
		
		
		
		
		
	если действительно такой выигрыш в скорости - можно переписать триггеры OnFindRecord и OnNextRecord  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо, я об этом не думал, надо будет посмотреть. Но проблема все-таки в способе наложения фильтра. В стандартном варианте он явно накладывается на мою основную таблицу. У меня же на основании другой таблицы маркируются записи в основной таблице и, соответственно, в форме показываются только промаркированные.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	MBS Certified Master in Navision Developer  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			т.е. я так понимаю, что в этой основной таблице есть какое-то поле (несколько), при наложении фильтра на которое поиск записей долгий, и есть обходной способ реализации этого фильтра. 
		
		
		
		
		
		
		
	Но тем не менее хочется сохранить пользовательскую функциональность наложения фильтра на любое поле. Ну так ровно это и надо сделать в упомянутых мной триггерах. Сложности там особой нет, однако если нет опыта - понадобится некоторая настойчивость и аккуратность. и ещё, к слову... отображение маркированных записей работает быстро только при сортировке по первичному ключу, в связи с чем рекомендую не маркировать записи, а во временную таблицу их собирать (если только их не слишком много)  | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Че-то совсем туплю к вечеру... 
		
		
		
		
		
		
			Возвращаясь к форме: а нельзя ручками написать лукап, в поле соурсэкспрешн - текстовый, при лукапе класть туда FORMAT, а потом, ориентируясь на тип поля (он есть в Fields) разбирать его как надо? 
				__________________ 
		
		
		
		
	"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери  | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			можно конечно написать лукап, но полной эмуляции Ctrl+F7 не получится всё равно, поскольку, как было сказано выше - способ заполнения поля сильно зависит от самого этого поля - от типа данных, от описания реляций, от триггеров его обработки и т.п. 
		
		
		
		
		
		
		
	ну нет возможности на лету подменить SourceExpression в колонке.. как, например, комбобокс для Option сделать на текстовом сурсе?  | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Полной - нет  
		
		
		
		
		
		
			![]() Но до некоторой степени извратиться можно... Типа например сделать не одно, а пять полей и делать видимым нужное в зависимости от типа (текст, код, дата, интегер, риал)... Или еще как извратнуться... Но вообще изврат конечно  
		
				__________________ 
		
		
		
		
	"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери  | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Если использовать вышеупомянутые тригеры, то как работать с временной таблицей? Работаю с таблицей товаров. Написал ниже приведенный код, записи из временной таблицы не отображаются. В чем ошибка? Почему у меня Found всегда нет? Не пойму, что нужно делать!   
		
		
		
		
		
		
			OnFindRecord <div class='CALtop'>C/AL</div><div class='CAL'> IF (Условие для создания вр.табл.) THEN BEGIN TempItem.COPY(Rec); Found := TempItem.FIND(Which); IF Found THEN Rec := TempItem; EXIT(Found); END ELSE EXIT(FIND(Which));</div> OnNextRecord <div class='CALtop'>C/AL</div><div class='CAL'> IF (Условие для создания вр.табл.) THEN BEGIN TempItem.COPY(Rec); ResultSteps := TempItem.NEXT(Steps); IF ResultSteps <> 0 THEN Rec := TempItem; EXIT(ResultSteps); END ELSE EXIT(NEXT(Steps)); </div> 
				__________________ 
		
		
		
		
	MBS Certified Master in Navision Developer  | 
| 
	
 | 
| 
			
			 | 
		#18 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Роман, Ваш код, касающийся триггеров получения данных, выглядит вполне работоспособным. Думаю, дело в наполнении временной таблицы. 
		
		
		
			Я набросал примерчик, в котором демонстрируется подмена фильтра по полю "Комплект" в справочнике товаров. Код: OnFindRecord(Which : Text[1024]) : Boolean
IF GETFILTER("Bill of Materials") = FORMAT(TRUE) THEN BEGIN
 IF NOT BOMcollected THEN
    CollectBills();
 TempItem.COPY(Rec);
 Found := TempItem.FIND(Which);
 IF Found THEN
   Rec := TempItem;
 EXIT(Found);
END ELSE
 EXIT(FIND(Which));
OnNextRecord(Steps : Integer) : Integer
IF GETFILTER("Bill of Materials") = FORMAT(TRUE) THEN BEGIN
 TempItem.COPY(Rec);
 ResultSteps := TempItem.NEXT(Steps);
 IF ResultSteps <> 0 THEN
   Rec := TempItem;
 EXIT(ResultSteps);
END ELSE
 EXIT(NEXT(Steps));
//---------------------------------------
CollectBills()
 IF BOM.FIND('-') THEN REPEAT
    ParentItem.GET(BOM."Parent Item No.");
    TempItem := ParentItem;
    TempItem."Search Description" := 'Temp '+TempItem."No.";
    TempItem.INSERT;
    BOM."Line No." := 2147483647; //Maximum Integer
 UNTIL BOM.NEXT=0;
 BOMcollected := TRUE; | 
| 
	
 | 
| 
			
			 | 
		#19 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			to Wizard 
		
		
		
		
		
		
			Спасибо большое за пример! Исходя из него буду эксперементировать со своей формой 
				__________________ 
		
		
		
		
	MBS Certified Master in Navision Developer  | 
| 
	
 | 
| 
			
			 | 
		#20 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Круто! Работает даже быстрее, чем по промаркированным записям. Правда глючит иногда при смене фильтра, но с этим я разберусь.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	MBS Certified Master in Navision Developer  | 
| 
	
 |