Подскажите пожалуйста виснет отчет, из-за чего непонятно.
Смысл отчета по каждой spkau будет некий набор stzatr с данными tab25 внутри.
Есть две вьюшки.
.Create View m //
from spkau
where ((
10013<<=spkau.kodgrkau
and 10036>>=spkau.kodgrkau
))
order by spkau.kodgrkau,spkau.code
;
.create view n from tab_25, stzatr
where ((
stzatr.nrec == tab_25.stkau3
and spkau_nrec == tab_25.ckau
));
Вывод в отчет осуществляется таким образом
if m.getfirst spkau = tsok {message('есть данные spkau')}
.{table 'm.spkau'
spkau_nrec := m.spkau.nrec;
if n.getfirst stzatr = tsok {message('есть данные stzatr')}
else message('нет данных stzatr');
.{table 'n.stzatr'
.{table 'n.tab_25'
...... подсчеты сумм по данной stzatr и spkau
.}
вывод итогов по данной stzatr
.}
вывод итогов по данной spkau
.}
вывод общих итогов
Вьюшки выгружаются нормально. Но сообщение "'есть данные spkau'" не выходит, отчет перед ним выснет.
В чем может быть причина подскажите пожалуйста.
Виснет отчет
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 1089
- Зарегистрирован: 04 сен 2008, 11:27
- Откуда: Москва
- Контактная информация:
Код: Выделить всё
.begin
spkau_nrec := m.spkau.nrec;
if n.getfirst stzatr = tsok {message('есть данные stzatr')}
else message('нет данных stzatr');
end.
Код: Выделить всё
order by spkau.kodgrkau,spkau.code
Время ведет!
Когда-то давно пытался сделать отчет с двумя логическими таблицами, долго бился, но он у меня так и не заработал. Объединил две ЛТ в одну - всё пошло с полуоборота. Может, в текущем атлантисе эта проблема решена, но тем не менее... Да и по логике разбивать вашу выборку на две части смысла нет. Сделайте как-то так:
Обход записей здесь идет благодаря .{table, так что в getfirstах нет надобности.
Код: Выделить всё
.create view AAA
from spkau, stzatr, tab_25
where
((
10013<<=spkau.kodgrkau and 10036>>=spkau.kodgrkau and
stzatr.nrec==tab_25.stkau3 and
spkau.nrec==tab_25.ckau
))
order by spkau.kodgrkau, spkau.code, stzatr.kod;
.....
.{table 'AAA.spkau'
.{table 'AAA.stzatr'
.{table 'AAA.tab_25'
.....
.}
.....
.}
.....
.}