24.10.2005, 14:51 | #1 |
Участник
|
Проблема с CALCSUMS
Возникла следующая проблема, помогите плз её решить.
Суть такова: В отчёте на табличке Item, триггер OnAfterGetRecord прописано: .... GetQuantityAndAmount(0D, CALCDATE('<-1D>', StartingDate)); StartingQty := ROUND(DebitQuantity - CreditQuantity / QuanUnitToBaseUnit, ValencyValue, '='); StartingCost := DebitCost - CreditCost; GetQuantityAndAmount(0D, EndingDate); EndingQty := ROUND(DebitQuantity - CreditQuantity / QuanUnitToBaseUnit,ValencyValue,'='); EndingCost := DebitCost - CreditCost; GetQuantityAndAmount(StartingDate, EndingDate); IncreaseQty := ROUND(DebitQuantity / QuanUnitToBaseUnit,ValencyValue,'='); IncreaseCost := DebitCost; .... Таким образом считаются суммы на: начало и конец периода, а также приход и расход за заданный период. Код самой функции: //код ValueEntry.SETRANGE("Posting Date", StartDate, EndDate); ValueEntry.SETFILTER(ValueEntry."Valued Quantity",'>0'); ValueEntry.CALCSUMS("Invoiced Quantity","Cost Amount (Actual)"); DebitQuantity := ValueEntry."Invoiced Quantity"; DebitCost := ValueEntry."Cost Amount (Actual)"; ValueEntry.SETFILTER(ValueEntry."Valued Quantity",'<0'); ValueEntry.CALCSUMS("Invoiced Quantity","Cost Amount (Actual)"); CreditQuantity := -ValueEntry."Invoiced Quantity"; CreditCost := -ValueEntry."Cost Amount (Actual)"; //код Эту функцию надо переделать таким образом, чтобы в неё попадали сторнирующие акты списания со знаком '+'. Есть вариант, но нужно отказаться от использования CALCSUMS. Переписывать отчёт полностью слишком долго. Может кто-нибудь подскажет вариант? Должно быть нечто подобное, как я понимаю: .... IF ValueEntry."Item Ledger Entry Type"=ValueEntry."Item Ledger Entry Type"::"Negative Adjmt." THEN .... |
|
|
Похожие темы | ||||
Тема | Ответов | |||
проблема с Temp таблицей | 2 | |||
Проблема с Developer's toolkit 2.0 sp1! | 0 | |||
Проблема с удаление трассировки товара | 0 | |||
Проблема с отчетом в Аттейн. | 2 | |||
Проблема с компиляцией отчёта | 2 |
|