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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.10.2005, 14:51   #1  
VioHap is offline
VioHap
Участник
 
29 / 10 (1) +
Регистрация: 06.07.2005
Адрес: Е-бург
Проблема с 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
....
Старый 24.10.2005, 17:15   #2  
Eugeny_F is offline
Eugeny_F
Участник
 
368 / 28 (1) +++
Регистрация: 18.11.2003
Адрес: Москва
Если я Вас правильно понял, то не вижу проблемы. Надо просто до CALCSUMS добавить строку
ValueEntry.SETFILTER(ValueEntry."Item Ledger Entry Type",ValueEntry."Item Ledger Entry Type"::"Negative Adjmt.").

Главное, чтобы в ключе, по которому в этот момент идет сортировка присутствовало поле "Item Ledger Entry Type"
Старый 26.10.2005, 07:02   #3  
VioHap is offline
VioHap
Участник
 
29 / 10 (1) +
Регистрация: 06.07.2005
Адрес: Е-бург
Спасибо, данный вариант помог
Сам я тоже так пробовал, только, когда ставил ключ, воткнул его не в то поле
:-[

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
проблема с Temp таблицей Padre NAV: Программирование 2 16.05.2007 13:48
Проблема с Developer's toolkit 2.0 sp1! asacom NAV: Прочие вопросы 0 16.08.2005 14:54
Проблема с удаление трассировки товара Nataly NAV: Функционал 0 12.07.2004 12:44
Проблема с отчетом в Аттейн. sash_xp NAV: Функционал 2 13.10.2003 09:30
Проблема с компиляцией отчёта RomariO NAV: Программирование 2 23.04.2003 11:21

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:30.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.