![]() |
#1 |
Участник
|
![]()
Добрый вечер!
Есть форма. на ней в гриде должна выводиться временная таблица. Заполнение временной таблицы выполняется в методе init данной таблицы в Data Sources PHP код:
В этом для меня и загвоздка, не могу понять как занести данные в таблицу ![]() Я новичок, так что пожалуйста не судите строго ![]() |
|
![]() |
#2 |
Участник
|
прежде всего необходимо начать с чтения книжки по программированию в X++. после многие вопросы отпадут и код у вас будет гораздо короче и появится вопрос отображения на форме данных из временной таблицы
|
|
|
За это сообщение автора поблагодарили: axotnik88 (1). |
![]() |
#3 |
Участник
|
если честно времени на чтение книги нет. Проект срочный
![]() ![]() |
|
![]() |
#4 |
Участник
|
Данный пример будет работать при условии, что у вас 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. |
|
![]() |
#5 |
Участник
|
пример:
X++: while select mytable join myTable2 where myTable2.id == mytable.Id { myTmpTable.clear(); myTmpTable.Value = mytable.Value; myTmpTable.Value2 = mytable2.Value2; myTmpTable.insert(); } |
|
![]() |
#6 |
Участник
|
выдает ошибку "[Microsoft][SQL Native Client]Invalid cursor state" когда пытается выполнить while (myResult.next())
![]() а так же ругается на X++: Tmp_DeliverShipProducts_ZTR_DS.setTmpData(tmp); |
|
![]() |
#7 |
Участник
|
я знаю что можно прописать это все средствами аксапты, но в данном случае я хотела бы использовать SQL. Так как он для меня более привычен.
И как прописать весь этот селект в аксапте не представляю ![]() |
|
![]() |
#8 |
Участник
|
Перепутал, надо написать
X++: Tmp_DeliverShipProducts_ZTR.setTmpData(tmp); Tmp_DeliverShipProducts_ZTR_DS.executeQuery(); |
|
![]() |
#9 |
Участник
|
Самый тупой вариант в вашем случае, это сделать временную таблицу в Аксапте постоянной.
Свойство SaveDataPerCompany выставить в No. Написать на SQL хранимую процедуру, которая ее очищает и заполняет заново. А потом из Аксапты просто открыть форму, и она безо всякого кода вам отобразит данные. При этом надо позаботиться заполнением поля RecId уникальными значениями из хранимой процедуры. |
|
|
За это сообщение автора поблагодарили: Emka (1). |
![]() |
#10 |
Участник
|
теперь на функцию не ругается)
Думала о таком варианте, но такое у нас под запретом)) |
|
![]() |
#11 |
Участник
|
ваш проект обречен
|
|
|
За это сообщение автора поблагодарили: macklakov (0). |
![]() |
#12 |
Участник
|
Цитата:
PS: Код можно смело перенести в тему "The daily Axapta WTF". |
|
![]() |
#13 |
Участник
|
|
|
![]() |
#14 |
Участник
|
Цитата:
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; } |
|
![]() |
#15 |
Участник
|
|
|
![]() |
#16 |
Участник
|
callSqlOnServer_ZTR прекрасен. Особенно если учесть, что _stmt создан на форме.
|
|
![]() |
#17 |
NavAx
|
Цитата:
Сообщение от Ace of Database
![]() Самый тупой вариант в вашем случае, это сделать временную таблицу в Аксапте постоянной.
Свойство SaveDataPerCompany выставить в No. Написать на SQL хранимую процедуру, которая ее очищает и заполняет заново. А потом из Аксапты просто открыть форму, и она безо всякого кода вам отобразит данные. При этом надо позаботиться заполнением поля RecId уникальными значениями из хранимой процедуры.
__________________
Isn't it nice when things just work? |
|
![]() |
#18 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Ace of Database (2). |
![]() |
#19 |
Участник
|
Цитата:
А права доступа - это конечно да. Хранимая процедура вернет данные независимо от прав. Но я в этой ветке занял сторону конкретного человека. Как бы адвокат. Что делать девушке: отказываться от задания или выполнить любой ценой? Жизнь сложная штука. PS. И в то же время я понимаю, что наличие таких специалистов снижает стоимость позиции "специалист по Аксапте". Жизнь сложная штука. Так как девушка худо-бедно решит проблему подручными средствами, то проект не получит профессионал. Зритель поневоле встает на сторону главного героя фильма. Девушка - главный герой этой темы. А если бы тему начал другой человек, с вопросом: "допускать ли таких специалистов к этому заданию"? То я бы встал на его сторону, так как он был бы главным героем. И я бы не стал тогда защищать девушку. Это вопрос психологии. Последний раз редактировалось Ace of Database; 27.05.2015 в 16:28. |
|
![]() |
#20 |
Участник
|
"Жизнь сложная штука" (с)
Возможно не все проекты достойны профессионала? ![]()
__________________
Здесь могла быть Ваша реклама! |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|