
Нужна функция получения остатка
Модераторы: m0p3e, edward_K, Модераторы
Нужна функция получения остатка
конкретной МЦ на конкретную дату. Вроде кто-то давал таковую да не находится чегойто.. 

Re: Нужна функция получения остатка
Написано на 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
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: Нужна функция получения остатка
... и еще желательно на конкретную партию, склад и МОЛ.
Re: Нужна функция получения остатка
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)
а) инициализация объекта, открытие таблиц
в) устанавливает дату расчета остатков МЦ
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: Нужна функция получения остатка
>Vitas.
Сенки. NalT то что дохтер прописал
Сенки. NalT то что дохтер прописал

Re: Нужна функция получения остатка
Да не за что:)
Сам использую в производстве
Сам использую в производстве

Ищу возможности довести и так отличный продукт до еще большего блеска
Re: Нужна функция получения остатка
Использую функцию NalTov - при формировании отчета выдает: Потеряли функцию NalTov. И потом вылетает.
Подскажите, что надо сделать, чтоб работало?
Подскажите, что надо сделать, чтоб работало?
Re: Нужна функция получения остатка
InitMcInfo ( date ) до
и DoneMcInfo после
и DoneMcInfo после

Re: Нужна функция получения остатка
Мне надо остатки по МЦ и по складу.
Делаю так:
...
myost:Comp
...
InitMcInfo(Cur_date)
myost:=NalT(Cur_date, mc_nrec, skl_nrec, 0,0)
kol_ost:=CountMc
DoneMcInfo()
в результате дает остатки по предприятию, а не по складу.
И еще, что возвращает функция NalT?
NalTov - у меня так и не получилось использовать....
Делаю так:
...
myost:Comp
...
InitMcInfo(Cur_date)
myost:=NalT(Cur_date, mc_nrec, skl_nrec, 0,0)
kol_ost:=CountMc
DoneMcInfo()
в результате дает остатки по предприятию, а не по складу.
И еще, что возвращает функция NalT?
NalTov - у меня так и не получилось использовать....
Re: Нужна функция получения остатка
Viper как и компилятор интерфейсов пишет что нет такой функции InitMCInfo и тп.
Как заставить их работать?
Как заставить их работать?
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
Re: Нужна функция получения остатка
При компиляции подключить EXTFUN.RES и не подключать EXTFUN_WT.RES.n0where писал(а):Как заставить их работать?