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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.02.2014, 07:05   #1  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Проблема с временной таблице в lookup
Добрый день!
Есть код, который должен при некотором условии выполнять вставку данных в таблицу, которая хранится на сервере, НО которую в коде я делаю временной. После этого, эти данные должны выпадать в lookup'е
X++:
public void lookup()
{
    TableObj              tempTable1, table1;
    SysTableLookup              sysTableLookup;


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

    sysTableLookup = SysTableLookup::newParameters(tablenum(TableObj), this);

    //Добавляем столбцы
    sysTableLookup.addLookupfield(fieldnum(TableObj, CustAccount));
    sysTableLookup.addLookupfield(fieldnum(TableObj, Name));
    sysTableLookup.addLookupfield(fieldnum(TableObj, Desc));



    ttsbegin;
    //перебираем
    while select * from table1
        order by CustAccount desc
        {
                if (table1.CustAccount == 'Target')
                {
                    
                    tempTable1.data(table1);
                    tempTable1.insert();
                    
                }

        }
     ttscommit;

    //BP Deviation Documented
    sysTableLookup.parmTmpBuffer(tempTable1);
    sysTableLookup.performFormLookup();

}
На условие выборки не смотрите, оно схематично (это чтобы вы мне через Query не советовали делать, в реальности выборка сложнее)

Так вот: проблема в том, что когда данные для выборки и вставки есть - они выводятся спокойно.
Но вот когда их нет - выводится полный набор столбцов из таблицы в БД. А должно быть по идее то пусто! В чем причина? как это исправить?


MS DAX 2009
Старый 14.02.2014, 07:23   #2  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
305 / 137 (5) +++++
Регистрация: 21.04.2008
this.text(''); в самом началу лукапа не спасет?

А где у вас передача временной в sysTableLookup? Я бы так делал:
X++:
this.text('');
tempTable1.setTmp();
... //заполнение временной
sysTableLookup = SysTableLookup::construct();
sysTableLookup.parmCallingControl(this);
sysTableLookup.parmTmpBuffer(tempTable1);
sysTableLookup.parmTableId(tableNum(TableObj));
sysTableLookup.addLookupfield(fieldNum(TableObj, CustAccount), true);
sysTableLookup.performFormLookup();
Старый 14.02.2014, 07:32   #3  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Цитата:
Сообщение от Player1 Посмотреть сообщение
this.text(''); в самом началу лукапа не спасет?

А где у вас передача временной в sysTableLookup?
Нет не спасло. Код не сработал.

Передача ниже:
X++:
    //BP Deviation Documented
    sysTableLookup.parmTmpBuffer(tempTable1);
    sysTableLookup.performFormLookup();
Старый 14.02.2014, 08:08   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Походу косяк в реализации SysTableLookup
Проверка на временность таблицы там выглядит следующим образом
X++:
public FormRun formRun()
{
...
if (tmpBuffer)
    {
        formDataSource.init();
        //BP deviation documented
        formDataSource.cursor().setTmp();       // if using non-temp table in tmp mode
        formDataSource.cursor().setTmpData(tmpBuffer);
    }
...
}
Естественно когда данных в курсоре нет, это равносильно тому что он NULL.

Должно заработать, если подкорректировать условие на что-то типа
X++:
if (tmpBuffer.TableId != TableNum(Common))

Последний раз редактировалось S.Kuskov; 14.02.2014 в 08:11.
За это сообщение автора поблагодарили: Oz (1), trud (2), gl00mie (3), Kabardian (4), Vasiliusis (1).
Теги
lookup, null, баг, временная таблица

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема со своим lookup-ом sweeper DAX: Программирование 9 15.01.2009 18:38
Подскажите в чем проблема у Lookup AndrianG DAX: Программирование 2 06.01.2009 17:38
Lookup по временной таблице gefr DAX: Программирование 9 01.11.2007 22:02
Отчет по временной таблице DreamCreator DAX: Программирование 1 26.11.2004 10:03
Проблема с поиском во временной таблице JohNick DAX: Программирование 0 26.05.2004 10:56
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 17:04.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.