|
![]() |
#1 |
Участник
|
прежде всего необходимо начать с чтения книжки по программированию в X++. после многие вопросы отпадут и код у вас будет гораздо короче и появится вопрос отображения на форме данных из временной таблицы
|
|
|
За это сообщение автора поблагодарили: axotnik88 (1). |
![]() |
#2 |
Участник
|
если честно времени на чтение книги нет. Проект срочный
![]() ![]() |
|
![]() |
#3 |
Участник
|
Данный пример будет работать при условии, что у вас Tmp_DeliverShipProducts_ZTR - название таблицы, привязанной к одноименному источнику данных на вашей форме.
В начале метода объявите новую переменную с типом вашей временной таблицы: X++: public void init() { Tmp_DeliverShipProducts_ZTR tmp; //Дальше идет ваш код .................... 1) в самом начале добавьте строку X++: tmp.clear(); 3) в конце добавьте строку X++: tmp.insert(); X++: Tmp_DeliverShipProducts_ZTR.setTmpData(tmp);
Tmp_DeliverShipProducts_ZTR_DS.executeQuery(); //это внутри init() необязательно, но на всякий случай Последний раз редактировалось Ace of Database; 26.05.2015 в 17:08. |
|
![]() |
#4 |
Участник
|
выдает ошибку "[Microsoft][SQL Native Client]Invalid cursor state" когда пытается выполнить while (myResult.next())
![]() а так же ругается на X++: Tmp_DeliverShipProducts_ZTR_DS.setTmpData(tmp); |
|
![]() |
#5 |
Участник
|
Перепутал, надо написать
X++: Tmp_DeliverShipProducts_ZTR.setTmpData(tmp); Tmp_DeliverShipProducts_ZTR_DS.executeQuery(); |
|
![]() |
#6 |
Участник
|
Самый тупой вариант в вашем случае, это сделать временную таблицу в Аксапте постоянной.
Свойство SaveDataPerCompany выставить в No. Написать на SQL хранимую процедуру, которая ее очищает и заполняет заново. А потом из Аксапты просто открыть форму, и она безо всякого кода вам отобразит данные. При этом надо позаботиться заполнением поля RecId уникальными значениями из хранимой процедуры. |
|
|
За это сообщение автора поблагодарили: Emka (1). |
![]() |
#7 |
Участник
|
теперь на функцию не ругается)
Думала о таком варианте, но такое у нас под запретом)) |
|
![]() |
#8 |
NavAx
|
Цитата:
Сообщение от Ace of Database
![]() Самый тупой вариант в вашем случае, это сделать временную таблицу в Аксапте постоянной.
Свойство SaveDataPerCompany выставить в No. Написать на SQL хранимую процедуру, которая ее очищает и заполняет заново. А потом из Аксапты просто открыть форму, и она безо всякого кода вам отобразит данные. При этом надо позаботиться заполнением поля RecId уникальными значениями из хранимой процедуры.
__________________
Isn't it nice when things just work? |
|
![]() |
#9 |
Участник
|
Цитата:
PS: Код можно смело перенести в тему "The daily Axapta WTF". |
|
![]() |
#10 |
Участник
|
Цитата:
X++: server static ResultSet callSqlOnServer_ZTR(Statement _stmt, str _sql, boolean _update = true) { ResultSet rs = null; ; new SqlStatementExecutePermission(_sql).assert(); if (_update) _stmt.executeUpdate(_sql); else rs = _stmt.executeQuery(_sql); CodeAccessPermission::revertAssert(); return rs; } |
|
![]() |
#11 |
Участник
|
callSqlOnServer_ZTR прекрасен. Особенно если учесть, что _stmt создан на форме.
|
|
![]() |
#12 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Ace of Database (2). |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|