Страница 1 из 1
Как сделать 3х уровневую нумерацию в группах и подгруппах
Добавлено: 12 июл 2011, 14:16
Александр
проблема такая - отчет в нем две группы заголовков + во второй группе содержание

- group_count.gif (13.04 КБ) 20111 просмотров
1. первую группу нумерую через вспомогательное вычисляемое поле 'gr' по формуле
CumulativeSum ( GR for all) где gr - соответственно вычисляемое поле лежащее на уровне первой группы с формулой
If (GetRow() = First(GetRow() for group 2), 1, 0)
2. вторую группу не знаю как нумеровать - вообще не понимаю
3. наполнение второй группы нумерую по формуле
CumulativeSum( 1 for group 2 )
подскажите плиз формулу для нумерации второй группы
ps
может и эти формулы неправильные - но что-то считают вроде
pps
да- версия PDM 4.40
Re: Как сделать 3х уровневую нумерацию в группах и подгруппа
Добавлено: 13 июл 2011, 09:35
Anderyt
CumulativeSum( 1 for group 1 ) не сработает?
или такую же фишку, как для первой группы, через новое вычисляемое поле..
пробовал уже?
Re: Как сделать 3х уровневую нумерацию в группах и подгруппа
Добавлено: 13 июл 2011, 09:54
Anderyt
вроде что то получилось..
в заголовке 2-й группы сделал выч. поле gr1 с выражением If (GetRow() = First(GetRow() for group 2), 1, 0)
потом в заголовке 2-й группы - выч. поле для номера с выражением CumulativeSum ( GR1 for group 1)
Re: Как сделать 3х уровневую нумерацию в группах и подгруппа
Добавлено: 13 июл 2011, 12:31
Александр
получилось вот как
для первой группы (в области заголовка)
вычисляемое поле
Gr1= If (GetRow() = First(GetRow() for group 1), 1, 0)
номер группы =
CumulativeSum ( Gr1 for all)
....
для второй группы (в области заголовка)
....вычисляемое поле
Gr2= If (GetRow() = First(GetRow() for group 2), 1, 0)
....номер группы =
CumulativeSum ( Gr2 for group 1)
........
для элементов второй группы (в области данных)
........номер элемента=
CumulativeSum( 1 for group 2 )
Андрюха - спасибо за содействие!!!

Re: Как сделать 3х уровневую нумерацию в группах и подгруппа
Добавлено: 13 июл 2011, 13:32
Anderyt

тебе спасибо! у нас недавно была не очень актуальная похожая задача - забили в итоге.. до игр с getrow и firstrow не додумались

Re: Как сделать 3х уровневую нумерацию в группах и подгруппа
Добавлено: 26 июл 2011, 12:55
Старик Крупский
В практических рекомендациях в свое время мне попался раздел "Нумерация групп в формах". Там практически то же самое:
"Зачастую возникают ситуации, когда в формах, допускающих группировку, требуется проставить порядковый номер в заголовке группы. Решение этой задачи состоит в том, чтобы с помощью одного вычисляемого «пометить» начало новой группы единицей, а с помощью другого – подсчитать и отобразить нарастающий итог этих пометок. Оба вычисляемых поля размещаются в области заголовка группы.
Приведем содержание вычисляемых полей. Выражение вычисляемого поля, «помечающего» начало группы выглядит так:
If (GetRow() = First(GetRow() for group 1), 1, 0)
Дадим этому полю имя, например, GR. На это имя будет ссылаться второе вычисляемое поле.
Выражение вычисляемого поля, подсчитывающего нарастающий итог пометок и отображающего порядковый номер группы выглядит так:
CumulativeSum ( GR for all)
Чтобы не нарушать оформление, поле GR можно сделать скрытым."