|
|
#1 |
|
Участник
|
Не работает SummaryUpdate
Мне нужно запостить инвойс из кода, предварительно заполнив PurchFormLetter по определенному алгоритму. Это получилось, но мне еще нужно, чтобы один ваучер был для нескольких Purchase order'ов, которые попали в инвойс, и чтобы суммирование шло по InvoiceAccount'у.
При создании экземпляра PurchFormLetter я пишу такое: X++:
formLetter = new PurchFormLetter_SpecialInvoice();
formLetter.transDate(systemdateget());
formLetter.specQty(PurchUpdate::All);
// manually obtaining ParmId, because it is disabled in PurchFormLetter
numSeq = NumberSeq::newGetNum(NumberSeqReference::findReference(typeId2ExtendedTypeId(typeid(ParmId))));
parmId = numSeq.num();
formLetter.parmId(parmId);
formLetter.sumBy(AccountOrder::Account);
formLetter.createParmUpdate();
ttsbegin;
select forupdate firstonly purchParmUpdate where
purchParmUpdate.RecId == formLetter.purchParmUpdate().RecId;
purchParmUpdate.SumBy = AccountOrder::Account;
purchParmUpdate.update();
ttscommit;X++: formLetter.reArrangeNow(true);
formLetter.reArrange();
formLetter.run();ПризнаЮ, что механизм SummaryUpdate мне не очень знаком, поэтому, возможно, я забиваю гвозди микроскопом. Подскажите, пожалуйста, что может быть не так, что упущено? Последний раз редактировалось Shannon; 06.04.2010 в 14:07. Причина: ошибки |
|
|
|
|
#2 |
|
Участник
|
Investigation results…
Похоже, дело в таблице purchParmSubTable и поле ParmId — в purchParmSubTable есть записи, но система их не находит в методе reArrange (query возвращает пустой набор записей).
|
|
|