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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.09.2005, 06:28   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Вопрос: У меня включен автоподбор ГТД в Заказах. Когда я создаю строки заказа при помощи функции Создать строки Аксапта подставляет какой-то ГТД, который потом нельзя исправить (поскольку включен автоподбор). Как заставить Аксапту не указывать ГТД при создании строк?

Ответ: При создании строк Axapta показывает вам комбинации аналитик InventDim. Показывает она только те поля, которые вы включили в форму Создание строк (См. рисунок). Остальные же поля хоть и не показываются, но заполняются значениями (какие именно значения будут взяты из скрытых полей, зависит от версии Аксапты и СУБД). Самое неприятное в том, что после нажатия на кнопку Создание, Аксапта переносит в строки заказа не только видимые поля, но и скрытые.

Например, на рисунке ниже отображается только Склад, но если у выбранной номенклатуры есть и ГТД, то в строки заказа будет подставлен не только склад, но и ГТД.

Для того, чтобы Аксапта подставляла в строки заказа только ту аналитику, которая видна в форме создания строк, необходимо внести модификацию в метод формы SalesQuickQuote

<div class='XPPtop'>X++</div><div class='XPP'>[color=:blue]void[/color]  createSalesLine(SalesTable _salesTable)
{
   SalesLine   salesLine;
   InventDim   _InventDim;
;

   [color=:blue]while[/color] [color=:blue]select[/color] tmpFrmVirtual
           [color=:blue]where[/color] tmpFrmVirtual.qty
   {
       [color=:blue]try[/color]
       {
           salesLine.clear();
           salesLine.projId            = _salesTable.projId;
           salesLine.salesType         = _salesTable.salesType;
           salesLine.initValue();
           salesLine.salesId           = _salesTable.salesId;
           salesLine.itemId            = tmpFrmVirtual.itemId;
           salesLine.salesQty          = tmpFrmVirtual.qty;
           [color=:green]//salesLine.inventDimId       = tmpFrmVirtual.inventDimId;
[/color]            [color=:green]//+SMAZ
[/color]            _inventDim = InventDim::find(tmpFrmVirtual.inventDimId);
           _inventDim.clearNotSelectedDim(inventDimFormSetup.parmDimParmVisibleGrid());
           _inventDim = InventDim::findOrCreate(_inventDim);
           salesLine.inventDimId       = _inventDim.inventDimId;
           [color=:green]//-SMAZ
[/color]
           salesLine.createLine([color=:blue]true[/color],  [color=:green]//  validation
[/color]                                 [color=:blue]true[/color],  [color=:green]//  initFromSalesTable
[/color]                                 [color=:blue]true[/color],  [color=:green]//  initFromInventTableModule
[/color]                                 [color=:blue]true[/color],  [color=:green]//  calcInventQty
[/color]                                 [color=:blue]true[/color],  [color=:green]//  searchMarkup
[/color]                                 [color=:blue]true[/color],  [color=:green]//  searchPrice
[/color]                                 _salesTable.reservation[color=:blue]==[/color]ItemReservation::Automatic); [color=:green]//  checkReservation
[/color]
           tmpFrmVirtual.delete();
       }

       [color=:blue]catch[/color] (Exception::Error)
       {
           checkFailed([color=:red]"@SYS18447"[/color]);
       }
   }

   inventsum_ds.executeQuery();
}</div>

Как видно из кода, модификация очищает значения непоказываемых в форме складских аналитик.
Изображения
 
__________________
полезное на axForum, github, vk, coub.
 


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

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

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