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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.09.2007, 15:34   #1  
Daido is offline
Daido
Участник
Аватар для Daido
 
105 / 10 (1) +
Регистрация: 13.07.2007
Заказ на покупку
дарова всем, при создании "Заказа на покупку" 1.Созадем шапку,2.Созадем строку
(указываем номенклатуру,потом склад,и кол-во,и нажимаем Ctrl+S,на вкладке "Количество" появляется заказано и к поставке ( по моему)
вот подскажите,как вот этот метод называется,( при импорте должны дублироваться все данные в Inventtrans-e кажется
Старый 03.09.2007, 15:54   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Наверное Вы об этом:
X++:
        InventMovement::bufferSetTransQtyUnit(purchLine);
        InventMovement::bufferSetRemainQty(purchLine);
Но лучше, посмотрите, какие методы вызываются при изменении кол-ва в строке закупки (на источнике данных, и какие при сохранении строки - там же на источнике).
Пригодиться еще
Старый 03.09.2007, 16:06   #3  
Daido is offline
Daido
Участник
Аватар для Daido
 
105 / 10 (1) +
Регистрация: 13.07.2007
где находится метод на сохранения ?
Ваня привет, какой метод при сохранения вызывается ? (Ctrl+S)
Старый 03.09.2007, 16:20   #4  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
При сохранении второй из двух.
При изменении кол-ва, первый и другие. (все из Purchline::ModifyPurchQty(purchLine,inventDim)

См. форму PurchTable
Старый 04.09.2007, 08:30   #5  
Daido is offline
Daido
Участник
Аватар для Daido
 
105 / 10 (1) +
Регистрация: 13.07.2007
Цитата:
Сообщение от kashperuk Посмотреть сообщение
При сохранении второй из двух.
При изменении кол-ва, первый и другие. (все из Purchline::ModifyPurchQty(purchLine,inventDim)

См. форму PurchTable
привет kashperuk, вызываю ModifyPurchQty(purchLine,inventDim) при импорте..., короче мне надо импортировать заказы на покупку,класс написал, шапки отдельно,и соответственно строки отдельно,
X++:
   purchLine.PurchUnit     = purchUnit;
       purchLine.DeliveryDate  =  str2date(conpeek(line, 5),123);
       purchLine.PurchaseType  = 3;
       counter++;
       purchLine.insert();
       InventMovement::bufferSetRemainQty(purchLine);
       PurchLine::modifyPurchQty(purchLine,invDim);
       ttsCommit;
после импорта не разносится ещё кого то надо вызывать

Последний раз редактировалось Daido; 04.09.2007 в 08:55.
Старый 04.09.2007, 10:03   #6  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
А что такое - "После импорта не разносится"? Ошибку какую-то выдает?

Есть набор классов, который отвечает за создание строк закупок.
PurchAutoCreate и наследники. Весь код, который тебе нужно написать, есть там.

Методы, приведенные выше, смысла в данном конкретном задании вызывать нет.
Вместо этого лучше воспользоваться методом purchLine.createLine(), передав в него требуемые параметры. Заодно и ошибки другие может подотрет

А в приведенном тобой коде методы эти должны были вызываться ДО сохранения записи
Старый 04.09.2007, 13:53   #8  
Daido is offline
Daido
Участник
Аватар для Daido
 
105 / 10 (1) +
Регистрация: 13.07.2007
Цитата:
после присовения всех данных к полям вызываю метод purchLine.createLine...
хоть убей,не получается
пишет:
Цитата:
Код номенклатуры не может быть изменен после того, как были созданы операции по номенклатуре.
Удалить строку и пересоздать ее с новым кодом номенклатуры.
X++:
 purchLine.PurchId       = purchId;
       purchLine.LineNum       = conpeek(line, 2);
       purchLine.ItemId        = itemId;
......
 purchLine.createLine(NoYes::Yes, NoYes::Yes, NoYes::Yes,
                            NoYes::Yes, NoYes::Yes, NoYes::Yes);
Старый 04.09.2007, 14:09   #9  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Смотри Map\SalesPurchLine\checkInitFromInventTable

там такой код:
X++:
boolean checkInitFromInventTable(InventTable inventTable)
{
    boolean ok = true;
    ;

    if (this.InventTransId)
    {
        ok = checkFailed("@SYS10546" + '\n' +  "@SYS15394" );
    }

    if (! inventTable.checkValid(this.ItemId))
    {
        ok = false;
    }

    return ok;
}
Так вот у тебя уже заполнен номер лота при вызове проверки (то есть типа строка уже существует). Смотри дебаггером.
Не будем же мы это за тебя делать
Старый 04.09.2007, 14:34   #10  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Предположение:

Ты делаешь
X++:
purchLine.clear()
в начале каждого цикла?
За это сообщение автора поблагодарили: mazzy (5).
Старый 04.09.2007, 15:55   #11  
Daido is offline
Daido
Участник
Аватар для Daido
 
105 / 10 (1) +
Регистрация: 13.07.2007
да делаю
все даные я передаю в строку,думаю мне просто надо вызывать метод при сохранении

Последний раз редактировалось Daido; 04.09.2007 в 15:57.
Старый 04.09.2007, 16:01   #12  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Попробуйте показать код целиком, а не кусочками.
__________________
С уважением,
glibs®
Старый 04.09.2007, 16:13   #13  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Чего-то не могу найти вызова purchLine.createLine(...);

Вы таки решили пойти "своим путем"?
__________________
С уважением,
glibs®
Старый 04.09.2007, 16:43   #14  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Мне это ничего не даст. Я программно создавать строчки закупок и заказов умею .

Когда вы пишете purchLine.createLine(...), то purchLine.insert() уже писать не нужно. Загляните внутрь purchLine.createLine(...), чтоли...

Насчет [Ctrl] + [S] не понял. Вы хотите создать строку или обновить уже существующую?

И EVGL привел кусок кода, который решает вашу задачу (если я ее правильно понимаю, конечно)...
__________________
С уважением,
glibs®
Старый 04.09.2007, 16:46   #15  
petr is offline
petr
Участник
Соотечественники
 
561 / 201 (8) ++++++
Регистрация: 30.05.2005
Адрес: Швейцария
Проводка в inventTrans создастся сама при вызове purchLine.insert(), если бы у вас было заполнено значение в полях PurchLine.RemainInventPhysical, PurchLine.RemainPurchPhysical.
Старый 04.09.2007, 17:05   #16  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Тяжело с вами.

X++:
server void  createLine(boolean    validation          = false,
                        boolean    initFromPurchTable  = false,
                        boolean    initFromInventTable = false,
                        boolean    calcInventQty       = false,
                        boolean    searchMarkup        = true,
                        boolean    searchPrice         = false)
{
    PurchTable      purchTable;
    InventTable     inventTable;

    boolean         dropInvent= false;

    if (initFromPurchTable)
    {
        purchTable= this.purchTable();
        this.initFromPurchTable(purchTable);
    }

    if (initFromInventTable)
    {
        inventTable= this.inventTable();

        if (! this.checkInitFromInventTable(inventTable))
            throw error("@SYS18447");

        this.initFromInventTable(inventTable);
    }

    this.initFromVendTable(this.vendTable_OrderAccount());

    if (calcInventQty)
        this.QtyOrdered = this.calcQtyOrdered();

    /////////////////////////////////// Смотрите сюда!
    this.RemainPurchPhysical  = this.PurchQty;
    ///////////////////////////////////
    this.RemainPurchFinancial = 0;
    ////////////////////////////////////// Сюда!
    this.RemainInventPhysical = this.QtyOrdered;
    //////////////////////////////////////
    this.type().initReturn();

    if (searchPrice)
    {
        this.setPriceDisc(this.inventDim());
    }

    if (validation)
        if (!this.validateWrite())
            throw error("@SYS18447");

    if (!this.LineNum)
        this.LineNum = PurchLine::lastLineNum(this.PurchId) + 1.0;

    //////////////////////////////////////// И сюда!
    this.insert(dropInvent,searchMarkup);
    ////////////////////////////////////////
}
__________________
С уважением,
glibs®
Старый 05.09.2007, 08:57   #17  
Daido is offline
Daido
Участник
Аватар для Daido
 
105 / 10 (1) +
Регистрация: 13.07.2007
именно в этом месте
импорт прошел вроде, но в поле Заказано(PurchLine.orderedInPurchUnit()) пусто, это вычисляемое поле,из за него не разносится

Последний раз редактировалось Daido; 05.09.2007 в 10:00.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Заказ на покупку jiller DAX: Программирование 3 29.10.2008 10:03
Ошибка с разноской "Заказ на покупку" Kuat DAX: Администрирование 11 09.07.2008 15:56
Перевод CRM предложения в заказ. e-Car DAX: Функционал 0 24.08.2006 16:17
Производственный заказ типа Заказ oxbacc DAX: Функционал 3 14.07.2006 17:26
Заказ не переходит в статус "отгружено" ATimTim DAX: Функционал 29 27.12.2004 14:01

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

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

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