знатокам VIP-а

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

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

Ответить
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

знатокам VIP-а

Сообщение Den »

Состряпал фейс, суть которого в следующем :
При выборе из древовидного каталога организаций в 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.
coolibin
Постоянный обитатель
Сообщения: 151
Зарегистрирован: 29 мар 2005, 17:49

Re: знатокам VIP-а

Сообщение coolibin »

Может есть разница - где описывать таблицу - до объявления интерфейса или после?
А вобще - если уж пользуешься собственным интерфейсом выбора, то нафига бедный pick мучить, может стоит сразу свою таблицу (с романтичным названием) набивать.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: знатокам VIP-а

Сообщение m0p3e »

Локально используемую таблу в памяти лучше описывать внутри интерфейса.
Vitas
Местный житель
Сообщения: 230
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Сибирь

Re: знатокам VIP-а

Сообщение Vitas »

Пиши ее сразу после Interface. И действительно, зачем тебе пик пользовать?
Ищу возможности довести и так отличный продукт до еще большего блеска
Ответить