знатокам VIP-а
Добавлено: 08 авг 2002, 12:14
Состряпал фейс, суть которого в следующем :
При выборе из древовидного каталога организаций в pick попадают эти организации, мне нужно их отсортировать по имени, для этого после выбора я создаю дополнительную вью,таблу в памяти.Засовываю туда данные и создав нужный индекс получаю оганзации в нужной сортировки, кторые затем заново пихаю в pick. Но при выполнении происходят непонятная вещь.После первого запуска отрабатывает все номрально, но при каждом следующем почему-то невозможно получить запись из таблицы в памяти. Что за фигня такая, мож кто подскажет
-------------------------------------
table struct fff
(
ccrec :comp,
cname :string[120],
cregname:string[120]
)
with index
(
fff02=cregname+cname
);
interface lalala 'что-то непонятное';
create view
var
regnam: string
schetc :word
as select * from
synonym katorgdescr korg1,
synonym katorgdescr korg2,
synonym pick pi
where ((
word(1006)==pi.wlist
and pi.crec==korg1.nrec
and korg1.cgroup==korg2.nrec))
and korg1.isleaf=1
order by pi.picknum;
form ttt('ttt.out');
create view fast
as select * from
synonym katorgdescr korgi1,
synonym katorgdescr korgi2,
synonym pick pic
where ((
word(1006)==pic.wlist
and pic.crec==korgi1.nrec
and korgi1.cgroup==korgi2.nrec))
and korgi1.isleaf=1
order by korgi1.cgroup,korgi1.name;
Procedure perebor;
{
if fast.getfirst pic=tsok
{
do
{
fff.ccrec :=fast.korgi1.nrec;
fff.cname :=fast.korgi1.name;
fff.cregname:=fast.korgi2.name;
insert current fff;
}
while fast.getnext pic=tsok;
};
delete all from pick where ((word(1006)==pick.wlist));
}
Handleevent
Cminit :{
Runinterface('getkkkk');
perebor;
if getfirst fff=tsok
do
{
schetc:=schetc+1;
insert pick set
pick.crec :=fff.ccrec ,
pick.wlist:=word(1006) ,
pick.pickkol:=double(schetc),
pick.picknum:=schetc;
}
while getnext fff=tsok;
else Message('не могу попасть в память');
delete all from fff;
_Loop pi
{
if regnam<>korg2.name
{
regnam:=korg2.name;
ttt.puteventbyi(fetrue,fchehe);
ttt.write(korg2.name);
}
ttt.write(korg1.name);
}
ttt.showfile;
abort;
exit;
}
end;
end.
При выборе из древовидного каталога организаций в pick попадают эти организации, мне нужно их отсортировать по имени, для этого после выбора я создаю дополнительную вью,таблу в памяти.Засовываю туда данные и создав нужный индекс получаю оганзации в нужной сортировки, кторые затем заново пихаю в pick. Но при выполнении происходят непонятная вещь.После первого запуска отрабатывает все номрально, но при каждом следующем почему-то невозможно получить запись из таблицы в памяти. Что за фигня такая, мож кто подскажет
-------------------------------------
table struct fff
(
ccrec :comp,
cname :string[120],
cregname:string[120]
)
with index
(
fff02=cregname+cname
);
interface lalala 'что-то непонятное';
create view
var
regnam: string
schetc :word
as select * from
synonym katorgdescr korg1,
synonym katorgdescr korg2,
synonym pick pi
where ((
word(1006)==pi.wlist
and pi.crec==korg1.nrec
and korg1.cgroup==korg2.nrec))
and korg1.isleaf=1
order by pi.picknum;
form ttt('ttt.out');
create view fast
as select * from
synonym katorgdescr korgi1,
synonym katorgdescr korgi2,
synonym pick pic
where ((
word(1006)==pic.wlist
and pic.crec==korgi1.nrec
and korgi1.cgroup==korgi2.nrec))
and korgi1.isleaf=1
order by korgi1.cgroup,korgi1.name;
Procedure perebor;
{
if fast.getfirst pic=tsok
{
do
{
fff.ccrec :=fast.korgi1.nrec;
fff.cname :=fast.korgi1.name;
fff.cregname:=fast.korgi2.name;
insert current fff;
}
while fast.getnext pic=tsok;
};
delete all from pick where ((word(1006)==pick.wlist));
}
Handleevent
Cminit :{
Runinterface('getkkkk');
perebor;
if getfirst fff=tsok
do
{
schetc:=schetc+1;
insert pick set
pick.crec :=fff.ccrec ,
pick.wlist:=word(1006) ,
pick.pickkol:=double(schetc),
pick.picknum:=schetc;
}
while getnext fff=tsok;
else Message('не могу попасть в память');
delete all from fff;
_Loop pi
{
if regnam<>korg2.name
{
regnam:=korg2.name;
ttt.puteventbyi(fetrue,fchehe);
ttt.write(korg2.name);
}
ttt.write(korg1.name);
}
ttt.showfile;
abort;
exit;
}
end;
end.