|  08.10.2007, 14:04 | #1 | 
| Участник | Как сделать хитрый лукап 
			
			Есть проблема не знаю как решить. Может кто-то знает. На форме есть контрол. Строковый. У него перекрыт лукап. Суть перекрытия создать лукап в зависимости от названия. Т.е. Field1 Field2 SalesId Лукап SalesId ItemId Лукап ItemId Field2 просто строковый. Если. подкидываю совсем другие EDT. И вызываю лукап. X++: public void lookup() { object formBuildControl; ; //создание dictfieldCurr ------------------ formBuildControl = element.GetformBuildControl(SSLDialogForms::type2formControlType(dictfieldCurr.basetype())); formBuildControl.extendedDataType(dictfieldCurr.typeId()); formBuildControl.lookup(); } Но если у расширенного типа нет relation. Он ничего не открывает. Как обмануть Axapty. 1) Есть таблица без relation. ->Поле->EDT без relation. Лукапа нет. 2) Таблица с relation->Поле->EDT без relation. Лукап есть. Вот хотелось бы чтоб лукап не с расширенного типа создавался, а с поля таблицы. Т.е. учитывался и EDT и релайшен поля (fieldnum) на основе которого создаётся лукап. Ведь когда открываем паспортом записи эти две информации складываются. | 
|  | 
|  08.10.2007, 14:28 | #2 | 
| SAP | 
			
			странно как то вы пытаетесь организовать два лукапа, а почему бы не написать 2-е лукапные формы и в зависимости от условий выбирать их.
		 | 
|  | 
|  08.10.2007, 14:30 | #3 | 
| SAP | 
			
			ну вот что то типа вот этого  X++: switch (ctrlCustVendACType.selection()) { case CustVendACType::Cust : RContractTable::lookupRContractAccount(this, RContractPartnerType::Cust, ctrlRContractCode.text(), ctrlCustVendAC.text()); break; case CustVendACType::Vend : RContractTable::lookupRContractAccount(this, RContractPartnerType::Vend, ctrlRContractCode.text(), ctrlCustVendAC.text()); break; default: throw error(error::wrongUseOfFunction(funcname())); } | 
|  | 
|  08.10.2007, 14:54 | #4 | 
| Участник | 
			
			Спасибо. Но это жизнь мне не облегчет. Есть таблица1. Вней 30 строк. Каждая строка это фильтр и группировка в запросе. Есть результирующая таблица2. Вней 30 столбиков. Так вот хочу чтоб если через обозреватель этой таблицы2 лукап открывается, то точно такой же открывался на форме таблицы1. Т.е 25 столбцов могут быть и так с лукапами. А 5 без. Настраиваем relation на этой таблице. Всё путём. Обозреватель работает. Но в лукап наш эта информация не попадает. А как сделать чтоб попала. Вот и вожусь. | 
|  | 
|  08.10.2007, 15:02 | #5 | 
| SAP | Цитата: 
		
			Всё путём. Обозреватель работает. Но в лукап наш эта информация не попадает. А как сделать чтоб попала. Вот и вожусь. | 
|  | 
|  08.10.2007, 15:13 | #6 | 
| Участник | 
			
			У нас выходит две таблицы. Одна вертикальная, другая горизонтальная. Т.е. то что у первой столбцы, у второй строка. Пример на 3 значения. Таблица1 Столбец1 ItemId Столбец2 AccountNum Столбец3 RContractCode Таблица2 Столбец1 Name Столбец2 Value Первая пустая до расчёта. Вторая. 1 Строка Name ItemId, Value по умолчаниб пусто 2 Строка Name AccountNum, Value по умолчаниб пусто 3 Строка Name RContractCode, Value по умолчаниб пусто Мне надо чтоб если лукапы на 1 таблицы работали нормально. Чтоб по клику на столбце Value во второй таблице выкидывались аналогичные лукапы. | 
|  | 
|  08.10.2007, 15:29 | #7 | 
| SAP | Цитата: 
		
			Мне надо чтоб если лукапы на 1 таблицы работали нормально.
		
	 Цитата: 
		
			Чтоб по клику на столбце Value во второй таблице выкидывались аналогичные лукапы.
		
	 | 
|  | 
|  08.10.2007, 15:42 | #8 | 
| Участник | 
			
			Ну может так будет понятнее. У группы договоров один лукап, у рег номера другой. Это вертикальная таблица. Щас они подтягиваются из расширенных типов другой горизонтальной таблицы. Мне нужно чтоб подтягивались не только EDT, но и relation на аналогичные поля. | 
|  | 
|  08.10.2007, 15:51 | #9 | 
| SAP | 
			
			Поле название я предлагаю сделать ENUM и под него прописать Relation, типа элемент 1 - ItemId, 2 - RContractCode и т.д. но это плохо только тем что ограничение = 255
		 | 
|  | |
| За это сообщение автора поблагодарили: miklenew (1). | |
|  08.10.2007, 16:43 | #10 | 
| Участник | Цитата: konopello спасибо за участие. | 
|  | 
|  08.10.2007, 17:15 | #11 | 
| Участник | 
			
			Если я правильно понял задачу, то аналогичное поведение реализовано в стандартной форме фильтра. Посмотрите форму SysQueryForm, класс SysLookup, особенно метод SysLookup::lookupRange()
		 | 
|  | |
| За это сообщение автора поблагодарили: miklenew (1). | |
|  08.10.2007, 17:28 | #12 | 
| Участник | 
			
			Очень похоже что это оно. Покрайней мере работает правильно. Осталось только к своей задаче подцепить. Спасибо.
		 | 
|  | 
|  | 
|  Похожие темы | ||||
| Тема | Ответов | |||
| Как сделать фильтр по группе пользователей? | 12 | |||
| Заумный отчет по ОС, как сделать? | 13 | |||
| Как сделать лукап со своими значениями? | 2 | |||
| лукап-форма с доп. фильтром | 10 | |||
| Как лучше сделать? | 7 | |||
| 
 |