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 |
|