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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.01.2004, 14:31   #1  
ДК is offline
ДК
Участник
 
43 / 10 (1) +
Регистрация: 24.06.2003
Адрес: Краснодар
:)
Уважаемые коллеги.
Итак, имеем форму SalesTable
Необходимо перебрать SalesLines выбранного заказа и установить определенное значение InventDim, например InventGTDId_RU.
У меня пока не получается ((
__________________
-----------------------------------------
Искренне Ваш, ДК.
Старый 13.01.2004, 14:46   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
это надо использовать методы таблицы InventDim.

Код:
{
    InventDim dim = InventDim::find(SalesLine.inventDimId);
    dim.InventGtdId_RU = ...код любимого ГТД...
    dim = InventDim::findOrCreate(dim.dimID);
}
Программисту обязательно надо понять как работать со складской аналитикой в Аксапте. Без этого что-либо сделать со складом (программисту) не получится.

Дополнительно полезно разобраться как добавлять/скрывать/запрещать редактирование аналитики в формах/отчетах стандартными методами.
__________________
полезное на axForum, github, vk, coub.
Старый 14.01.2004, 13:16   #3  
ДК is offline
ДК
Участник
 
43 / 10 (1) +
Регистрация: 24.06.2003
Адрес: Краснодар
Angry
Код:
{
    SalesLine           SalesLineSelect;
    InventDim           dim;
   ;

    SalesLineSelect = SalesLine_ds.getFirst();
    while ( SalesLineSelect )
    {
        dim = InventDim::find(SalesLineSelect.inventDimId, true);
       //EN_find - ищет последнюю ГТД от определенного поставщика
        dim.InventGtdId_RU = InventGTD_RU::EN_find(SalesTable.K_DrawFrom,SalesLineSelect.ItemId);
        dim = InventDim::findOrCreate(dim);
        SalesLineSelect.InventDimId = dim.inventDimId;
        SalesLineSelect.write();

        SalesLineSelect = SalesLine_ds.getNext();
    }
}
не работает. При попытке записать ругается, что не выбран номер лота.
Т.е. стоит задача - по нажатию на кнопочку заполнить SalesLine последними (по времени ГТД от конкретного поставщика)
-------------------
не, надо снова на 1С переходить
__________________
-----------------------------------------
Искренне Ваш, ДК.
Старый 14.01.2004, 13:19   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
не работает потому, что getFirst() работает не с таблицей, а с датасорсом формы. А у датасорса есть свои методы. InventDimId он на форме отсутствует. Форма сама его обновляет исходя из других полей на форме.

работай с query либо с select'ом напрямую.

while select
{
...
}

а в конце что-либо вроде salesline_ds.research() для того, чтобы обновить форму исходя из обновленных значений в базе.
__________________
полезное на axForum, github, vk, coub.
Старый 14.01.2004, 13:48   #5  
ДК is offline
ДК
Участник
 
43 / 10 (1) +
Регистрация: 24.06.2003
Адрес: Краснодар
Код:
void clicked()
{
    SalesLine           SalesLineSelect;
    InventDim           dim;
   ;
    if (SalesTable.K_DrawFrom)
        TTSBEGIN;
        while select forupdate SalesLineSelect where SalesLineSelect.SalesId == SalesTable.SalesId
        {
            dim = InventDim::find(SalesLineSelect.inventDimId, true);
            dim.InventGtdId_RU = InventGTD_RU::EN_find(SalesTable.K_DrawFrom,SalesLineSelect.ItemId);
            dim = InventDim::findOrCreate(dim);
            SalesLineSelect.InventDimId = dim.inventDimId;
            SalesLineSelect.update();
        }
        TTSCOMMIT;
        Salesline_ds.research();
}
Я всегда говорил: Мазуркин - ГОЛОВА!
__________________
-----------------------------------------
Искренне Ваш, ДК.
 


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

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

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