Почему нет цикла?

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

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

Ответить
sildae
Постоянный обитатель
Сообщения: 188
Зарегистрирован: 04 апр 2009, 15:56
Откуда: сАРАТОВ
Контактная информация:

Почему нет цикла?

Сообщение sildae »

Почему-то нет цикла в таблице tnakl, показывается только последняя запись накладной. Запрос сам по себе работает.
.create view tnakl
from basedoc
where
((aa==Basedoc.nrec
and
spsopr.cmcusl==katmc.nrec
and
katsopr.nrec==spsopr.csopr
and
stepdoc.nrec==katsopr.CSTEPDOC
and
basedoc.nrec==stepdoc.CBASEDOC
))
and
vid=spsopr.vidsopr
;
.create view tt
from limtmp
;
.fields
Клиент
Начало_периода
Конец_периода
Дата_остатка Сумма_остатка2
.endfields
.{
Клиент @@@@@@@@@@@@@@@@@@@@@@@@ За период: ^ по ^
@@@@@@@@@@ Вх.ост &'&&&&&&&&&&&&&.&&

.{
.begin
delete all limtmp;
end.
.begin
aa:=comp(Нрек_счета);
vid:=word(202);
end.
.{table 'tnakl'
.begin
c_mc:=tnakl.spsopr.cmcusl;
if (tt.getfirst limtmp where ((c_mc==limtmp.ckatmc))<>tsok) then begin
insert limtmp
set
limtmp.namemc:=tnakl.katmc.name,
limtmp.barkod:=tnakl.katmc.barkod,
limtmp.dsumlimit:=tnakl.spsopr.kolfact,
limtmp.ckatmc:=tnakl.spsopr.cmcusl,
limtmp.LASTUSER:=tnakl.katmc.tnved;
end;
else
update current limtmp set limtmp.dsumlimit:=limtmp.dsumlimit+tnakl.spsopr.kolfact;
end.
.} // tnakl

Заранее спасибо!
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

по сути у вас цикл по главной таблице вьюхи - basedoc
нужно организовать цикл по всем узлам, включая spsopr

попробуйте так

Код: Выделить всё

.create view tnakl
from basedoc
where
((aa==Basedoc.nrec and
basedoc.nrec==stepdoc.CBASEDOC and
stepdoc.nrec==katsopr.CSTEPDOC and
katsopr.nrec==spsopr.csopr and
word (202) == spsopr.vidsopr (noindex) and // в любом случае будет быстрее чем фильтр
spsopr.cmcusl==katmc.nrec and
katmc.nrec == limtmp.ckatmc
));

.fields
Клиент
Начало_периода
Конец_периода
Дата_остатка Сумма_остатка2
.endfields
.{
Клиент @@@@@@@@@@@@@@@@@@@@@@@@ За период: ^ по ^
@@@@@@@@@@ Вх.ост &'&&&&&&&&&&&&&.&&

.{
.begin
delete all limtmp;
end.
.begin
aa:=comp(Нрек_счета);
end.
.{table 'tnakl.basedoc'
.{table 'tnakl.stepdoc'
.{table 'tnakl.katsopr'
.{table 'tnakl.spsopr'
.begin
c_mc:=tnakl.spsopr.cmcusl;
if (tnakl.getfirst limtmp where ((c_mc==limtmp.ckatmc))<>tsok) then begin
insert limtmp
set
limtmp.namemc:=tnakl.katmc.name,
limtmp.barkod:=tnakl.katmc.barkod,
limtmp.dsumlimit:=tnakl.spsopr.kolfact,
limtmp.ckatmc:=tnakl.spsopr.cmcusl,
limtmp.LASTUSER:=tnakl.katmc.tnved;
end;
else
update current limtmp set limtmp.dsumlimit:=limtmp.dsumlimit+tnakl.spsopr.kolfact;
end.
.} //spsopr
.} //katsopr
.} //stepdoc
.} //basedoc
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
sildae
Постоянный обитатель
Сообщения: 188
Зарегистрирован: 04 апр 2009, 15:56
Откуда: сАРАТОВ
Контактная информация:

Сообщение sildae »

Спасибо, все получилось!
Ответить