Как сделать 3х уровневую нумерацию в группах и подгруппах

Здесь обсуждаем систему TDM/PDM/Workflow Lotsia PDM PLUS (PartY PLUS).
Ответить
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Как сделать 3х уровневую нумерацию в группах и подгруппах

Сообщение Александр »

проблема такая - отчет в нем две группы заголовков + во второй группе содержание
group_count.gif
group_count.gif (13.04 КБ) 15293 просмотра
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

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Re: Как сделать 3х уровневую нумерацию в группах и подгруппа

Сообщение Anderyt »

CumulativeSum( 1 for group 1 ) не сработает?
или такую же фишку, как для первой группы, через новое вычисляемое поле..
пробовал уже?
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Re: Как сделать 3х уровневую нумерацию в группах и подгруппа

Сообщение Anderyt »

вроде что то получилось..
в заголовке 2-й группы сделал выч. поле gr1 с выражением If (GetRow() = First(GetRow() for group 2), 1, 0)
потом в заголовке 2-й группы - выч. поле для номера с выражением CumulativeSum ( GR1 for group 1)
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Re: Как сделать 3х уровневую нумерацию в группах и подгруппа

Сообщение Александр »

получилось вот как

для первой группы (в области заголовка)
вычисляемое поле 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 )

Андрюха - спасибо за содействие!!! :wink:

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Re: Как сделать 3х уровневую нумерацию в группах и подгруппа

Сообщение Anderyt »

:-)
тебе спасибо! у нас недавно была не очень актуальная похожая задача - забили в итоге.. до игр с getrow и firstrow не додумались :-)
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Старик Крупский
Активный участник
Сообщения: 803
Зарегистрирован: 27 июл 2006, 22:17
Откуда: Москва

Re: Как сделать 3х уровневую нумерацию в группах и подгруппа

Сообщение Старик Крупский »

В практических рекомендациях в свое время мне попался раздел "Нумерация групп в формах". Там практически то же самое:
"Зачастую возникают ситуации, когда в формах, допускающих группировку, требуется проставить порядковый номер в заголовке группы. Решение этой задачи состоит в том, чтобы с помощью одного вычисляемого «пометить» начало новой группы единицей, а с помощью другого – подсчитать и отобразить нарастающий итог этих пометок. Оба вычисляемых поля размещаются в области заголовка группы.
Приведем содержание вычисляемых полей. Выражение вычисляемого поля, «помечающего» начало группы выглядит так:

If (GetRow() = First(GetRow() for group 1), 1, 0)

Дадим этому полю имя, например, GR. На это имя будет ссылаться второе вычисляемое поле.

Выражение вычисляемого поля, подсчитывающего нарастающий итог пометок и отображающего порядковый номер группы выглядит так:

CumulativeSum ( GR for all)

Чтобы не нарушать оформление, поле GR можно сделать скрытым.
"
"Лучше меньше, да лучше" (C)
Ответить