Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема ИтогПоДиапазону - итог по группе справочника (число прочтений - 2778 )
Warlock
YaBB Newbies
*
Отсутствует


Пользуюсь 1cpp!

Сообщений: 13
Зарегистрирован: 19. Мая 2006
Пол: Мужской
ИтогПоДиапазону - итог по группе справочника
20. Декабря 2006 :: 06:49
Печать  
Вот решал эту задачу в контексте Итог в ИТЗ по группе и другому измерению и придумал следующую методику:

Создаю индекс, где иерархический справочник в индексном выражении указан без модификаторов. Тогда справочник отсортируется приблизительно так:

Группа справочника (ур.1)
    Подгруппа 1 (ур.2)
       Элемент 1
       Элемент 2
    Подгруппа 2 (ур.2)
       Элемент 3
       Элемент 4
       Элемент 5


Дальше определяю границы для каждой группы, например:
Группа справочника (ур.1):  Подгруппа 1 (ур.2)  - Элемент 5
Подгруппа 1 (ур.2): Элемент 1 - Элемент 2
Подгруппа 2 (ур.2): Элемент 3 - Элемент 5

Дальше можно использовать ИтогПоДиапазону, указав в КлючМин верхнюю границу группы, а в КлючМакс - нижнюю. Но есть определенная проблема в определении границ группы...

Вопрос: может кто знает, как можно быстро определить границы для группы многоуровневого справочника? (Я выгружал элементы в ТЗ и сортировал)

Или может я совсем в дебри залез? В общем буду признателен за любые комментарии по теме.
  
Наверх
ICQ  
IP записан
 
Antares
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 23
Зарегистрирован: 30. Ноября 2006
Re: ИтогПоДиапазону - итог по группе справочника
Ответ #1 - 20. Декабря 2006 :: 07:11
Печать  
надо создать специальное поле под индекс и поместить туда позиционное составное значение каждого элемента справочника (типа как регистр флага - каждый бит соответствует своему статусу, а здесь каждая часть значения будет соответствовать позиции элемента на уровне). Сколько уровне столько составных частей значения. Ну а зделать функцию отбора по нужной части одного проиндексироанного поля, для  выделения границ, друда не составит. Мне так кажется.
  
Наверх
 
IP записан
 
Warlock
YaBB Newbies
*
Отсутствует


Пользуюсь 1cpp!

Сообщений: 13
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИтогПоДиапазону - итог по группе справочника
Ответ #2 - 20. Декабря 2006 :: 07:19
Печать  
Как определить "позиционное составное значение". В реальности справочник у меня очень многоуровневый, и вложеные группы очень путают карты.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИтогПоДиапазону - итог по группе справочника
Ответ #3 - 20. Декабря 2006 :: 08:09
Печать  
Warlock писал(а) 20. Декабря 2006 :: 06:49:
Вот решал эту задачу в контексте [url=http://www.1cpp.ru/forum/YaBB.pl?num=1159133762]
Создаю индекс, где иерархический справочник в индексном выражении указан без модификаторов. Тогда справочник отсортируется приблизительно так:

Группа справочника (ур.1)
   Подгруппа 1 (ур.2)
       Элемент 1
       Элемент 2
   Подгруппа 2 (ур.2)
       Элемент 3
       Элемент 4
       Элемент 5



Если без модификаторов, тогда у тебя будут только элементы в итоговой таблице.
Или твоя исходная таблица не плоская, т.е. в ней встречаются и группы, и элементы?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Warlock
YaBB Newbies
*
Отсутствует


Пользуюсь 1cpp!

Сообщений: 13
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИтогПоДиапазону - итог по группе справочника
Ответ #4 - 20. Декабря 2006 :: 08:22
Печать  
artbear писал(а) 20. Декабря 2006 :: 08:09:
Если без модификаторов, тогда у тебя будут только элементы в итоговой таблице.
Или твоя исходная таблица не плоская, т.е. в ней встречаются и группы, и элементы?

Исходная таблица плоская, без групп. Еще у меня есть типа "оглавление" для исходной таблицы - те же элементы со всеми вышестоящими группами. Перебирая "оглавление" я должен получать итоги из плоской таблицы. Когда итог по элементу - все отлично, а в случае группы я и размышлял...

P.S. Сейчас пробую так: строю текстовый индекс и буду считать итог по ключам от ЗначениеИндексаГруппы до ЗначениеИндексаГруппы + "яяяяяяяя".

P.P.S. Напомню, что все это пошло от того, что мне нужно получить итог не просто по группе справочника, а по комбинации: группа справочника+изм2+изм3.
  
Наверх
ICQ  
IP записан
 
Antares
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 23
Зарегистрирован: 30. Ноября 2006
Re: ИтогПоДиапазону - итог по группе справочника
Ответ #5 - 20. Декабря 2006 :: 08:29
Печать  
Допустим позиция элемента - Группа А, подгруппа Б, подгруппа В, позиция Г, тогда значение будет иметь вид : АБВГ. Отсортированные записи по этому значению будут всегда в жосткой иерархии: сначала идет строка с элементом АБВВ потом АБВГ и так далее. Задавая границы такими позиционными составными значениями можно ограничивать выборку конкретной группы или ее части или совокупности групп если задаваемый диапазон не имеет разрывов. Например: выбрать элементы дапазона от АББх до АББВ, будут выбраны элементы группы А, подгруппы Б, подгруппы Б, от первого до В.

p.s. фактически это поле под индекс с потоковой структурой данных
  
Наверх
 
IP записан
 
Warlock
YaBB Newbies
*
Отсутствует


Пользуюсь 1cpp!

Сообщений: 13
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИтогПоДиапазону - итог по группе справочника
Ответ #6 - 20. Декабря 2006 :: 09:24
Печать  
В тестовом варианте все получилось. Буду пробовать в боевом...

Спасибо.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать