![]() |
#1 |
Участник
|
как найти связь SalesLine/SalesTable в методе SalesFormLetter::chooseLines
Привет. Подскажите куда копать что бы понять по какой логике AX09 осуществляет связь в методах перебора.
Есть стоковый метод SalesFormLetter::chooseLines Внутри которого есть цикл: X++: void chooseLines(SalesParmTable _salesParmTable = null, boolean _directDeliveryUpdate = false) { ... chooseLines.reset(); // if the select button is used from saleseditlines while (chooseLines.next()) { progressTotal++; if (chooseLines.changed(tablenum(SalesTable))) { localSalesTable = chooseLines.get(tablenum(SalesTable)); mayJournalBePosted = this.mayJournalBePosted(localSalesTable); if (!localSalesTable.canCustomerBeUpdated(this.documentStatus())) { mayJournalBePosted = checkFailed(strfmt("@SYS7987",localSalesTable.CustAccount)); } } localSalesLine = chooseLines.get(tablenum(SalesLine)); ... } ... } Заметил что в некоторых случаях при формировании счета из SO на печать цикл перебирает линии из выбранного заказа - тут все OK, а в некоторых случаях по другим заказам он тупо начинает перебирать вообще другие линии других заказов. 1. Хотелось бы понять что происходит внутри методов: chooseLines.reset() chooseLines.next() 2. По какой логике (и откуда AX берет эту логику) иногда корректно перебираются все линии заказа, а в каких случаях тупо начинают перебираться другие линии из других заказов? |
|