Runtime error в VIP

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

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

Ответить
Rishat
Постоянный обитатель
Сообщения: 191
Зарегистрирован: 12 сен 2005, 17:10
Откуда: Наб. Челны

Runtime error в VIP

Сообщение Rishat »

подсобите с VIP'ом . здешний select на ура проходит в sql, а в компиляторе интерфейсов козу строит..постоянно runtime 216 (rtl: попытка обращения к неккоректному дескриптору) in atlantis дает.(support 5.1.33)

идея какова. цепляем штатное расписание с картотекой сотрудников и выводим по каждой должности разряды по факту и по плану, но все они группируются по должностям и соответственно сортировка должна быть по имени должности, в данном случае это catalogs.name.

попробовал через catalogs(CATBYNAME) но не хотит, сортирует относительно persons. а когда делаешь order by указынный ниже runtime вылетает. хотя sql всё чин чинарём выводит как полагается.

зы. всё это делается для fastreport отчета.

interface int4 'Интерфейс для отчета'
show at (0,0,51,40);
create view int1
as
select
persons.tabnmb,
persons.fio,
lschet.razr,
katpodr.name,
staffstruct.category,
catalogs.name
from
persons,
lschet,
katpodr,
staffstruct,
catalogs

where
((
persons.appointcur/==appointments.nrec
and
persons.nrec/==lschet.tperson
and
lschet.cex/==katpodr.nrec
and
appointments.post/==catalogs.nrec
and
appointments.staffstr==staffstruct.nrec
))
order external by catalogs.name
;

datastream stream1
(
table persons
(
[persons_tabnmb] persons.tabnmb;
[persons_fio] persons.fio;
[lschet_razr] lschet.razr;
[katpodr_name1] katpodr.name;
[staffstruct_category] staffstruct.category;
[catalogs_name1] catalogs.name;
)
;
)
end;

browse b1
show at (1,1,50,20);
table persons
fields
persons.tabnmb 'persons.tabnmb':protect;
persons.fio 'persons.fio':protect;
lschet.razr 'lschet.razr':protect;
katpodr.name 'katpodr.name':protect;
staffstruct.category 'staffstruct.category':protect;
catalogs.name 'catalogs.name':protect;
end;
screen sc1
show at (1,21,50,39);
buttons
cmb1;
<<
<. Отчет .>
>>
end;
handleevent
cmb1:
{
RunFReport(stream1, '', true);
}
end;
end.
Rishat
Постоянный обитатель
Сообщения: 191
Зарегистрирован: 12 сен 2005, 17:10
Откуда: Наб. Челны

Сообщение Rishat »

есть какие соображения "галактисты"? горю.. :o
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

хм. поставь мессажей, посмотри где конкретно валиться.
Rishat
Постоянный обитатель
Сообщения: 191
Зарегистрирован: 12 сен 2005, 17:10
Откуда: Наб. Челны

Сообщение Rishat »

дело в том что отчет сам по себе компилиться нормально, runtime вылетает при открытии самого интерфейса.
san
Местный житель
Сообщения: 412
Зарегистрирован: 28 апр 2005, 11:34
Откуда: Галактика Млечный Путь

Сообщение san »

а если order external by catalogs.name убрать, упадет?
Rishat
Постоянный обитатель
Сообщения: 191
Зарегистрирован: 12 сен 2005, 17:10
Откуда: Наб. Челны

Сообщение Rishat »

нет. но он мне как раз и нужен. почему написано в самом начале(сортировка по должностям).
san
Местный житель
Сообщения: 412
Зарегистрирован: 28 апр 2005, 11:34
Откуда: Галактика Млечный Путь

Сообщение san »

а если так попробовать:
appointments.post/==catalogs.nrec (noindex)

order by catalogs.name
?
Rishat
Постоянный обитатель
Сообщения: 191
Зарегистрирован: 12 сен 2005, 17:10
Откуда: Наб. Челны

Сообщение Rishat »

неа не катит, runtime валит support. и без external в order by никак, потому как у нас корневая таблица persons.
san
Местный житель
Сообщения: 412
Зарегистрирован: 28 апр 2005, 11:34
Откуда: Галактика Млечный Путь

Сообщение san »

external тебе тут нужен потому что ты в catalogs используешь индекс по полю nrec, причем тут persons не понятно. фактически тебе нужен индекс name+nrec.... а нельзя catalogs сделать корневой таблицей?
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Сообщение WiRuc »

san писал(а):а если order external by catalogs.name убрать, упадет?
Присоединяюсь. Абсолютно глючная конструкция, которая нормально работает только на простейшей выборке из одной таблицы. Наполняйте временную таблицу, а затем уже из нее делайте ORDER EXTERNAL by name.
Rishat
Постоянный обитатель
Сообщения: 191
Зарегистрирован: 12 сен 2005, 17:10
Откуда: Наб. Челны

Сообщение Rishat »

данную траблу добавили в ПИР.
Ответить