Страница 1 из 1

Нужна функция получения остатка

Добавлено: 12 ноя 2004, 15:07
m0p3e
конкретной МЦ на конкретную дату. Вроде кто-то давал таковую да не находится чегойто.. :)

Re: Нужна функция получения остатка

Добавлено: 12 ноя 2004, 15:55
WiRuc
Написано на T-SQL, но смысл понятен:)

SELECT TOP 1 f$kol from dbo.t$saldomc where f$sp=0 and f$cpodr=@cpodr and f$cmol=@cmol and f$cmc=@cmc and f$cparty=@cparty and f$dsaldo<=@date+1 order by f$dsaldo desc

Re: Нужна функция получения остатка

Добавлено: 12 ноя 2004, 15:57
hope
... и еще желательно на конкретную партию, склад и МОЛ.

Re: Нужна функция получения остатка

Добавлено: 12 ноя 2004, 16:09
Vitas
function InitMCInfo (date) : boolean
а) инициализация объекта, открытие таблиц
в) устанавливает дату расчета остатков МЦ

function ReInitMCInfo (date) : boolean
а) только устанавливает дату расчета остатков МЦ

function WasStoppedMCInfo : boolean
если в процессе расчета процесс был прерван возвращает TRUE

procedure DoneMcInfo ;
а) закрытие таблиц, удаление объекта работы с остатками МЦ

function StepMCInfo (cMC,cVal,cPodr,cMol,cParty:comp) : comp
производит расчет цены и количества
(возврат значений через AveragePrice,CountMC)
параметры: 1 МЦ KatMC.NRec (параметр типа 1)
2 Валюта KlVal.NRec
3 Склад KatPodr.NRec (параметр типа 1)
4 МОЛ KatMol.NRec (параметр типа 1)
5 Партия KatParty.NRec (параметр типа 1)
возвращает: 1 код валюты в которой произведен расчет
замечания: автоматически учитывается методика списания МЦ

function NalT (date,cMC,cPodr,cMol,cParty:comp) : comp
производит расчет цены и количества
(возврат значений через AveragePrice,CountMC)
параметры: 1 МЦ KatMC.NRec (параметр типа 1)
2 Склад KatPodr.NRec (параметр типа 1)
3 МОЛ KatMol.NRec (параметр типа 1)
4 Партия KatParty.NRec (параметр типа 1)
возращает: наличие МЦ в разрезе
замечания: не поддерживает методику списания МЦ
поэтому вызывать

procedure TypeOstatki (boolean)
параметры: 1 = TRUE - входящие остатки на дату
FALSE - исходящие остатки на дату

procedure LockValOt (boolean)
параметры: 1 = TRUE - пересчет в базовую
FALSE - пересчет в валюту для отчетов

================================================
после вызова StepMCInfo, NalT - можно вызывать
================================================
function AveragePrice : double
возращает: среднию цену в НДЕ
function AverageVPrice : double
возвращает: среднию цену в Валюте
(валюты которую вернула функция StepMCInfo)
function CountMC : double
возвращает: наличие МЦ (количество)
замечания: корректно возвращает только при методике списания МЦ
"средние по разрезу", во всех остальных случаях
возвращает количество всего на предприятии (не учитывая разрезы)
для подсчета наличия-количества необходимо использовать
функцию NalT
================================================
ДОПОЛНИТЕЛЬНЫЕ ФУНКЦИИ
================================================
function MCGetCurrency (comp, double, date) : double
пересчет в валюту для отчетов
function MCGetBaseCurrency (comp, double, date) : double
пересчет в базовую валюту
function MCGetAnyCurrency (comp, double, date, comp) : double
пересчет в любую валюту
================================================
function NalTov (date,comp,comp,comp,comp) : double
рассчитывает наличие МЦ в разрезе
параметры: 1 дата расчета наличия
2 МЦ KatMC.NRec (параметр типа 1)
3 Склад KatPodr.NRec (параметр типа 1)
4 МОЛ KatMol.NRec (параметр типа 1)
5 Партия KatParty.NRec (параметр типа 1)
возвращает: 1 текущее наличие МЦ
замечания: не требует предварительной инициализации InfoMCInfo & DoneMCInfo
в циклах медленно работает
(из-за того что каждый раз инициализирует объект MCInfo)

procedure SwitchProizOn
включает режим когда при расчете средней цены
расходные ордера в производство не учитываются
(по умолчанию отключен)
используется в производстве
procedure SwitchProizOff
выключает данный режим

Паратметры тип 1 (разрезы Хранения МЦ)

comp(0) - рассчитывается наличие без учета данного разреза
т.е. если в параметрах функции NalTov
указать конкретные значения МЦ, Склад, МОЛ,
но вместо KatParty.NRec - передать comp(0),
то наличие будет вычислено для определенной МЦ,
определенного склада, определенного МОЛ,
но сразу для всех партий используемых в учете...

comp(-1) - рассчитывается наличие только для не заданного разреза
т.е. если в параметрах функции NalTov
указать конкретные значения МЦ, Склад, МОЛ,
но вместо KatParty.NRec - передать comp(-1),
то наличие будет вычислено для определенной МЦ,
определенного склада, определенного МОЛ
и только не заданной Партии...

comp(-2) - рассчитывается наличие по таблице Pick (групповой выбор)
т.е. если в параметрах функции NalTov
указать конкретные значения МЦ, Склад, МОЛ,
но вместо KatParty.NRec - передать comp(-2),
то наличие будет вычислено только для Партий,
которые занесены в таблицу Pick
(с соответствующим кодом поля Pick.wList)

Re: Нужна функция получения остатка

Добавлено: 15 ноя 2004, 12:36
m0p3e
>Vitas.
Сенки. NalT то что дохтер прописал :)

Re: Нужна функция получения остатка

Добавлено: 15 ноя 2004, 16:30
Vitas
Да не за что:)
Сам использую в производстве :)

Re: Нужна функция получения остатка

Добавлено: 24 мар 2005, 08:51
hope
Использую функцию NalTov - при формировании отчета выдает: Потеряли функцию NalTov. И потом вылетает.

Подскажите, что надо сделать, чтоб работало?

Re: Нужна функция получения остатка

Добавлено: 24 мар 2005, 15:29
m0p3e
InitMcInfo ( date ) до
и DoneMcInfo после :)

Re: Нужна функция получения остатка

Добавлено: 25 мар 2005, 09:35
hope
Мне надо остатки по МЦ и по складу.
Делаю так:
...
myost:Comp
...
InitMcInfo(Cur_date)
myost:=NalT(Cur_date, mc_nrec, skl_nrec, 0,0)
kol_ost:=CountMc
DoneMcInfo()

в результате дает остатки по предприятию, а не по складу.

И еще, что возвращает функция NalT?

NalTov - у меня так и не получилось использовать....

Re: Нужна функция получения остатка

Добавлено: 11 янв 2011, 13:04
n0where
Viper как и компилятор интерфейсов пишет что нет такой функции InitMCInfo и тп.

Как заставить их работать?

Re: Нужна функция получения остатка

Добавлено: 11 янв 2011, 13:36
KATZ
n0where писал(а):Как заставить их работать?
При компиляции подключить EXTFUN.RES и не подключать EXTFUN_WT.RES.