|  08.07.2008, 14:39 | #1 | 
| Участник | 
			
			Есть такая форма 7139(Бюджет Продаж Обзор), когда мы выбираем Показывать в Строках, допустим Товар, То у нас вываливаеться список всех товаров!!!! Как мне наложить фильтр, чтобы вываливася писок товаров, которые указаны в Таблице 7134(поле ТОВАР НОМЕР)????? Я так понимаю, что пре выборе Товар, идет обновления Формы, и происходит поиск всех товаров по событию OnFindRecord и OnNExtRecord, которые в свою очередь оброшаются в кодеюнит: 7130.. в функции FindRec и соответственно NextRec... теперь как быть дальше???? что нужно ???? | 
|  | 
|  08.07.2008, 14:57 | #2 | 
| Участник | 
			
			Ну это вам надо править функции кодьюнита Item Budget Management чтобы они фильтровали только то что есть в вашем бюджете.
		 
				__________________ Want to believe... | 
|  | 
|  08.07.2008, 15:20 | #3 | 
| Участник | 
			
			Не могу понять каким здесь можно образом сделать фильтр на таблицу Item: FINDREC: Код:   DimOption::Item:
	BEGIN
	  Item."No." := DimCodeBuf.Code;
	  IF ItemFilter <> '' THEN
		Item.SETFILTER("No.",ItemFilter);
	  Found := Item.FIND(Which);
	  IF Found THEN
		CopyItemToBuf(Item,DimCodeBuf);
	END;Код:   DimOption::Item:
	BEGIN
	  Item."No." := DimCodeBuf.Code;
	  IF ItemFilter <> '' THEN
		Item.SETFILTER("No.",ItemFilter);
		ResultSteps := Item.NEXT(Steps);
	  IF ResultSteps <> 0 THEN
		CopyItemToBuf(Item,DimCodeBuf);
	END; | 
|  | 
|  08.07.2008, 17:44 | #4 | 
| Участник | 
			
			Придется формировать временную таблицу Item на основе записей в 7134 и на Find и Next тащить записи из нее.
		 | 
|  | 
|  08.07.2008, 22:33 | #5 | 
| Участник | 
			
			можно сделать аналог функции copyItemtoBuf назвать например CopyItemBudgetToBuf  в которой уже пробегать по строчкам бюджета и вставлять соответвующие записи в буфер.
		 
				__________________ Want to believe... | 
|  | 
|  09.07.2008, 12:03 | #6 | 
| Участник | 
			
			DA_NEAL, не могу реализовать... Что не правильно? Код: WITH DimCodeBuf DO BEGIN
  INIT;
IF ItemBudgetEntry.FIND('-') THEN REPEAT
	 IF ItemBudgetEntry."Item No." = Item."No." THEN BEGIN
  Code := Item."No.";
  Name := Item.Description;
	 END;
UNTIL ItemBudgetEntry.NEXT =0;
END; | 
|  | 
|  09.07.2008, 14:28 | #7 | 
| Участник | 
			
			Тут похитрее надо как то похоже   . И не в этом месте. 
				__________________ Want to believe... | 
|  | 
|  09.07.2008, 15:03 | #8 | 
| Участник | 
			
			как и сказал rmv думаю надо сделать следующее: 1. Завести глобальную переменную tmpItem в кодюните Item Budget Management 2. В одной из функций вызываемых из формы (думаю ItemBudgetManagement.ValidateLineDimCode и возможно на BudgetNameSelection) встроить код который по вашей логике пробегается по ItemBudgetEntry и вставляет записи в таблицу tmpItem. 3. в функция FindRec и NextRec заменить переменную Item в коде на tmpItem FindRec DimOption::Item: BEGIN tmpItem."No." := DimCodeBuf.Code; IF ItemFilter <> '' THEN tmpItem.SETFILTER("No.",ItemFilter); Found := tmpItem.FIND(Which); IF Found THEN CopyItemToBuf(tmpItem,DimCodeBuf); END; NextRec DimOption::Item: BEGIN tmpItem."No." := DimCodeBuf.Code; IF ItemFilter <> '' THEN tmpItem.SETFILTER("No.",ItemFilter); ResultSteps := tmpItem.NEXT(Steps); IF ResultSteps <> 0 THEN CopyItemToBuf(tmpItem,DimCodeBuf) END; 
				__________________ Want to believe... | 
|  | 
|  16.07.2008, 14:11 | #9 | 
| Участник | 
			
			пишу в ItemBudgetManagement.ValidateLineDimCode:  tmpItem.DELETEALL; IF LineDimOption=LineDimOption::Item THEN BEGIN ItemBudgetEntry.SETFILTER("Budget Name",ItemBudgetName.Name); IF ItemBudgetEntry.FIND('-') THEN REPEAT Item.SETFILTER("No.",ItemBudgetEntry."Item No."); IF Item.FIND('-') THEN BEGIN tmpItem:=Item; tmpItem.INSERT; END; UNTIL ItemBudgetEntry.NEXT=0; END; говорит, что Товар Номер такой уже существует! | 
|  | 
|  16.07.2008, 14:28 | #10 | 
| Участник |  а причем тут табличка Item если мы вставляем в tmpItem  Не надо так делать TmpItem = Item. Вот код попроще: IF LineDimOption = LineDimOption::Item THEN BEGIN ItemBudgetEntry.RESET; IF ItemBudgetEntry.FINDFIRST THEN REPEAT Item.GET(ItemBudgetEntry."Item No."); tmpItem."No." := ItemBudgetEntry."Item No."; tmpItem.Description := Item.Description; IF tmpItem.INSERT THEN; UNTIL ItemBudgetEntry.NEXT = 0; END; 
				__________________ Want to believe... | 
|  |