Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / fastreport4, группировка / 3 сообщений из 3, страница 1 из 1
07.10.2010, 20:49
    #36888063
314casso
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fastreport4, группировка
Есть клиенты и услуги. Нужно сделать простую группировку по признаку услуги (услуги разобьются на две группы) вот так
Код: 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
12.10.2010, 12:17
    #36894352
gpi
gpi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fastreport4, группировка
Попробуйте после вывода первой записи возвращаться ещё раз на предыдущую.
Код: 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
10.11.2010, 14:42
    #36947407
Anna Yu.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fastreport4, группировка
Я бы сделала силами 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
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / fastreport4, группировка / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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