остатки МЦ на заданную дату в ard отчете
Модераторы: m0p3e, edward_K, Модераторы
-
- Постоянный гость
- Сообщения: 52
- Зарегистрирован: 28 июн 2006, 08:45
- Откуда: Уфа
остатки МЦ на заданную дату в ard отчете
В ard отчете необходимо вывести остатки по МЦ на дату формирования отчета.
Если кто-нибудь сталкивался с этим делом, выложите пожалуйста вьюшку для примера.
Заранее спасибо!
Если кто-нибудь сталкивался с этим делом, выложите пожалуйста вьюшку для примера.
Заранее спасибо!
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
селектом вы запаритесь
тем более что теперь в saldomc остатки лежат не на конкретнуюю дату а на каждую дату движения по разрезу( грубо getlast saldomc по требуемому разрезу)
но так у вас точно совпадет с галакт.отчетами
Store_Init ;
Store_TypeOstatki(False) ;
Store_SkladProizv(wskl);
//{ выгружает во временную таблицу TmpSaldo входящие остатки по разрезу }
//{ склад мол партия }
//{ три последних параметра при значении TRUE выгружают в TmpSaldo }
//{ все записи не зависимо от соответствующего разреза }
//{ при значении FALSE - производится группировка }
//{ -2 означает работу с таблицей Pick }
//procedure Store_Run(dDate : longint; cMC, cPodr, cMol, cParty : comp;
// TakePodr, TakeMol, TakeParty : boolean{; TakeVal : boolean = false});
Store_Run ( wwdt, wcmc_sk ,wcpodr_sk,comp(0),comp(0),TRUE, True,false ) ;
Nextvisual ;
wchet:=0
if vsklad.getfirst TmpSaldo1 ordered by index TMPSaldo103=0
do {
....
} while vsklad.getnext TmpSaldo1 ordered by index TMPSaldo103=0
Store_Done ;
могете еще поискать на форуме - это не раз обсуждалось
тем более что теперь в saldomc остатки лежат не на конкретнуюю дату а на каждую дату движения по разрезу( грубо getlast saldomc по требуемому разрезу)
но так у вас точно совпадет с галакт.отчетами
Store_Init ;
Store_TypeOstatki(False) ;
Store_SkladProizv(wskl);
//{ выгружает во временную таблицу TmpSaldo входящие остатки по разрезу }
//{ склад мол партия }
//{ три последних параметра при значении TRUE выгружают в TmpSaldo }
//{ все записи не зависимо от соответствующего разреза }
//{ при значении FALSE - производится группировка }
//{ -2 означает работу с таблицей Pick }
//procedure Store_Run(dDate : longint; cMC, cPodr, cMol, cParty : comp;
// TakePodr, TakeMol, TakeParty : boolean{; TakeVal : boolean = false});
Store_Run ( wwdt, wcmc_sk ,wcpodr_sk,comp(0),comp(0),TRUE, True,false ) ;
Nextvisual ;
wchet:=0
if vsklad.getfirst TmpSaldo1 ordered by index TMPSaldo103=0
do {
....
} while vsklad.getnext TmpSaldo1 ordered by index TMPSaldo103=0
Store_Done ;
могете еще поискать на форуме - это не раз обсуждалось
-
- Посетитель
- Сообщения: 41
- Зарегистрирован: 30 ноя 2005, 10:54
- Откуда: Пермь
- Контактная информация:
можно здесь почитать: http://www.tyumbit.ru/gal_forum/viewtopic.php?t=485
-
- Постоянный гость
- Сообщения: 86
- Зарегистрирован: 28 апр 2005, 12:15
- Откуда: Москва
Можно еще так
InitMcInfo(d1); // d1 := SUB_DAY(Cur_Date,1) если на текущий день считать;
а дальше функция
NALT(d1,MC,COMP1,comp2,comp3);
// d1 - дата расчета остатков
// MC - katmc.nrec
// comp1 - склад
// comp2 - katmol.nrec: если = 0 - без мол, если = -1 то на МОЛ внимания не обращать, считать все
// comp3 - katrparty.nrec: если = 0 - без партий если = -1 то на партии внимания не обращать, считать все
В конце DONEMCINFO
InitMcInfo(d1); // d1 := SUB_DAY(Cur_Date,1) если на текущий день считать;
а дальше функция
NALT(d1,MC,COMP1,comp2,comp3);
// d1 - дата расчета остатков
// MC - katmc.nrec
// comp1 - склад
// comp2 - katmol.nrec: если = 0 - без мол, если = -1 то на МОЛ внимания не обращать, считать все
// comp3 - katrparty.nrec: если = 0 - без партий если = -1 то на партии внимания не обращать, считать все
В конце DONEMCINFO
А как по скорости это все дело крутиться, так же как и в стандартных гал. отчетах?
Я делаю циклами по катмц, подр, партии, и хожу на последнюю запись сальдо. Получается довольно долго.
Надо попробывать
Store_Init ;
Store_TypeOstatki(False) ;
Store_SkladProizv(wskl);
что то в исходниках гал-их видел? разобраться не получилось, а сейчас начинает доходить.
Я делаю циклами по катмц, подр, партии, и хожу на последнюю запись сальдо. Получается довольно долго.
Надо попробывать
Store_Init ;
Store_TypeOstatki(False) ;
Store_SkladProizv(wskl);
что то в исходниках гал-их видел? разобраться не получилось, а сейчас начинает доходить.
-
- Постоянный гость
- Сообщения: 86
- Зарегистрирован: 28 апр 2005, 12:15
- Откуда: Москва
-
- Местный житель
- Сообщения: 1357
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: СПб, ЭП-Аудит
- Контактная информация:
И не стоит обижаться.Точно.Как я сразу не заметил.
Но надо понимать - что вышеописанная функция тянет данные из БД.
А вот за попадание правильных данных в БД отвечает савершенно другая функция.
И даже если выставите настройку в положение корректного округления попадания данных - то это вас не спасет, так как функция сохраняет историю данных, влияя на текущее состояние БД.
И если данные когда либо были не корректные, то и вся история не корректная.
Вообщем все это решается за 1 день или вечер!
-
- Местный житель
- Сообщения: 412
- Зарегистрирован: 28 апр 2005, 11:34
- Откуда: Галактика Млечный Путь
Ни чего подобного. расчет идет по формуле sporder.kol*sporder.srprice.и все это складывается в заданом разрезе.Seybukan писал(а): Вообщем все это решается за 1 день или вечер!
в оборотке есть настрока включить округление, если включено - приход/расход считается round(sporder.kol*sporder.srprice,2), в итоге исх сальдо не будет соотв входящему след периода. т.к. в сальдо (ф-ции) округление не предусмотрено. если расхождение на копейки вас не волнует, то это не предмет разговора.