Не могу отсортировать!
Добавлено: 22 ноя 2007, 09:03
Добрый день!
Мне нужно в отчет вытащить данные из таблицы OTPUSK, отсортированными по полю DATAN.
Делаю так:
.....
.create view fo
as select otpusk.*
from otpusk(OTPUSK04)
where ((otpusk.cfactotpusk==factotpusk.nrec)) and 0<factotpusk.cplanotpusk and 1=otpusk.kotpus
!order by otpusk.datan
bounds bfo = ltabn==otpusk.tabn
;
.....
fo.pushBounds(fo.tbbfo);
ltabn:=NNNN;
.....
.{ table 'fo' by fo.otpusk.datan
.....
.}
.....
Сортирует упорно по NREC.
Проблема в том, что когда оформляют отзыв из отпуска в середине периода, то запись в таблице OTPUSK корректируется (причем меняется именно поле DATAN), и следом формируется еще одна запись, относящаяся к началу отпуска, и в результате получается что сначала выводится запись о второй половинке разбитого отпуска, а потом о первой. Не могу это победить.
Если делать просто запрос(без отчета) с сортировкой
order by otpusk.datan, то все отрабатывает красиво. Но мне надо в отчете.
Мне нужно в отчет вытащить данные из таблицы OTPUSK, отсортированными по полю DATAN.
Делаю так:
.....
.create view fo
as select otpusk.*
from otpusk(OTPUSK04)
where ((otpusk.cfactotpusk==factotpusk.nrec)) and 0<factotpusk.cplanotpusk and 1=otpusk.kotpus
!order by otpusk.datan
bounds bfo = ltabn==otpusk.tabn
;
.....
fo.pushBounds(fo.tbbfo);
ltabn:=NNNN;
.....
.{ table 'fo' by fo.otpusk.datan
.....
.}
.....
Сортирует упорно по NREC.
Проблема в том, что когда оформляют отзыв из отпуска в середине периода, то запись в таблице OTPUSK корректируется (причем меняется именно поле DATAN), и следом формируется еще одна запись, относящаяся к началу отпуска, и в результате получается что сначала выводится запись о второй половинке разбитого отпуска, а потом о первой. Не могу это победить.
Если делать просто запрос(без отчета) с сортировкой
order by otpusk.datan, то все отрабатывает красиво. Но мне надо в отчете.