| 
	 | 
| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			LookUp из двух таблиц ...
			 
			
			Здраствуйте ! 
		
		
		
		
		
		
		
	Незнаю , можно ли так или нет . Нужно в lookup'е отображать данные из двух таблиц . Вот исходник того , чего я добиваюсь : Код: static void lookupSalesLineRecs(FormStringControl _ctrl, SalesId _salesId, ItemId _itemId)
{
    SysTableLookup          sLookup = SysTableLookup::newParameters(tableNum(SalesLine),_ctrl);
    Query                   query = new Query();
    QueryBuildDataSource    qInvD;
    QueryBuildRange         qRange1;
    QueryBuildRange         qRange2;
    QueryBuildDataSource    qb;
    ;
    qb      = query.addDataSource(tableNum(SalesLine));
    qRange1 = qb.addRange(fieldNum(SalesLine,SalesId));
    qRange2 = qb.addRange(fieldNum(SalesLine,ItemId));
    qRange1.value(queryvalue(_salesId));
    qRange2.value(queryvalue(_itemId));
    qInvD = qb.addDataSource(tablenum(InventDim));
    qInvD.joinMode(JoinMode::ExistsJoin);
    qInvD.relations(true);
    sLookup.addLookupfield(fieldNum(SalesLine,ItemId));
    sLookup.addLookupfield(fieldNum(SalesLine,QtyOrdered));
    sLookup.addLookupfield(fieldNum(InventDim,configId));
    sLookup.addLookupfield(fieldNum(SalesLine,RecId),true);
    sLookup.parmQuery(query);
    sLookup.performFormLookup();
}С уважением , Римантас  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Во-первых такой тип лукапа (основаный на SysTableLookup) не может работать с несколькими таблицами. 
		
		
		
		
		
		
		
		
			Во-вторых Exists Join не должен возвращать значения присоединенной таблицы а вот еще ссылка: Lookup и Query Последний раз редактировалось Roman777; 13.11.2006 в 09:43.  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Roman777
			 
 
			Во-первых такой тип лукапа (основаный на SysTableLookup) не может работать с несколькими таблицами. 
		
	Во-вторых Exists Join не должен возвращать значения присоединенной таблицы а вот еще ссылка: Lookup и Query    . Спасибо за ответ .Римантас  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вот это поможет.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Андрей.  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Dron AKA andy
			 
 
			Вот это поможет. 
		
	  . Вот ещё одна небольшая проблема - Сформировал лукап :Код: static void lookupSalesLineRecs(FormStringControl _ctrl, SalesId _salesId, ItemId _itemId)
{
    TableLookup_RU          sLookup = new TableLookup_RU();
    Query                   query = new Query();
    QueryBuildDataSource    qb = query.addDataSource(tableNum(SalesLine));
    QueryBuildRange         qRange1;
    QueryBuildRange         qRange2;
    FormRun                 lookupForm,ownerForm;
    ;
    sLookup.addLookupfield(fieldNum(SalesLine,ItemId));
    sLookup.addLookupfield(fieldNum(SalesLine,QtyOrdered));
    sLookup.addLookupfield(FormControlType::STRING,false, tableMethodStr(SalesLine,InvDimConfig));
    sLookup.addLookupfield(fieldNum(SalesLine,RecId),true);
    sLookup.parmTableId(tableNum(SalesLine));
    sLookup.parmCallingControl(_ctrl);
    qRange1 = qb.addRange(fieldNum(SalesLine,SalesId));
    qRange2 = qb.addRange(fieldNum(SalesLine,ItemId));
    qRange1.value(queryvalue(_salesId));
    qRange2.value(queryvalue(_itemId));
    sLookup.parmQuery(query);
    sLookup.performFormLookup();
}Спасибо за помочь ! Римантас  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вообще-то лукап отрабатывает на вполне конкретном контроле и по умолчанию изменяет значение только в одной записи. Чтобы менялись значения во всех строках - это надо дополнительно постараться... 
		
		
		
		
		
		
			Мне кажется, что-то вы не договариваете... А не edit ли method привязан к контролу, на котором лукап вызывается? 
				__________________ 
		
		
		
		
	Андрей.  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Dron AKA andy
			 
 
			Вообще-то лукап отрабатывает на вполне конкретном контроле и по умолчанию изменяет значение только в одной записи. Чтобы менялись значения во всех строках - это надо дополнительно постараться... 
		
	Мне кажется, что-то вы не договариваете... А не edit ли method привязан к контролу, на котором лукап вызывается? Андрей , я доделаю InventJournalTransfer форму . Весь lookup метод - static void lookupSalesLineRecs(FormStringControl _ctrl, SalesId _salesId, ItemId _itemId) - создан у таблицы InventJournalTrans . Етот метод вызываю в datasource формы InventJournalTransfer , у поля SalesLineRecId . И здесь только есть метод lookup . Простите , я новичок - нечто похоже я увидел в форме InventJournalBom , там lookup создан для InventTransIdFather поля . Но там ещё есть и modified метод . Так я нечто похоже и попробывал создать . Наверное будет надо експериментировать и с Grid'ом ... С уважением , Римантас  | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Для простого выбора значения поля через лукап перекрывать метод modified() не нужно (только lookup, что вы и сделали), и с Grid`ом экспериментировать не стоит - дело не в нем.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Андрей.  | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
   . Посмотрел я на свой grid с утра с свежими глазами - ну что я здесь сделаю - SalesLineRecId то integer тип и я стараюсь возвратит ето на контроль StringEdit ...   . Ротозейная ошибка ... Поменял на IntEdit - всё идёт как надо .Я имею ещё один вопрос - как сделать , чтобы отображение информации в столбе было бы по какому то методу , а редактирование - через лукап ? Или такое в гриде невиозможно ? С уважением , Римантас  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Это делается с помощью edit-метода.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Андрей.  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Дык, в мануале-то почитай про edit и display методы... 
		
		
		
		
		
		
			Вот еще ссылка из форума: edit и display методы 
				__________________ 
		
		
		
		
	Андрей.  | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Dron AKA andy
			 
 
			Дык, в мануале-то почитай про edit и display методы... 
		
	Вот еще ссылка из форума: edit и display методы   . И спасибо за ссылку . Да ... как и всё понятно . Но вот одного недогадываюсь - вся нужна информация есть в SalesLine и InvDim , потому что они указывает какой продукт был в заказе . Я в InventJournalTrans добавил два поля - SalesId и SalesLineRecId . Операторщицы введёт данные для какого salesId идёт трансферы и для какого имеено продукта из SalesLine . Вот для етого сделал lookup . Но вот lookup возвращает RecId и контрол формы IntEdit . Вот здесь и остановилься - на какой тип менят контрол , чтобы вывести строковую информацию от SalesLine и как построит edit метод , чтобы лукап действовал ? Почему то мне никак неудаёться ето ...   Буду очень благодарен за советы ! С уважением , Римантас  | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Т.е. хочешь выбирать в лукапе одно (SalesLineRecId), а выводить другое (напр. SalesId)? Тогда есть пример (непростой), как это сделать: форма Клиенты, закладка Контакты, поле Контактное лицо.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Андрей.  | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
![]() С уважением , Римантас  | 
| 
	
 | 
| Теги | 
| lookup, systablelookup | 
| 
	
	 | 
	
			 
			Похожие темы
		 | 
	||||
| Тема | Ответов | |||
| отчёт из двух таблиц на двух листах с группировкой | 4 | |||
| Можно вывести в lookup пересечение двух query? | 14 | |||
| Невидимая связь двух таблиц в формах | 11 | |||
| Опции темы | Поиск в этой теме | 
| Опции просмотра | |
		
  |