AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 17.06.2004, 19:13   #1  
ATimTim ist offline
ATimTim
Участник
 
395 / 13 (1) ++
Registriert seit: 10.06.2004
Ort: Питер
Закупка. Количество введенное в таблицу PurchLine не отображается в накладной
Формирую закупку. При создании строк закупки КОЛИЧЕСТВО ввожу либо вручную, либо вызываю свой модуль, результатом которого является КОЛИЧЕСТВО, которое должно попасть в PurchLine.PurchQty. При ручном вводе введенное КОЛИЧЕСТВО корректно отображается и в стоках закупки и в форме "Разноска накладной" на закладке "Строки" (Обработка->Накладная). А при программном вводе КОЛИЧЕСТВО корректно отображается только в строках закупки, а в форме "Pазноска накладной", на закладке "Строки" - остается старое значение (если был ручной ввод) либо значение по умолчанию...
Вот код:
PHP-Code:
 void updatePurchLine_Quantity(){
  
PurchLine line;
  
InventTransId _Inventtransid =  _w2LController.getInventtransid();
  ;
  
select forupdate line where line.inventtransid == _Inventtransid;
  
line.PurchQty  100// ..к примеру ..
  
line.update();

Подскажите, пожалуйста, в чем моя ошибка.
Alt 18.06.2004, 10:25   #2  
Андре ist offline
Андре
Moderator
Сотрудники компании GMCS
 
2.375 / 464 (20) +++++++
Registriert seit: 03.12.2001
Вообще-то есть еще такие поля, как QtyOrdered, RemainPurchPhysical, RemainInventPhysical.
А смотреть надо метод modified() на field = PurchQty, датасоурса PurchLine формы PurchTable.
Есть там такая строчка:

PHP-Code:
 Purchline::ModifyPurchQty(purchLine,inventDim); 
Alt 18.06.2004, 11:41   #3  
ATimTim ist offline
ATimTim
Участник
 
395 / 13 (1) ++
Registriert seit: 10.06.2004
Ort: Питер
Огромное спасибо! =)
Alt 18.06.2004, 11:57   #4  
ATimTim ist offline
ATimTim
Участник
 
395 / 13 (1) ++
Registriert seit: 10.06.2004
Ort: Питер
А могу ли после программного обновления КОЛИЧЕСТВА вызвать метод modified поля PurchLine.PurchQty ? И если да, то каким образом?
Alt 18.06.2004, 12:05   #5  
Rokhay ist offline
Rokhay
Участник
 
154 / 15 (1) ++
Registriert seit: 02.10.2003
Ort: Ебург
где-то вот так :

purchLine_ds.object(fieldNum(PurchLine, PurchQty )).modified()
Alt 18.06.2004, 14:44   #6  
ATimTim ist offline
ATimTim
Участник
 
395 / 13 (1) ++
Registriert seit: 10.06.2004
Ort: Питер
А как передать ссылку на этот датасоурс другому классу?
В моем случае необходимо вызвать метод modified не из формы PurchTable, а из другого класса ..... , соответственно этот класс должен иметь ссылку на источник данных purchLine_ds формы PurchTable
Alt 18.06.2004, 15:36   #7  
Rokhay ist offline
Rokhay
Участник
 
154 / 15 (1) ++
Registriert seit: 02.10.2003
Ort: Ебург
прочитал внимательно всю ветку....

а зачем собствено вызывать метод датасорса то?
Андре уже указал код который стоит вызвать, а больше в том методе то ничего нужного и нету...
Alt 18.06.2004, 16:04   #8  
ATimTim ist offline
ATimTim
Участник
 
395 / 13 (1) ++
Registriert seit: 10.06.2004
Ort: Питер
Понял. Всем спасибо за ответы.
Alt 18.06.2004, 16:55   #9  
ATimTim ist offline
ATimTim
Участник
 
395 / 13 (1) ++
Registriert seit: 10.06.2004
Ort: Питер
Zitat:
void modified() {
super();
Purchline::ModifyPurchQty(purchLine,inventDim);
element.checkCreditNoteLine();
purchLine_ds.reFresh();
}
Возник вопрос: purchLine и inventDim датасоурсы? Если да, то как мне передать их в качестве параметров, если Purchline::ModifyPurchQty(purchLine,inventDim);
необходимо вызвать в ДРУГОМ КЛАССЕ, а не в форме PurchTable ......
Alt 18.06.2004, 17:07   #10  
Rokhay ist offline
Rokhay
Участник
 
154 / 15 (1) ++
Registriert seit: 02.10.2003
Ort: Ебург
Zitat:
Изначально опубликовано ATimTim

Возник вопрос: purchLine и inventDim датасоурсы?
нет, это таблицы.
Alt 18.06.2004, 17:53   #11  
ATimTim ist offline
ATimTim
Участник
 
395 / 13 (1) ++
Registriert seit: 10.06.2004
Ort: Питер
PHP-Code:
void updatePurchLine_Quantity(){
  
PurchLine line;
  
int weight;
  ;
  
weight 100 // к примеру ...
  
line =   _w2LController.getPurchLine();
  
line.PurchQty     =  weight;
  
Purchline::ModifyPurchQty(  _w2LController.getPurchLine(),
                                                    
_w2LController.getInventDim());
  
line.update();
//  line.QtyOrdered                       =  weight;
//  line.RemainPurchPhysical   =  weight;
//  line.RemainInventPhysical  =  weight;

Так тоже не работает ....
P.S. Работает то, что закомментировано....
Alt 18.06.2004, 17:59   #12  
Андре ist offline
Андре
Moderator
Сотрудники компании GMCS
 
2.375 / 464 (20) +++++++
Registriert seit: 03.12.2001
Так надо смотреть что возвращает Ваш _w2LController и что вообще в нем происходит.
Alt 18.06.2004, 17:59   #13  
Rokhay ist offline
Rokhay
Участник
 
154 / 15 (1) ++
Registriert seit: 02.10.2003
Ort: Ебург
может разумнее было бы запускать обработку на той таблице, которая была модифицирована? :

PHP]
....
line.PurchQty = weight;
Purchline::ModifyPurchQty( line,
line.inventDim());
line.update();
....
[/PHP]
Alt 18.06.2004, 18:18   #14  
ATimTim ist offline
ATimTim
Участник
 
395 / 13 (1) ++
Registriert seit: 10.06.2004
Ort: Питер
конструктор контроллера ....
PHP-Code:
void new(Args _args)  {
    
_formRun _args.caller();
   
_purchLine  =  _formRun.dataSource('PurchLine').cursor();
   
_inventDim  =  _formRun.dataSource('InventDim').cursor();
//   _purchLine - свойство класса, тип PurchLine
//   _inventDim- свойство класса, тип InventDim


методы доступа ..
PHP-Code:

///***********************************
PurchLine getPurchLine(){
  return 
_purchLine;
}
//**********************************
InventDim getInventDim (){
  return 
_inventDim;

Данные свойства класса инициируются однократно.
Alt 19.06.2004, 15:35   #15  
Rokhay ist offline
Rokhay
Участник
 
154 / 15 (1) ++
Registriert seit: 02.10.2003
Ort: Ебург
Поля
Purchline.QtyOrdered,
Purchline.RemainPurchPhysical ,
Purchline.RemainInventPhysical ,
возможно модифицируются при вызове метода purchLine_DS\write()

а именно
PHP-Code:
        InventMovement::bufferSetRemainQty(purchLine); 

PS. почему бы не воспользоваться в явном виде методами формы, а не выдирать отдельные куски кода? Это позволило бы избежать подобных проблем. Тем более, что ссылка на FormRun и так уже имеется.
Alt 21.06.2004, 10:11   #16  
Андре ist offline
Андре
Moderator
Сотрудники компании GMCS
 
2.375 / 464 (20) +++++++
Registriert seit: 03.12.2001
Zitat:
может разумнее было бы запускать обработку на той таблице, которая была модифицирована?
Действительно. Совершенно правильно заметил твою ошибку.

Смотри:

PHP-Code:
line.PurchQty     =  weight;      
Purchline::ModifyPurchQty(  _w2LController.getPurchLine(),   _w2LController.getInventDim()); 
weight ты присваиваешь одной переменной, а в метод ModifyPurchQty ты передаешь совершенно другую переменную.

Чтобы было понятнее твой код можно переписать так:

PHP-Code:
line.PurchQty     =  weight;  
line2 =   _w2LController.getPurchLine(); 
Purchline::ModifyPurchQtyline2 ,  _w2LController.getInventDim()); 
Так стало очевиднее ?
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Почему не совпадает количество в счет фактуре и в накладной на возврат? Hans DAX: Функционал 1 28.04.2006 16:37
Создние PurchLine с ед. измерения типа 'Склад' NJD DAX: Программирование 0 30.06.2004 10:53
Создние PurchLine NJD DAX: Программирование 4 22.06.2004 11:14
Разноска операций Закупка, Заказ по счетам ГК по отборочной накладной. Как настроить? May DAX: Функционал 5 01.08.2003 11:13
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 08:49 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.