Добрый день!
Подскажите пожалуйста как реализовать сортировку в отчете.
Использую следующую логическую таблицу:
.create view vDoc2
var
TDocNRec : comp;
select
Persons.FIO,
Persons.TabNmb,
Catalogs.Name,
CatPost.Name,
Appointments.TaxRate,
NewAppoint.AppointDate,
NewAppoint.Dateend,
NewAppoint.Contractnmb,
NewAppoint.ContractDate,
NewDepCat.Name,
NewCatPost.Name,
NewAppoint.TaxRate
from
TitleDoc,
PartDoc,
ContDoc,
Persons,
Appointments,
Catalogs,
Synonym ContDoc ContDoc2,
Synonym Appointments NewAppoint,
Synonym Catalogs CatPost,
Synonym Catalogs NewDepCat,
Synonym Catalogs NewCatPost
where
((
TDocNRec == TitleDoc.nRec and
TitleDoc.nRec == PartDoc.cDoc and
PartDoc.nRec == ContDoc.cPart and
PartDoc.TypeOper == ContDoc.TypeOper and
Word(1) == ContDoc.SeqNmb and
ContDoc.Person == Persons.nRec and
ContDoc.cStr == Appointments.Nrec and
ContDoc.cDopRef == Catalogs.nRec and
Appointments.Post == CatPost.nRec and
ContDoc.cPart == ContDoc2.cPart and
ContDoc.TypeOper == ContDoc2.TypeOper and
ContDoc.Personљљ == ContDoc2.Person and
Integer(1) << ContDoc2.SeqNmb and
ContDoc2.cStr == NewAppoint.nRec and
NewAppoint.Department == NewDepCat.nRec and
NewAppoint.Post == NewCatPost.nRec
));
необходимо отсортировать таблицу Persons по ФИО Сотрудника..
коментирую строку ContDoc.Person == Persons.nRec и добавляю
where
((
..
))
and (Persons.nRec = ContDoc.Person)
order by Persons.FIO
;
отчет выходит пустой...
пробовал использовать временную таблицу... куда писал только nRec ContDoc'a и FIO таблицы Persons. Создавал индекс по которому нужно было сортировать...отчет выходит пустой, вероятно из-за количества записей их более 100.
Пдскажите пожалуйста, может я что-то делаю не так?
Иесть ли ещё какие-нибудь варианты сортировок? И если можно, то на примере.
Заранее спасибо!
Сортировка в отчете
Модераторы: m0p3e, edward_K, Модераторы
вот простой пример
нужен отчет, где будет фио, подразделение, начисления
сортируем по подразделению, внутри по фио, внутри по виду удержания, внутри по дате
или можно так
нужен отчет, где будет фио, подразделение, начисления
сортируем по подразделению, внутри по фио, внутри по виду удержания, внутри по дате
Код: Выделить всё
interface test;
struct table my_table
(
Podr : string
,Fio : string
,VidUd : word
,DatUd : date
,SumUd : double
)
with index
(
my_table01 = Podr + Fio + VidUd + DatUd
)
create view
as select *
from
Lschet
,Persons
,KatPodr
,Uder
where
((
Uder.cLsch == Lschet.Nrec
and Lschet.tPersons == Persons.Nrec
and Lschet.Cex == KatPodr.Nrec
));
form myfrm('test.out', 'test');
procedure InsertMyTable;
{
_loop Uder
{
insert my_table set
Podr := KatPodr.Name
,Fio := Persons.Fio
,VidUd := Uder.VidUd
,DatUd := Uder.DataN
,SumUd := Uder.SumUd
;
}
}
procedure PrintOtchet;
{
_loop my_table ordered by index my_table01
{
myfrm.Write(my_table.Podr);
myfrm.Write(my_table.Fio);
myfrm.Write(my_table.VidUd);
myfrm.Write(my_table.DatUd);
myfrm.Write(my_table.SumUd, 2);
}
}
//
// думаю ясно что тут ваш HandleEvent где и буду вызываться процедуры
//
end;
вот простой пример
нужен отчет, где будет фио, подразделение, начисления
сортируем по подразделению, внутри по фио, внутри по виду удержания, внутри по дате
нужен отчет, где будет фио, подразделение, начисления
сортируем по подразделению, внутри по фио, внутри по виду удержания, внутри по дате
Код: Выделить всё
interface test;
struct table my_table
(
Podr : string
,Fio : string
,VidUd : word
,DatUd : date
,SumUd : double
)
with index
(
my_table01 = Podr + Fio + VidUd + DatUd
)
create view
as select *
from
Lschet
,Persons
,KatPodr
,Uder
where
((
Uder.cLsch == Lschet.Nrec
and Lschet.tPersons == Persons.Nrec
and Lschet.Cex == KatPodr.Nrec
));
form myfrm('test.out', 'test');
procedure InsertMyTable;
{
_loop Uder
{
insert my_table set
Podr := KatPodr.Name
,Fio := Persons.Fio
,VidUd := Uder.VidUd
,DatUd := Uder.DataN
,SumUd := Uder.SumUd
;
}
}
procedure PrintOtchet;
{
_loop my_table ordered by index my_table01
{
myfrm.Write(my_table.Podr);
myfrm.Write(my_table.Fio);
myfrm.Write(my_table.VidUd);
myfrm.Write(my_table.DatUd);
myfrm.Write(my_table.SumUd, 2);
}
}
//
// думаю ясно что тут ваш HandleEvent где и буду вызываться процедуры
//
end;
вот простой пример
нужен отчет, где будет фио, подразделение, начисления
сортируем по подразделению, внутри по фио, внутри по виду удержания, внутри по дате
нужен отчет, где будет фио, подразделение, начисления
сортируем по подразделению, внутри по фио, внутри по виду удержания, внутри по дате
Код: Выделить всё
interface test;
struct table my_table
(
Podr : string
,Fio : string
,VidUd : word
,DatUd : date
,SumUd : double
)
with index
(
my_table01 = Podr + Fio + VidUd + DatUd
)
create view
as select *
from
Lschet
,Persons
,KatPodr
,Uder
where
((
Uder.cLsch == Lschet.Nrec
and Lschet.tPersons == Persons.Nrec
and Lschet.Cex == KatPodr.Nrec
));
form myfrm('test.out', 'test');
procedure InsertMyTable;
{
_loop Uder
{
insert my_table set
Podr := KatPodr.Name
,Fio := Persons.Fio
,VidUd := Uder.VidUd
,DatUd := Uder.DataN
,SumUd := Uder.SumUd
;
}
}
procedure PrintOtchet;
{
_loop my_table ordered by index my_table01
{
myfrm.Write(my_table.Podr);
myfrm.Write(my_table.Fio);
myfrm.Write(my_table.VidUd);
myfrm.Write(my_table.DatUd);
myfrm.Write(my_table.SumUd, 2);
}
}
//
// думаю ясно что тут ваш HandleEvent где и буду вызываться процедуры
//
end;