И снова сортировка, не отрабатывает запрос в форме
Добавлено: 16 май 2006, 15:03
ARD-отчет, Необходимо вывести перечень сотрудников, сгруппированных по структурным единицам штатного расписания. Причем внутри подразделения они должны идти в порядке их должностей.
В общих чертах отчет выглядит так (лишнее порезано):
То есть сначала идет цикл по подразделениям, внутри - цикл по сотрудникам подразделений. Если в t01 закомментировать строчку "order by STAFFSTRUCT.SEQNMB" все работает на ура, но без сортировки, естественно. С этой строчкой выводятся только подразделения, как будто запрос t01 нифига не выбирает. Цикл по t01 пробовал делать как по логической таблице, так и через getfirst/getnext - однофигственно. Можно перевернуть запрос, чтобы корневой была STAFFSTRUCT, тогда отрабатывает, но отпадают те, кто вне штата сидит. Это фишка Атлантиса или я чего-то не знаю?
Остается конечно еще вариант объединить эти два запроса в один, видимо так и попробую сделать, но придется почти весь отчет перелопачивать (чужой причем), а всего то попросили сортировку добавить, надеялся, что достаточно будет один запрос поправить...
В общих чертах отчет выглядит так (лишнее порезано):
Код: Выделить всё
.create view t01 as
select persons.*, STAFFSTRUCT.SEQNMB from persons, STAFFSTRUCT
where (( 'С' == persons.isemployee
and ssilpodr == persons.department
and persons.appointcur == appointments.nrec
and appointments.staffstr == staffstruct.nrec
))
and year(persons.disdate)=0
order by STAFFSTRUCT.SEQNMB
;
.create view t09 as select nrec,cparent,name,code from catalogs
where (( 0 == lpr and 465 == mainlink ))
;
.{table 't09'
.begin
ssilpodr:=t09.catalogs.nrec;
naimpodr:=t09.catalogs.name;
p1:=p1+1;
xlSetCellStringValue(naimpodr,p1,1,p1,1);
end.
.{table 't01'
.begin
p1:=p1+1;
xlSetCellStringValue(t01.persons.fio,p1,3,p1,3);
end.
.}
.}
Остается конечно еще вариант объединить эти два запроса в один, видимо так и попробую сделать, но придется почти весь отчет перелопачивать (чужой причем), а всего то попросили сортировку добавить, надеялся, что достаточно будет один запрос поправить...