Компилирую форму по кассе
Модераторы: m0p3e, edward_K, Модераторы
Компилирую форму по кассе
Нужна помощь начинающему!!! При создании формы выдаются неправильно сумма "Остаток на начало" Прописала счет 50 - касса, а вот как прописать субсчет 00-рублевая незнаю...
В ARD создала отчет "О движении денежных средств (EXCELL)" (по старой форме, редактирую через support), а что и где добавить не знаю???
Вот сама форма:
.form 'Отчет по движению денежных средств (Excell)'
.ard
.group 'Отчеты по кассе'
.VAR
MyPlansNo: comp;
! InterfaceResult,wlntMode:word;
begdate,enddate,dat,ddok: date;
! sGetSch,sGetSub:string;
ndoc, ks,kss,nsod,npol: string;
nrecplpor:comp;
Dst,dst1: word;
Evalute: boolean;
w:integer;
sald_beg,sald_end,summa_d,summa_k,itog_d,itog_k: double;
.endvar
.begin
MyPlansNo:= xxx // План счетов
end.
.create view sald1
as select datesal
from saldday
where
MyPlansNo=CPLANSSCH
and '550' = scheto
and begdate>=datesal
and 0<>sums
order by saldday.datesal
;
.create view saldb
as select datesal,sums
from saldday
where
MyPlansNo=CPLANSSCH
and '550' = scheto
and dat=datesal
and 0<>sums
;
.create view tabl
as select
nrec,nodok,datvip,datob,sumplat,direct,podotchet,namepl1,tidkgal
from plpor
where
((
begdate <<=datob
and enddate >>=datob
))
and (7=plpor.tidkgal or 8=plpor.tidkgal)
order by plpor.datob,plpor.tidkgal,plpor.nodok
;
.create view obor
as select *
from oborot
where
((
MyPlansNo==CPLANSSCH
and nrecplpor==csoprdoc (noindex)
))
and (7=tidkgal or 8=tidkgal)
;
.FIELDS
begdate enddate
dat
sald_beg
!!!!
!ddok ndoc ks kss nsod npol summa_d summa_k
tabl.plpor.datob tabl.plpor.nodok ks kss tabl.plpor.namepl1 tabl.plpor.podotchet summa_d summa_k
itog_d itog_k
enddate
sald_end
.endfields
.begin
BegDate := cur_date;
EndDate := cur_date;
Evalute := false;
Dst := rundialog('c_common::getinterval', begdate, enddate);
if (Dst = 11) then Message ('Начальная дата больше конечной',1)
BegDate := date(1,month(begdate),year(begdate));
Evalute := true;
end.
.{?INTERNAL; Evalute;
Отчет по движению денежных средств по кассе
за период с ^ по ^
ЗДЕСЬ ТАБЛИЧКА!!! Ниже столбики её
Дата Номер Корреспондирующий Содержание операции Плательщик / получатель Приход Расход
документа документа Счет Субсчет
.begin
summa_d:=0;summa_k:=0; itog_d:=0; itog_k:=0;
if (sald1.getlast=0) then
dat:=sald1.saldday.datesal else dat:=begdate;
if (saldb.getfirst=0) then
do begin
if saldb.saldday.viob=1 then sald_beg:=sald_beg+saldb.saldday.sums else sald_beg:=sald_beg-saldb.saldday.sums;
end
while (saldb.getnext=0)
else sald_beg:=0 ;
end.
Остаток на начало ^ &#&&&&&&&&&.&&
.{table 'tabl' by tabl.plpor.datob;
.begin
nrecplpor:=tabl.plpor.nrec;
w:=tabl.plpor.tidkgal;
if obor.getfirst=0 then
begin
if w=8 then
begin
ks:=substr(obor.oborot.scheto,2,2);
kss:=obor.oborot.subossch;
end
else
begin
ks:=substr(obor.oborot.schetk,2,2);
kss:=obor.oborot.subschk;
end
end
else begin ks:=''; kss:=''; end;
if tabl.plpor.tidkgal=7 then begin summa_d:=tabl.plpor.sumplat;summa_k:=0; end
else begin summa_k:=tabl.plpor.sumplat;summa_d:=0; end
end.
^ ^ ^ ^ ^ ^ &#&&&&&&&&&.&& &#&&&&&&&&&.&&
.begin itog_d:=itog_d+summa_d; itog_k:=itog_k+summa_k; summa_k:=0; summa_d:=0; end.
.}
Итого за период &#&&&&&&&&&.&& &#&&&&&&&&&.&&
.begin sald_end:=sald_beg+itog_d-itog_k; end.
Остаток на конец периода (^) &#&&&&&&&&&.&&
Бухгалтер
.}
.endform
В ARD создала отчет "О движении денежных средств (EXCELL)" (по старой форме, редактирую через support), а что и где добавить не знаю???
Вот сама форма:
.form 'Отчет по движению денежных средств (Excell)'
.ard
.group 'Отчеты по кассе'
.VAR
MyPlansNo: comp;
! InterfaceResult,wlntMode:word;
begdate,enddate,dat,ddok: date;
! sGetSch,sGetSub:string;
ndoc, ks,kss,nsod,npol: string;
nrecplpor:comp;
Dst,dst1: word;
Evalute: boolean;
w:integer;
sald_beg,sald_end,summa_d,summa_k,itog_d,itog_k: double;
.endvar
.begin
MyPlansNo:= xxx // План счетов
end.
.create view sald1
as select datesal
from saldday
where
MyPlansNo=CPLANSSCH
and '550' = scheto
and begdate>=datesal
and 0<>sums
order by saldday.datesal
;
.create view saldb
as select datesal,sums
from saldday
where
MyPlansNo=CPLANSSCH
and '550' = scheto
and dat=datesal
and 0<>sums
;
.create view tabl
as select
nrec,nodok,datvip,datob,sumplat,direct,podotchet,namepl1,tidkgal
from plpor
where
((
begdate <<=datob
and enddate >>=datob
))
and (7=plpor.tidkgal or 8=plpor.tidkgal)
order by plpor.datob,plpor.tidkgal,plpor.nodok
;
.create view obor
as select *
from oborot
where
((
MyPlansNo==CPLANSSCH
and nrecplpor==csoprdoc (noindex)
))
and (7=tidkgal or 8=tidkgal)
;
.FIELDS
begdate enddate
dat
sald_beg
!!!!
!ddok ndoc ks kss nsod npol summa_d summa_k
tabl.plpor.datob tabl.plpor.nodok ks kss tabl.plpor.namepl1 tabl.plpor.podotchet summa_d summa_k
itog_d itog_k
enddate
sald_end
.endfields
.begin
BegDate := cur_date;
EndDate := cur_date;
Evalute := false;
Dst := rundialog('c_common::getinterval', begdate, enddate);
if (Dst = 11) then Message ('Начальная дата больше конечной',1)
BegDate := date(1,month(begdate),year(begdate));
Evalute := true;
end.
.{?INTERNAL; Evalute;
Отчет по движению денежных средств по кассе
за период с ^ по ^
ЗДЕСЬ ТАБЛИЧКА!!! Ниже столбики её
Дата Номер Корреспондирующий Содержание операции Плательщик / получатель Приход Расход
документа документа Счет Субсчет
.begin
summa_d:=0;summa_k:=0; itog_d:=0; itog_k:=0;
if (sald1.getlast=0) then
dat:=sald1.saldday.datesal else dat:=begdate;
if (saldb.getfirst=0) then
do begin
if saldb.saldday.viob=1 then sald_beg:=sald_beg+saldb.saldday.sums else sald_beg:=sald_beg-saldb.saldday.sums;
end
while (saldb.getnext=0)
else sald_beg:=0 ;
end.
Остаток на начало ^ &#&&&&&&&&&.&&
.{table 'tabl' by tabl.plpor.datob;
.begin
nrecplpor:=tabl.plpor.nrec;
w:=tabl.plpor.tidkgal;
if obor.getfirst=0 then
begin
if w=8 then
begin
ks:=substr(obor.oborot.scheto,2,2);
kss:=obor.oborot.subossch;
end
else
begin
ks:=substr(obor.oborot.schetk,2,2);
kss:=obor.oborot.subschk;
end
end
else begin ks:=''; kss:=''; end;
if tabl.plpor.tidkgal=7 then begin summa_d:=tabl.plpor.sumplat;summa_k:=0; end
else begin summa_k:=tabl.plpor.sumplat;summa_d:=0; end
end.
^ ^ ^ ^ ^ ^ &#&&&&&&&&&.&& &#&&&&&&&&&.&&
.begin itog_d:=itog_d+summa_d; itog_k:=itog_k+summa_k; summa_k:=0; summa_d:=0; end.
.}
Итого за период &#&&&&&&&&&.&& &#&&&&&&&&&.&&
.begin sald_end:=sald_beg+itog_d-itog_k; end.
Остаток на конец периода (^) &#&&&&&&&&&.&&
Бухгалтер
.}
.endform
Последний раз редактировалось Найдёнок 13 окт 2014, 14:20, всего редактировалось 1 раз.
Re: Компилирую форму по кассе
Забыла добавить, что работаем в системе "Галактика ERP 8.1"
Вижу, что сальдо в поле "Остаток на начало" берется все сальдо по 50 счету и по всем субсчетам! А нужно только субсчет 00-рублевую
Заранее буду благодарна за помощь!
Вижу, что сальдо в поле "Остаток на начало" берется все сальдо по 50 счету и по всем субсчетам! А нужно только субсчет 00-рублевую
Заранее буду благодарна за помощь!
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Компилирую форму по кассе
and '550' = scheto
and '00'= subossch
если в вашем стиле. Работать будет, но ужасно медленно . Все таки надо учиться писать индексные отборы в (( )). Да и имя таблы лучше указывать явно.
and '00'= subossch
если в вашем стиле. Работать будет, но ужасно медленно . Все таки надо учиться писать индексные отборы в (( )). Да и имя таблы лучше указывать явно.
Re: Компилирую форму по кассе
Пробовала, не срабатывает... выдает пустое поле!!! Заметила, что ооооочень медленнннноооо...
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Компилирую форму по кассе
ну вообще субсчет 00 редкое явление - может все таки 01? Вы ж посмотрите в плане счетов с кодом 5. Да и прежде не лишне в сапорте отоборать.
Re: Компилирую форму по кассе
Теперь встала другая проблема: показывается сумма "Остаток на начало" не правильная и отчет выводиться с 01 числа... хотя задавали с 10 по 10... что еще не правильно в этой форме?
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Компилирую форму по кассе
то что не везде добавили вероятно. Везде где юзаете saldday и oborot нужна сия проверка.
Местами кстати индексные отборы - а чего в сальдо такие же не пропишите? Вообще getLast без нидекса это плохо - вы ориентируетесь тогда nrec - а могли сальдо пересчитать на старые даты.
logstrtofile вам в помощь - чего гадать то? Выведете все спорные моменты в лог и посмотрите. чаго вы там на самом деле нашли.
Местами кстати индексные отборы - а чего в сальдо такие же не пропишите? Вообще getLast без нидекса это плохо - вы ориентируетесь тогда nrec - а могли сальдо пересчитать на старые даты.
logstrtofile вам в помощь - чего гадать то? Выведете все спорные моменты в лог и посмотрите. чаго вы там на самом деле нашли.
Re: Компилирую форму по кассе
Не подскажите... а где можно посмотреть инфу... про то как пользоваться процедурой LogStrToFile.... а то инфы много, а конкретного ничего нет)...
Простите... я только учусь!
Простите... я только учусь!
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Компилирую форму по кассе
//ftp.galaktika.ru/pub/support/galaktika/Documentation81/baza/pdf/vipprogr.chm
Re: Компилирую форму по кассе
Всем спасибки)... Совместными усилиями доделала форму)))...
Тема закрыта!!!
Тема закрыта!!!