Переключение на Главную Страницу Страницы: [1] 2 3 ... 10 ОтправитьПечать
Очень популярная тема (более 25 ответов) Библиотека классов 1С++ для создания сводных таблиц v4.00 (число прочтений - 66249 )
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Библиотека классов 1С++ для создания сводных таблиц v4.00
10. Марта 2010 :: 16:12
Печать  
Библиотека классов 1С++ для извлечения данных из OLAP-источников и создания сводных таблиц.

Позволяет извлекать срезы OLAP-кубов, в т.ч. сформированных средствами ВК qryConsole.

Поддерживает типизацию результата к ссылочным типам 1С v7.7.

Для формирования печатных форм предлагаются класс-наследник класса ТабличныйДокумент (ВК Yoksel) и класс ПостроительОтчета.

Подробные описания классов - в описаниях .ert.

В поставку входят примеры:
  • ПримерТИС2.ert - для ТИС редакции 9.2. Получение результата методом Выбрать(). Требует ВК FormEx, Yoksel, qryConsole;
  • Пример выгрузки.ert - Универсальный. Получение результата методом Выгрузить(). Требует ВК qryConsole, рекомендуется ВК Yoksel;
  • Пример.ert - Универсальный. Получение результата методом Выбрать(). Развитие примера для qryConsole.


Скриншоты.


« Последняя редакция: 22. Марта 2011 :: 10:50 - berezdetsky »  

PivotQuery.zip ( 63 KB | Загрузки )

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Библиотека классов 1С++ для создания сводных таблиц
Ответ #1 - 10. Марта 2010 :: 19:19
Печать  
Осталось дело за малым. Скушать и переварить Подмигивание
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Захар Малиновский
Junior Member
**
Отсутствует


1C++ active user

Сообщений: 53
Местоположение: г. Харьков
Зарегистрирован: 26. Февраля 2009
Re: Библиотека классов 1С++ для создания сводных таблиц
Ответ #2 - 11. Марта 2010 :: 06:32
Печать  
Берездецкому хочется сказать спасибо. Если я правильно фамилию написал.
  
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Библиотека классов 1С++ для создания сводных таблиц
Ответ #3 - 11. Марта 2010 :: 07:11
Печать  
Ухх, спасибо!! Уходим смотреть.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Библиотека классов 1С++ для создания сводных таблиц
Ответ #4 - 11. Марта 2010 :: 08:54
Печать  
А можешь по подробнее рассказать про типизацию. Нашел только:
Цитата:
Для обеспечения типизации у измерений должно быть определено
     свойство с именем вида

           [Ключ: Тип[.Вид]]

     заполненное идентификаторами соответствующего типа. Штатный построитель
     кубов компоненты qryConsole добавляет такое свойство только в
     коммерческой версии. В некоммерческой версии это может быть сделано
     пользовательскими построителями кубов, как это показано в примере
     построителя для провайдера VFPOLEDB.

Что и где надо сделать?  Нерешительный
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Библиотека классов 1С++ для создания сводных таблиц
Ответ #5 - 11. Марта 2010 :: 09:28
Печать  
JohnyDeath писал(а) 11. Марта 2010 :: 08:54:
Что и где надо сделать?  Нерешительный

В измерениях можно хранить сопутствующую информацию, по которой не нужна детализация (вроде адресов контрагентов и т.п.). В данном случае там хранится информация, необходимая для типизации. Т.е. если для заполнения измерения локального куба ты сейчас пишешь
Код
Выбрать все
CreateCube = CreateCube + "
	|	DIMENSION [Фирма], LEVEL [Все] TYPE ALL, LEVEL [Фирма],";
InsertInto = InsertInto + "
	|	[Фирма],";
Select = Select + "
	|	SCxxx.DESCR,"; 


то для типизации при выборке средствами этих классов надо написать
Код
Выбрать все
CreateCube = CreateCube + "
	|	DIMENSION [Фирма], LEVEL [Все] TYPE ALL, LEVEL [Фирма],
	|		PROPERTY [Ключ] CAPTION ""Ключ: Справочник.Фирмы"",";
InsertInto = InsertInto + "
	|	[Фирма], [Фирма].[Фирма].[Ключ],";
Select = Select + "
	|	SCxxx.DESCR, SCxxx.ID,"; 

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Библиотека классов 1С++ для создания сводных таблиц
Ответ #6 - 11. Марта 2010 :: 09:45
Печать  
Ааа, вон какое свойство имелось ввиду. Понятно.
И это значит, что теперь в КОП "Построитель" надо добавить соответстве строки по вставки этих свойств.
Тогда другой вопрос. По какому принципу ты добавляешь эти свойства у себя? Не лепишь же ты их во все измерения? Или только туда, где была обозначена типизация в исходном запросе пользователя?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Библиотека классов 1С++ для создания сводных таблиц
Ответ #7 - 11. Марта 2010 :: 10:03
Печать  
У меня они добавляются для перечислений и справочников определённого вида. Ну ещё для дат с иерархией, но это используется в механизме расшифровки. В своих кубах ты можешь использовать любые типы, объекты которых могут быть получены методом MDW.ЗначениеИзСтрокиБД().
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Библиотека классов 1С++ для создания сводных таблиц
Ответ #8 - 17. Марта 2010 :: 20:03
Печать  
Добавлен класс-наследник класса ТабличныйДокумент (ВК Yoksel). Возможности:
  • вывод в табличный документ секций штатных макетов таблиц;
  • реализация механизмов группировки и автогруппировки строк и колонок табличного документа по аналогии с классом "ТабличныйДокумент" v8.

Примеры переписаны с использованием этого класса. Must have! Очень довольный
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: Библиотека классов 1С++ для создания сводных таблиц
Ответ #9 - 20. Марта 2010 :: 19:49
Печать  
berezdetsky писал(а) 11. Марта 2010 :: 09:28:
Код
Выбрать все
CreateCube = CreateCube + "
	|	DIMENSION [Фирма], LEVEL [Все] TYPE ALL, LEVEL [Фирма],
	|		PROPERTY [Ключ] CAPTION ""Ключ: Справочник.Фирмы"",";
InsertInto = InsertInto + "
	|	[Фирма], [Фирма].[Фирма].[Ключ],";
Select = Select + "
	|	SCxxx.DESCR, SCxxx.ID,"; 



А зачем по наименованию группировать, а не по id?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Библиотека классов 1С++ для создания сводных таблиц
Ответ #10 - 21. Марта 2010 :: 01:08
Печать  
orefkov писал(а) 20. Марта 2010 :: 19:49:
А зачем по наименованию группировать, а не по id?

Это просто иллюстрация. Круглые глаза Вопрос то был о типизации, а не об измерении. Если включить отладку и посмотреть, что там qryConsole навыводит, можно увидеть что-то вроде
Код
Выбрать все
DIMENSION [Фирма], LEVEL [Все] TYPE ALL, LEVEL [Фирма] OPTIONS(UNIQUE_KEY, SORTBYNAME),
...
[Фирма].Key, [Фирма].Name, 

и т.д.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: Библиотека классов 1С++ для создания сводных таблиц
Ответ #11 - 21. Марта 2010 :: 08:02
Печать  
berezdetsky писал(а) 21. Марта 2010 :: 01:08:
orefkov писал(а) 20. Марта 2010 :: 19:49:
А зачем по наименованию группировать, а не по id?

Это просто иллюстрация. Круглые глаза
Код
Выбрать все
[Фирма].Key, [Фирма].Name, 


Ну и отличненько. Тогда буду посмотреть.
  
Наверх
 
IP записан
 
ЧебурЗлоп
Senior Member
****
Отсутствует


Ябба!

Сообщений: 314
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Re: Библиотека классов 1С++ для создания сводных таблиц
Ответ #12 - 23. Марта 2010 :: 22:49
Печать  
А почему, например, в поставку не входит пример по "табличныйДокументРасширенный"?
  
Наверх
www  
IP записан
 
ЧебурЗлоп
Senior Member
****
Отсутствует


Ябба!

Сообщений: 314
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Re: Библиотека классов 1С++ для создания сводных таблиц
Ответ #13 - 23. Марта 2010 :: 22:59
Печать  
классы у меня лежат в
EXTFORMS\CLASS.DIR\
.
- скопировал сюда из поставки ТабличныйДокументРасширенный.ert
.
defcls.prm лежит у меня в каталогеИБ, его содержание таково:
//
//определения классов при использовании 1с++
//
Class РедакторТЗ = EXTFORMS\CLASS.DIR\TVEditor.ert
{   
     Число Подключить(Строка стрИмяТаблицы = "", Строка стрИмяМетода);
};      

класс ТабличныйДокументРасширенный = EXTFORMS\CLASS.DIR\ТабличныйДокументРасширенный.ert : ТабличныйДокумент
{};
//
.
в обработке пишу:
//
Процедура СоздатьЭлементУправления ()
     Форма.ОбработкаОжидания ("", 0);
     //ВремДокумент      = СоздатьОбъект ("ТабличныйДокумент");
     ВремДокумент      = СоздатьОбъект ("ТабличныйДокументРасширенный");
     ТабЭлемент            = ВремДокумент.СоздатьЭлементУправления (Форма,"ТабличныйДокумент");
.
получаю ошибку
ВремДокумент      = СоздатьОбъект ("ТабличныйДокументРасширенный");
{G:\....ERT(9)}: Неудачная попытка создания объекта (ТабличныйДокументРасширенный)
.
что сделал не так?
  
Наверх
www  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Библиотека классов 1С++ для создания сводных таблиц
Ответ #14 - 24. Марта 2010 :: 06:53
Печать  
ЧебурЗлоп писал(а) 23. Марта 2010 :: 22:59:
классы у меня лежат в
EXTFORMS\CLASS.DIR\

что сделал не так?


Ээхх...
кидаешь defcl.prm (или любой текстовик с описанием классов в этом каталоге) и сами классы в любой каталог..
в defcl.prm у тебя просто:
Код
Выбрать все
Class РедакторТЗ = TVEditor.ert
{
     Число Подключить(Строка стрИмяТаблицы = "", Строка стрИмяМетода);
};  

    

далее создаешь defcl.prm в каталоге ИБ с содержанием:

//#include EXTFORMS\CLASS.DIR\РедакторФормы\Defcls.prm
//#include EXTFORMS\CLASS.DIR\ДругойКласс\Defcls.prm

и всё..
Плюсы - не надо каждый раз прописывать пути к каждому классу.
И при скачивании любого класса, достаточно просто кинуть его в папку и прописать 1 раз путь в общем описании.


  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 ... 10
ОтправитьПечать