powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / fastreport4, группировка
3 сообщений из 3, страница 1 из 1
fastreport4, группировка
    #36888063
314casso
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть клиенты и услуги. Нужно сделать простую группировку по признаку услуги (услуги разобьются на две группы) вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Клиент1
	ГруппаУслуги
		Услуга1
		Услуга2
		Услуга3
		...
	ГруппаУслугиСПризнаком
		УслугиCпризнаком1
		УслугиCпризнаком2
		...	
Клиент2
...
Так у меня все работает :) . Но нужно продублировать каждую группу

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Клиент1
	ГруппаУслуги
		Услуга1
		Услуга2
		Услуга3
		...
	ГруппаУслуги (КОПИЯ)
		Услуга1
		Услуга2
		Услуга3
		...	
	ГруппаУслугиСПризнаком
		УслугиCпризнаком1
		УслугиCпризнаком2
		...	
	ГруппаУслугиСПризнаком (КОПИЯ)
		УслугиCпризнаком1
		УслугиCпризнаком2
		...		
Клиент2
...

Дублирование нужно для квитанции (состоит их двух одинаковых частей). Подскажите, плиз, если есть идеи.
...
Рейтинг: 0 / 0
fastreport4, группировка
    #36894352
gpi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте после вывода первой записи возвращаться ещё раз на предыдущую.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
var i: integer;                                     
procedure Page1OnBeforePrint(Sender: TfrxComponent);
begin
     i :=  0 ;          
end;

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
     if (i mod  2 ) =  1  then MasterData1.Dataset.Prior;       
     inc(i);
end;
...
Рейтинг: 0 / 0
fastreport4, группировка
    #36947407
Anna Yu.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы сделала силами sql
Считаем, что 1 вар. сделан запросом. Добавляем в выборку псевдотаблицу с 2-мя строками (т.е. умножаем результат на 2) и добавляем сортировку.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
with t as(
select 'Клиент1'  q, 'ГруппаУслуги' g, 'Услуга1' u from dual union all
select 'Клиент1'  q, 'ГруппаУслуги' g, 'Услуга2' u from dual union all
select 'Клиент1'  q, 'ГруппаУслуги' g, 'Услуга3' u from dual union all
select 'Клиент1'  q, 'ГруппаУслугиСПризнаком' g, 'УслугиCпризнаком1' u from dual union all
select 'Клиент1'  q, 'ГруппаУслугиСПризнаком' g, 'УслугиCпризнаком2' u from dual union all
select 'Клиент1'  q, 'ГруппаУслугиСПризнаком' g, 'УслугиCпризнаком3' u from dual union all

select 'Клиент2'  q, 'ГруппаУслуги' g, 'Услуга1' u from dual union all
select 'Клиент2'  q, 'ГруппаУслуги' g, 'Услуга2' u from dual union all
select 'Клиент2'  q, 'ГруппаУслуги' g, 'Услуга3' u from dual union all
select 'Клиент2'  q, 'ГруппаУслугиСПризнаком' g, 'УслугиCпризнаком1' u from dual union all
select 'Клиент2'  q, 'ГруппаУслугиСПризнаком' g, 'УслугиCпризнаком2' u from dual union all
select 'Клиент2'  q, 'ГруппаУслугиСПризнаком' g, 'УслугиCпризнаком3' u from dual
)
select q, g, u from t
order by q, g, u;

with t as(
select 'Клиент1'  q, 'ГруппаУслуги' g, 'Услуга1' u from dual union all
select 'Клиент1'  q, 'ГруппаУслуги' g, 'Услуга2' u from dual union all
select 'Клиент1'  q, 'ГруппаУслуги' g, 'Услуга3' u from dual union all
select 'Клиент1'  q, 'ГруппаУслугиСПризнаком' g, 'УслугиCпризнаком1' u from dual union all
select 'Клиент1'  q, 'ГруппаУслугиСПризнаком' g, 'УслугиCпризнаком2' u from dual union all
select 'Клиент1'  q, 'ГруппаУслугиСПризнаком' g, 'УслугиCпризнаком3' u from dual union all

select 'Клиент2'  q, 'ГруппаУслуги' g, 'Услуга1' u from dual union all
select 'Клиент2'  q, 'ГруппаУслуги' g, 'Услуга2' u from dual union all
select 'Клиент2'  q, 'ГруппаУслуги' g, 'Услуга3' u from dual union all
select 'Клиент2'  q, 'ГруппаУслугиСПризнаком' g, 'УслугиCпризнаком1' u from dual union all
select 'Клиент2'  q, 'ГруппаУслугиСПризнаком' g, 'УслугиCпризнаком2' u from dual union all
select 'Клиент2'  q, 'ГруппаУслугиСПризнаком' g, 'УслугиCпризнаком3' u from dual
)
select q, g||decode(l,  1 , null,  2 , ' (копия)'), u 
  from t, (select level l from dual connect by level <= 2 )
order by q, g, l, u;
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / fastreport4, группировка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]