Почему-то нет цикла в таблице 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
Заранее спасибо!
Почему нет цикла?
Модераторы: m0p3e, edward_K, Модераторы
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
по сути у вас цикл по главной таблице вьюхи - basedoc
нужно организовать цикл по всем узлам, включая spsopr
попробуйте так
нужно организовать цикл по всем узлам, включая 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