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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.02.2014, 07:01   #1  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Lookup с сотрудниками конкретного подразделения
Добрый день! Задача такая: нужно в лукапе вывести только тех сотрудников, которые работают в определенном подразделении. Написан такой код

X++:
    EmplTable                   tempEmplTableLookup, employees;
    DirPartyTable               emplNames;
    RpayHrmOrganization         HrmOrganization;

    SysTableLookup              sysTableLookup;

    Query                       query = new Query();
    QueryBuildDataSource        queryBDS;
    ;


    //Делаем таблицу временной
    tempEmplTableLookup.setTmp();

    //Выбираем из таблицы рейсов
    sysTableLookup = SysTableLookup::newParameters(tablenum(EmplTable), this);

    //Добавляем столбцы
    sysTableLookup.addLookupfield(fieldnum(EmplTable, EmplId));
    sysTableLookup.addLookupfield(fieldnum(EmplTable, Del_Name));
    sysTableLookup.addLookupfield(fieldnum(EmplTable, Title));


    //Перебираем сотрудников и ищем там тех, кто в ЛО. При этом, они должны быть не уволенными
    ttsbegin;
    while select * from employees join emplNames join HrmOrganization
        where employees.PartyId == emplNames.PartyId
        && HrmOrganization.hrmOrganizationId == employees.PayHRMOrganizationId_RU
        && !employees.PayResignedDate_RU
        {
            if (HrmOrganization.parentOrganizationId like 'ЛО*')
            {
                tempEmplTableLookup.clear();
                tempEmplTableLookup.data(employees);
                tempEmplTableLookup.DEL_Name = employees.name();
                tempEmplTableLookup.insert();
            }
            
        }
    ttscommit;

    //Добавляем сотрировку
    queryBDS = query.addDataSource(tablenum(EmplTable));
    queryBDS.addSortField(fieldnum(EmplTable, DEL_Name), SortOrder::Ascending);
    sysTableLookup.parmQuery(query);


    //BP Deviation Documented
    sysTableLookup.parmTmpBuffer(tempEmplTableLookup);
    sysTableLookup.performFormLookup();
При выполнении дает ошибку: Невозможно создать запись в Окружение (RHRMVirtualNetworkTable). Респондент: 6666, 6666.
Запись уже существует.


Что это значит? Может как-то по-другому можно реализовать данную операцию

MS DAX 2009
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Kashperuk Ivan: Lookup form returning more than one value Blog bot DAX Blogs 0 29.01.2010 18:05
palleagermark: Use keyboard lookup in Product Builder enumerated fields Blog bot DAX Blogs 0 18.08.2009 23:06
gatesasbait: How to define a custom lookup form for an extended datatype Blog bot DAX Blogs 0 09.07.2008 22:05
Создание Lookup формы Maxim Gorbunov DAX: База знаний и проекты 9 26.06.2007 16:44
Динамические Lookup формы. Андрей Василюк DAX: База знаний и проекты 0 07.12.2001 07:07
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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