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

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

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

Сообщение m0p3e »

конкретной МЦ на конкретную дату. Вроде кто-то давал таковую да не находится чегойто.. :)
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

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

Сообщение 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
hope
Местный житель
Сообщения: 1353
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

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

Сообщение hope »

... и еще желательно на конкретную партию, склад и МОЛ.
Vitas
Местный житель
Сообщения: 230
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Сибирь

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

Сообщение 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)
Ищу возможности довести и так отличный продукт до еще большего блеска
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

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

Сообщение m0p3e »

>Vitas.
Сенки. NalT то что дохтер прописал :)
Vitas
Местный житель
Сообщения: 230
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Сибирь

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

Сообщение Vitas »

Да не за что:)
Сам использую в производстве :)
Ищу возможности довести и так отличный продукт до еще большего блеска
hope
Местный житель
Сообщения: 1353
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

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

Сообщение hope »

Использую функцию NalTov - при формировании отчета выдает: Потеряли функцию NalTov. И потом вылетает.

Подскажите, что надо сделать, чтоб работало?
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

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

Сообщение m0p3e »

InitMcInfo ( date ) до
и DoneMcInfo после :)
hope
Местный житель
Сообщения: 1353
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

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

Сообщение hope »

Мне надо остатки по МЦ и по складу.
Делаю так:
...
myost:Comp
...
InitMcInfo(Cur_date)
myost:=NalT(Cur_date, mc_nrec, skl_nrec, 0,0)
kol_ost:=CountMc
DoneMcInfo()

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

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

NalTov - у меня так и не получилось использовать....
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

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

Сообщение n0where »

Viper как и компилятор интерфейсов пишет что нет такой функции InitMCInfo и тп.

Как заставить их работать?
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
KATZ
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49

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

Сообщение KATZ »

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