15.08.2012 12:51
Dim
 
отсюда

Цитата:
OlegON Как получить остатки на дату –

begin
Supermag.Remains.Calс ('13/09/2008',FALSE,23, 0, FALSE);
End;

Далее во временно табличке SUPERMAG.TTREMAINS получаем все артикулы с остатками на конец 13/09/2008
что передается в параметрах?
1-е понятно - дата... а дальше? можно ли по конкретному артикулу получить остатки? где задается МХ?
15.08.2012 13:01
Mtirt
 
Если честно, остается только гадать...
Код:
remains.calc(i_date => :i_date,
               i_isaddingdata => i_isaddingdata,
               i_docstatemode => :i_docstatemode,
               i_calcmode => :i_calcmode,
               i_isallremains => i_isallremains)
Цитата:
где задается МХ?
Нигде, насколько я понимаю.
15.08.2012 13:07
Dim
 
а как правильно запустить? в SQL+ не работает... пишет --

Код:
SQL> begin
  2  Supermag.Remains.Calс('10/08/2012',FALSE,23, 0, FALSE);
  3  End;
  4  /
Supermag.Remains.Calс('10/08/2012',FALSE,23, 0, FALSE);
                 *
ошибка в строке 2:
ORA-06550: Строка 2, столбец 18:
PLS-00302: компонента 'CALС' должна быть объявлена
ORA-06550: Строка 2, столбец 1:
PL/SQL: Statement ignored
15.08.2012 13:12
Mtirt
 
Под кем запускаешь?
15.08.2012 13:14
Dim
 
и под supermag'ом и под sys'ом
15.08.2012 13:31
MirProd
 
Код:
execute supermag.remains.calc(to_date('31.03.2012', 'dd.mm.yyyy'), false, 23, 0, false);
Таблица SUPERMAG.TTREMAINS содержит поле МХ - STORELOC.
15.08.2012 13:35
Dim
 
заработало... все дело было в копи-пасте... перебил руками - все заработало...
15.08.2012 18:40
Dim
 
экспериментирую.... если последним параметром поставить TRUE, то выдает и нулевые остатки
15.08.2012 18:45
Dim
 
от предпоследнего параметра ничего не зависит...
15.08.2012 20:38
vdm
 
Вообще эта функция была описана
https://olegon.ru/showpost.php?p=34774&postcount=8

и фильтр по классификатору тут
https://olegon.ru/showpost.php?p=118205&postcount=13

В целом, немного подробнее
Код:
PROCEDURE Remains.Calc( I_DATE IN DATE, I_ISADDINGDATA IN BOOLEAN := FALSE, I_DOCSTATEMODE IN NUMBER := 23,
                        I_CALCMODE IN NUMBER := 0, I_ISALLREMAINS IN BOOLEAN := FALSE )

I_DATE - дата, на конец которой идет расчет

I_ISADDINGDATA - будет ли расчет добавляться к уже существующему.
Иначе предварительно чистится таблица TTRemains.

I_DOCSTATEMODE:
0 - DocState = 0
2 - DocState = 2
23 - DocState >= 2

I_CALCMODE:
0 - автоматически выбрать режим расчета (1/2/3)
1 - считать по всем документам, от закрытого периода до I_DATE
2 - считать от текущих остатков из smgoods -приходы+расходы с датой больше I_DATE
3 - считать от заранее рассчитанных остатков (задание в административном модуле)

I_ISALLREMAINS - все остатки, в том числе и нулевые.


-- для ограниченного набора артикулов предварительно вызвать
-- фильтр по классификатору
supermag.RepTools.LoadClassMatrix(:P_MatrixLoc, :P_Group_All, :P_BGroup, :P_Group_Tree);
-- фильтр по МХ
supermag.RepTools.LoadLoc(:P_Stored_All, :P_Stored_Name, :P_Partner, :P_RgnId, :P_FirstDate);
-- загрузить назначенные фильтры
supermag.RepTools.LoadSQLFilter;
-- (параметры из описания подключения пользовательских отчетов)

-- в SUPERMAG.TTREMAINS артикулы с остатками на конец 13/09/2008
Supermag.Remains.Calc ('13/09/2008', FALSE, 23, 0, FALSE);

-- Для производства 
-- в SUPERMAG.TTREMAINSPROD артикулы с остатками на конец 13/09/2008
Supermag.Remains.Calcprod ('13/09/2008', FALSE, 23, 0, FALSE);
Там еще упоминается FixRemIncome.Calc --> ttRemIncome
Код:
   PROCEDURE FixRemIncome.Calc( I_DATE IN DATE, I_REUSE IN BOOLEAN := TRUE, I_ISADDINGDATA IN BOOLEAN := FALSE, I_ISALLREMAINS IN BOOLEAN := FALSE )
но чем оно отличается от Remains.Calc - не разбирался.
Часовой пояс GMT +3, время: 03:33.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.