AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.10.2007, 14:04   #1  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Как сделать хитрый лукап
Есть проблема не знаю как решить. Может кто-то знает.
На форме есть контрол. Строковый.
У него перекрыт лукап. Суть перекрытия создать лукап в зависимости от названия.
Т.е.
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();
}
То всё работает только на тех EDT. У которых есть relation.
Но если у расширенного типа нет relation. Он ничего не открывает. Как обмануть Axapty.
1) Есть таблица без relation. ->Поле->EDT без relation. Лукапа нет.
2) Таблица с relation->Поле->EDT без relation. Лукап есть.
Вот хотелось бы чтоб лукап не с расширенного типа создавался, а с поля таблицы. Т.е. учитывался и EDT и релайшен поля (fieldnum) на основе которого создаётся лукап. Ведь когда открываем паспортом записи эти две информации складываются.
Старый 08.10.2007, 14:28   #2  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
странно как то вы пытаетесь организовать два лукапа, а почему бы не написать 2-е лукапные формы и в зависимости от условий выбирать их.
Старый 08.10.2007, 14:30   #3  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
ну вот что то типа вот этого
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  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Спасибо. Но это жизнь мне не облегчет.
Есть таблица1.
Вней 30 строк. Каждая строка это фильтр и группировка в запросе.
Есть результирующая таблица2.
Вней 30 столбиков.
Так вот хочу чтоб если через обозреватель этой таблицы2 лукап открывается, то точно такой же открывался на форме таблицы1.
Т.е 25 столбцов могут быть и так с лукапами. А 5 без. Настраиваем relation на этой таблице. Всё путём. Обозреватель работает.
Но в лукап наш эта информация не попадает. А как сделать чтоб попала. Вот и вожусь.
Старый 08.10.2007, 15:02   #5  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Цитата:
Всё путём. Обозреватель работает.
Но в лукап наш эта информация не попадает. А как сделать чтоб попала. Вот и вожусь.
так в чем причина почему не попадает а все путем?
Старый 08.10.2007, 15:13   #6  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от konopello Посмотреть сообщение
так в чем причина почему не попадает а все путем?
У нас выходит две таблицы. Одна вертикальная, другая горизонтальная.
Т.е. то что у первой столбцы, у второй строка.
Пример на 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  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Цитата:
Мне надо чтоб если лукапы на 1 таблицы работали нормально.
если типы данных основаны на правильных EDT и на таблице правильно прописаны связи, то и лукапы будут по вашему работать нормально.
Цитата:
Чтоб по клику на столбце Value во второй таблице выкидывались аналогичные лукапы.
а тут надо использовать Relation поле фиксировано, а не название поля и по идее все должно получится.
Старый 08.10.2007, 15:42   #8  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Ну может так будет понятнее.
У группы договоров один лукап, у рег номера другой. Это вертикальная таблица.
Щас они подтягиваются из расширенных типов другой горизонтальной таблицы. Мне нужно чтоб подтягивались не только EDT, но и relation на аналогичные поля.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.JPG
Просмотров: 578
Размер:	118.6 Кб
ID:	2975  
Старый 08.10.2007, 15:51   #9  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Поле название я предлагаю сделать ENUM и под него прописать Relation, типа элемент 1 - ItemId, 2 - RContractCode и т.д. но это плохо только тем что ограничение = 255
За это сообщение автора поблагодарили: miklenew (1).
Старый 08.10.2007, 16:43   #10  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от konopello Посмотреть сообщение
Поле название я предлагаю сделать ENUM и под него прописать Relation, типа элемент 1 - ItemId, 2 - RContractCode и т.д. но это плохо только тем что ограничение = 255
Не это ещё геморойней лучше уж создать наследники от расширенных типов данных у которых нет relation и уже на них создать relation. И поля во второй тоблицы создавать уже на основе их.
konopello спасибо за участие.
Старый 08.10.2007, 17:15   #11  
Peter Savintsev is offline
Peter Savintsev
Участник
 
246 / 119 (4) +++++
Регистрация: 14.12.2001
Если я правильно понял задачу, то аналогичное поведение реализовано в стандартной форме фильтра. Посмотрите форму SysQueryForm, класс SysLookup, особенно метод SysLookup::lookupRange()
За это сообщение автора поблагодарили: miklenew (1).
Старый 08.10.2007, 17:28   #12  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от Peter Savintsev Посмотреть сообщение
Если я правильно понял задачу, то аналогичное поведение реализовано в стандартной форме фильтра. Посмотрите форму SysQueryForm, класс SysLookup, особенно метод SysLookup::lookupRange()
Очень похоже что это оно. Покрайней мере работает правильно. Осталось только к своей задаче подцепить. Спасибо.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как сделать фильтр по группе пользователей? Zabr DAX: Программирование 12 08.04.2009 11:40
Заумный отчет по ОС, как сделать? Бриллиантик DAX: Программирование 13 09.07.2008 16:36
Как сделать лукап со своими значениями? Beast-L DAX: Программирование 2 21.12.2007 14:37
лукап-форма с доп. фильтром patron DAX: Программирование 10 30.03.2007 12:19
Как лучше сделать? Smith DAX: Программирование 7 12.10.2004 13:57

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:25.