Помогите новичку!

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

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

Ответить
POMAH
Посетитель
Сообщения: 49
Зарегистрирован: 29 мар 2005, 17:49

Помогите новичку!

Сообщение POMAH »

С Галактикой работаю недавно. Попробовал тут нарисовать ARD отчет. Вот он:

.form 'Отчет'
.NameInList 'Реестр ДО на продажу за период'
.ard
.var
d1,d2:date
sum_do,sum_nal,sum_nds,sum_nsp:double
r_do,r_nal,r_nds,r_nsp:double
do_nds,do_nsp:double
.endvar
.begin
RunDialog('GetInterval',d1,d2);
end.
.create view t1 AS SELECT * FROM katorg, basedoc, spdocnal
WHERE ((katorg.nrec == basedoc.corg and basedoc.nrec == spdocnal.cdoc))
and basedoc.direct = 1 and basedoc.total <> 0
and basedoc.ddoc >= d1 and basedoc.ddoc <= d2
ORDER BY katorg.name, basedoc.nodoc, spdocnal.cdoc;
.fields
d1
d2
katorg.name
basedoc.ddoc
basedoc.nodoc
basedoc.total
basedoc.nds
do_nds
do_nsp
sum_do
sum_nal
sum_nds
sum_nsp
r_do
r_nal
r_nds
r_nsp
.endfields
.begin
r_do:=0
r_nal:=0
r_nds:=0
r_nsp:=0
end.
Реестр ДО на продажу за перод с ^ по ^
.{table 't1' by katorg.name, basedoc.nodoc, spdocnal.cdoc;T1
.begin
sum_do:=0
sum_nal:=0
end.
.{by katorg.name;ORG
------------------------------------------------------------------------------------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
------------------------------------------------------------------------------------------
Дата ДО | Номер ДО | Сумма по ДО | Налог по ДО | НДС | НсП
.begin
sum_nds:=0
sum_nsp:=0
end.
.{by basedoc.nodoc;DOC
.begin
sum_do:=sum_do+basedoc.total
sum_nal:=sum_nal+basedoc.nds
r_do:=r_do+basedoc.total
r_nal:=r_nal+basedoc.nds
end.
----------+---------------+---------------+---------------+---------------+---------------
@@@@@@@@@@|&&&&&&&&&&&&&&&|&&&&&&&&&&&&.&&|&&&&&&&&&&&&.&&| |
.{by spdocnal.cdoc;NAL
.begin
IF spdocnal.cnalog = 2h THEN sum_nds:=sum_nds+spdocnal.sumnal;
IF spdocnal.cnalog = 4h THEN sum_nsp:=sum_nsp+spdocnal.sumnal;
IF spdocnal.cnalog = 2h THEN r_nds:=r_nds+spdocnal.sumnal;
IF spdocnal.cnalog = 4h THEN r_nsp:=r_nsp+spdocnal.sumnal;
IF spdocnal.cnalog = 2h THEN do_nds:=do_nds+spdocnal.sumnal;
IF spdocnal.cnalog = 4h THEN do_nsp:=do_nsp+spdocnal.sumnal;
end.
.} // End NAL
| | | |&&&&&&&&&&&&.&&|&&&&&&&&&&&&.&&
.begin
do_nds:=0
do_nsp:=0
end.
.} // End DOC
.} // End ORG
--------------------------+---------------+---------------+---------------+---------------
ИТОГО ПО КОНТРАГЕНТУ: |&&&&&&&&&&&&.&&|&&&&&&&&&&&&.&&|&&&&&&&&&&&&.&&|&&&&&&&&&&&&.&&
.} // End T1
==========================================================================================
ИТОГО ПО РЕЕСТРУ: |&&&&&&&&&&&&.&&|&&&&&&&&&&&&.&&|&&&&&&&&&&&&.&&|&&&&&&&&&&&&.&&
==========================================================================================
.endform

Вроде как и работает, да чейто как то не так. А именно, разбивает сумму НДС и(или) НсП в ДО идущему первым в группировке по контрагенту на две суммы, складывай типа сам :-( дальше все правильно считает и итоги по контрагенту и реестру всего считает на удивление правильно. Подскажите пожалуста как решить сей казус.
Ответить