10.07.2012, 07:57 | #1 |
Участник
|
Программная вставка строки в заказ на покупку
AX2009.
Уважаемые Господа! Надо через форму ввести строки в заказ на покупку программным путем. Наверняка, подобная задача решелась множество раз... Не подскажете как это сделать наиболее простым способом? С уважением, Дмитрий. |
|
10.07.2012, 08:09 | #2 |
Участник
|
Можно допилить стандартную форму "Создать строки" в строках заказа на покупку, если она чем то не устраивает.
Посмотрите метод purchLine.createLine(...) и его использование в стандарте.
__________________
Sergey Nefedov |
|
|
За это сообщение автора поблагодарили: DmitryK (1). |
10.07.2012, 08:33 | #3 |
Участник
|
Спасибо, да конечно. Причем, на форуме этот метод описывался. Но в форме PurchQuickQuote я не нашел использования данного метода. Или не туда смотрю?
С уважением, Дмитрий. Последний раз редактировалось DmitryK; 10.07.2012 в 08:52. |
|
10.07.2012, 09:21 | #4 |
Участник
|
Этот метод находится на таблице PurchLine.
__________________
С уважением, Александр. |
|
|
За это сообщение автора поблагодарили: DmitryK (1). |
10.07.2012, 09:24 | #5 |
Участник
|
Он вызывается в неявном виде через метод purchLine.createFromTmpFrmVirtual(...)
__________________
Sergey Nefedov |
|
10.07.2012, 09:50 | #6 |
Участник
|
Строку сформировал по примеру purchCopyng.copyline. Все получилось.
С уважением, Дмитрий. |
|
10.07.2012, 10:52 | #7 |
Участник
|
Надеюсь, что последний вопрос по данной теме... )
purchLine.purchPrice = 123; В результирующей строке заказа цена 0; Есть какие-то дополнительные требования? C уважением, Дмитрий. |
|
10.07.2012, 11:39 | #8 |
Участник
|
А вы как строку в итоге создаете? Приведите весь код.
Например, purchLine.createLine() вызываете? С какими параметрами?
__________________
Ivanhoe as is.. |
|
10.07.2012, 12:21 | #9 |
MCITP
|
Ну и про класс PurchLineType забывать не надо. Метод таблицы это хорошо, конечно. Но при том же инсерте будет вызван данный класс. А обработок там пишут много. Может и перетирается указанное значение.
|
|
10.07.2012, 13:36 | #10 |
Участник
|
Поступил по советам бывалых. Запись замечательно создается. Только без цены ... :O(
Вот так вызываю. pLine.createLine(true, true, true, true, false, true); C уважением, Дмитрий. |
|
10.07.2012, 13:40 | #11 |
Участник
|
Так у вас последний true заставляет систему искать цену из прайса. Нет прайса - получаете ноль.
__________________
Ivanhoe as is.. |
|
|
За это сообщение автора поблагодарили: DmitryK (1). |
10.07.2012, 13:50 | #12 |
Участник
|
Да, это моя невнимательность. Установил в false.
pLine.createLine(true, true, true, true, false, false); Но результат тот же. С уважением, Дмитрий. |
|
10.07.2012, 13:52 | #13 |
Участник
|
пройдитесь уже дебагером и найдите где у вас обнуляется
|
|
10.07.2012, 13:56 | #14 |
Участник
|
Этими параметрами надо играться...
Убрал в false initfrominventtable цена в строке появилась. Но не расчитывается сумма по строке. C уважением, Дмитрий. |
|
10.07.2012, 14:51 | #15 |
MCITP
|
Цитата:
InitFromInventTable метод данного класса. Там идет расчет строки: purchLine.PriceUnit = inventTableModule.priceUnit(); purchLine.LineAmount = 0; purchLine.lineAmountModified(); Скорее всего там и обнуление выскакивает. P.S. Вот любят кодить в таблицах абсолютно забывая про классы. Что salesLine, что purchLine работают с классом *LineType. |
|
|
За это сообщение автора поблагодарили: DmitryK (1). |
10.07.2012, 14:52 | #16 |
Участник
|
Спасибо, сейчас попробую ваш совет.
С уважением, Дмитрий. |
|
10.07.2012, 14:53 | #17 |
Участник
|
Я бы сделал так (что то типа такого)...
X++: AxPurchLine axPurchLine; ; axPurchLine = new axPurchLine(); axPurchLine.parmPurchId("123"); axPurchLine.parmItemId("ItemId"); axPurchLine.parmPurchQty(10); axPurchLine.parmLineAmount(100); // или axPurchLine.parmPurchPrice(10); axPurchLine.save(); |
|
10.07.2012, 15:08 | #18 |
Участник
|
axPurchLine.parmLineAmount(100);
это 10 * 10? C уважением, Дмитрий |
|
10.07.2012, 15:11 | #19 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: DmitryK (1). |
10.07.2012, 15:13 | #20 |
Участник
|
В принципе, все работает, переделывать задачу не хочется.
Только не считается автоматом lineAmount (чистая сумма) у purchLine есть множество методов .calc* Может надо их использовать? Если кто знает, не подскажете каккой? C уважением, Дмитрий. |
|