Не отрабатывает условие
Добавлено: 01 июн 2009, 13:55
Код: Выделить всё
interface nerasch_sotr 'nerasch_sotr' EscClose;
show at (3, 3, 63, 13);
form nerasch_sotr ('nerasch_sotr') with novisual;
var
datotch : date;
lschet_nrec : comp;
sum_nashicl : double;
podrnrec : comp;
podrnames:string;
podrmarker,mid : longint;
create view vpodr_pick
as select *
from pick
where((
word(11)/==pick.wlist
));
function podrCount: string;
var cnt: integer;
begin
cnt:= 0;
if vpodr_pick.getfirst pick=tsok
vpodr_pick._loop pick
{
cnt:=cnt+1;
}
case cnt of
1: podrCount:= '1 Ї®¤а §¤Ґ«ҐЁҐ';
2,3,4: podrCount:= cnt+' Ї®¤а §¤Ґ«ҐЁп';
else podrCount:= cnt+' Ї®¤а §¤Ґ«ҐЁ©';
end;
end;
table struct tmain_nach
(
lschet_nrec: comp,
tabn: string,
fio: string
)
with index
(
i0 = lschet_nrec
)
;
create view vmain
as
from tmain_nach (memory);
create view vsotr
as select lschet.nrec,lschet.tabn,persons.fio
from lschet,persons,katpodr,pick
where((
lschet.tperson==persons.nrec
and lschet.cex==katpodr.nrec
and word(11)==pick.wlist
and katpodr.nrec==pick.crec
))
and (lschet.datuv=0 or lschet.datuv>datotch)
;
create view vnachisl
as select *
from nachisl
where((
lschet_nrec/==nachisl.clsch
));
screen smain;
show at (1, 1, 59, 9);
fields
podrnames:pickbutton,protect;
buttons
cmPrint;
<<
Подразделение .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<. Сформировать .>
>>
end;
handleevent
cmDelOnProtect:
{
}
cmpick:
{
if curfield=#podrnames
{
delete from PICK where word(11)=pick.wlist;
runinterface('Z_KATPODR::GETSOMEPODR')
Set podrNames:= podrCount;
}
}
cmprint:
{
StartNewVisual(vtRotateVisual, vfThread or vfTimer, '‘Сбор и обработка данных', 1);
datotch:=dgettune('UP.DATOTCH');
vmain.delete all tmain_nach;
if vsotr.getfirst lschet=tsok
vsotr._loop lschet
{
vmain.insert tmain_nach
set
lschet_nrec:=vsotr.lschet.nrec,
tabn:=vsotr.lschet.tabn,
fio:=vsotr.persons.fio
}
if vmain.getfirst tmain_nach=tsok
vmain._loop tmain_nach
{
lschet_nrec:=vmain.tmain_nach.lschet_nrec;
sum_nashicl:=0;
if vnachisl.getfirst nachisl=tsok
vnachisl._loop nachisl
{
sum_nashicl:=sum_nashicl+vnachisl.nachisl.summa;
}
if (sum_nashicl=0)
{
nerasch_sotr.write(vmain.tmain_nach.tabn);
nerasch_sotr.write(vmain.tmain_nach.fio);
}
}
nerasch_sotr.putevent(feBreak);
StopVisual('', 0);
nerasch_sotr.showfile('');
}
end;
end.
Нормально считает сколько подразделений выбрано,
но при формировании попадают записи по всем подразделениям, не пойму в чем проблема.
Такое впечатление, что and word(11)==pick.wlist and katpodr.nrec==pick.crec вообще не отрабатывает.