OLAP-отчет ActiveX: компонента v2.4.1.241 + ABC-анализ по любым измерениям

13.07.22

Разработка - Разработка внешних компонент

Компонента предназначена для построения OLAP-отчетов и ABC-анализа. OLAP (англ. online analytical processing, аналитическая обработка в реальном времени) — технология обработки информации, включающая составление и динамическую публикацию отчётов и документов. Используется аналитиками для быстрой обработки сложных запросов к базе данных, учета и анализа разнородных данных с целью отыскания аномалий и зависимостей, подготовки бизнес-отчетов по продажам, маркетингу.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
PivotCubeAX v2.4.1.241.zip
.zip 7,64Mb ver:2.4.1.241
388 4 200 руб. Купить
Видеопрезентация "Общее представление об OLAP-кубе.zip" (для PivotCubeAX 2.4.0.1)
.zip 2,33Mb
68 2 500 руб. Купить
Видеопрезентация "Работа с измерениями в OLAP-кубе.zip" (для PivotCubeAX 2.4.0.1)
.zip 2,34Mb
58 2 500 руб. Купить
PivotCubeAX v2.7.1.7z - исходники компоненты
.7z 5,18Mb ver:2.7.1
0 4 200 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Основные возможности OLAP-отчета

1. Удобное отображение данных

2. Высокая скорость получения данных в любом разрезе

3. Любая глубина вложенности группировок по строкам/колонкам

4. Фильтрация данных во время работы с кубом "на лету"

5. Простое интерактивное добавление формул

6. Разные типы агрегирования данных: суммирование, количество, среднее и т.д.

7. Программное управление внешним видом куба

8. Возможность работы с иерархическими измерениями

9. ABC-анализ по любым измерениям и показателям

 

Преимущества OLAP-технологий

1. Отчет не нужно переделывать для изменения группировок по строкам/колонкам.

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

3. Скорость доработки отчетов OLAP выше до 60 % по сравнению с другими системами отчетности

4. OLAP-отчет можно сохранить - загрузка сохраненного отчета происходит очень быстро!

5. Один OLAP-отчет эквивалентен целому набору простых аналитических отчетов

 

Недостатки OLAP-технологий

1. OLAP не ориентирован на получение форм отчетности c произвольным дизайном - все OLAP-отчеты имеют одинаковый вид сводных таблиц

2. Некоторые пользователи визуально плохо воспринимают сводные таблицы

 

Преимущество данной разработки перед подобными:

1. Наличие удобного инсталлятора: он сам зарегистрирует все необходимое.

2. Наличие документции для разработчиков и пользователей.

3. Функции управления внешним видом куба и поддержка вывода иерархических измерений.

4. Встроенный ABC-анализ.

 

Почему не компоновка данных (актуально для 1С 8.x)

OLAP и "Компоновка отчетов 1C 8.x" - похожи, но это не одно и то-же.

1) Скорость изменения "точки зрения" на данные в OLAP намного выше, а следовательно - быстрее работает Ваш бизнес, быстрее можно принять управленческие решения (дополнительные сведения здесь http://www.cfin.ru/itm/olap/1c.shtml).

2) В OLAP-отчете можно в реальном режиме времени на каждый показатель вывести дополнительные данные - % вхождения, рейтинг, и т.д. Очень удобно!

 

Справочные материалы

Подробную информацию о возможностях компоненты вы можете получить из  файлов помощи (формат PDF). Примеры использования компоненты имеются для 1С 8.1 и для 1С 7.7.

 

Продукты аналогичной направленности


quick - infostart.ru - OLAP отчет в 1С7.7 одной строчкой кода! (без MSOffice)

Ukrandruha - infostart.ru - OLAP

JohnyDeath - infostart.ru - OLAP Анализ счёта

 

Благодарность за дельные советы, предложения и активное участие

and-blag

kittystark

JohnyDeath

 

Установка компоненты

Установку компоненты необходимо выполнять с правами администратора.

 

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Разработка внешних компонент POS терминал Рабочее место Розничная торговля Разработчик Пользователь 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Управленческий учет Платные (руб)

Медиадисплей покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Экран можно использовать в качестве графического меню-борда в кафе и видеовывески. В качестве устройства отображения можно использовать Android-планшеты, смарт-телевизоры с Android, мониторы или проекторы под управлением Windows или Linux-компьютера. Linux-версия успешно запускается на одноплатных компьютерах Raspberri Pi и Orange Pi. Настраивается ЛЮБОЙ ДИЗАЙН экрана при помощи встроенного графического редактора! Решение можно масштабировать от одного экрана до тысяч экранов с централизованным управлением.

18300 руб.

30.05.2017    57941    12    71    

48

Разработка внешних компонент Телефония, SIP Разработчик 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)

5246 руб.

04.05.2018    52221    128    68    

72

Разработка внешних компонент Разработчик 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 Платные (руб)

Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).

5084 руб.

12.05.2020    34988    147    100    

103

Банковские операции Взаиморасчеты Оборотно-сальдовая ведомость, Анализ счета Анализ продаж Бухгалтер Пользователь 1С 8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

«Умные отчеты в один клик» – инструмент, от которого невозможно отказаться! Получайте отчеты «ОСВ по счету» и «Анализ субконто» мгновенно, прямо из документа – все параметры подставляются автоматически. Незаменимо в ежедневной работе бухгалтера: благодаря простоте получения отчетов вы будете чаще проверять учет "оборотками", снижая риск ошибок. Экономьте время каждый день – используйте «Умные отчеты»!

8930 руб.

25.06.2025    3135    6    0    

8

Оборотно-сальдовая ведомость, Анализ счета Работа с интерфейсом Разработчик Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Бухгалтерский учет Абонемент ($m)

Рассматривается применение диаграммы Сэнкей для визуализации бухгалтерских проводок в 1С с использованием формата SVG. Диаграмма отображает движение средств между счетами, где каждый счет представлен в центральной колонке, а потоки слева и справа иллюстрируют дебетовые и кредитовые операции соответственно. Цвет потоков указывает на корреспондирующие счета, что позволяет наглядно анализировать структуру проводок. Пользователь может настраивать отображение данных по периоду, документу, счетам и субсчетам, а также изменять параметры визуализации для удобства анализа.

5 стартмани

10.06.2025    5800    37    ildarovich    11    

53

Разработка внешних компонент Системный администратор Разработчик Стажер Бесплатно (free)

Библиотека для работы с базами SQLite из 1С на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

14.01.2025    8255    bayselonarrend    17    

54

Разработка внешних компонент Разработчик 1С:Предприятие 8 Россия Бесплатно (free)

В статье описывается приложение-конструктор внешних компонент (native API). Конструктор упрощает процесс разработки за счет удобного добавления всех нужных функций и процедур в графическом режиме, с указанием их параметров и типов параметров. На выходе приложение генерирует готовый код на С++ и Rust и позволяет сразу приступить к реализации, без настройки API компоненты вручную.

04.12.2024    13858    kovalevdmv    29    

84
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. cleaner_it 203 22.01.10 10:34 Сейчас в теме
Работа компоненты тестировалась на Win2003 и Win7. Для Win7/Win2003 цветовые схемы различаются. На рисунке цветовая схема Win7, для Win2003 она более темная.
2. JohnyDeath 302 22.01.10 11:01 Сейчас в теме
А зачем вообще зависимость от BDE?
4. cleaner_it 203 22.01.10 11:23 Сейчас в теме
(2) Насчет BDE смотрим руководство OLAP. В дальнейшем конечно планирую отказаться от него:)
(3) Напишу, просто времени не хватает
21. JohnyDeath 302 22.01.10 15:06 Сейчас в теме
(4)
Насчет BDE смотрим руководство OLAP. В дальнейшем конечно планирую отказаться от него

Что-то не увидел. Не туда смотрю?
Авансом +. Но для полного счастья еще нужно сделать очень много. Отказ от BDE - это первое и самое важное (ИМХО)
22. cleaner_it 203 22.01.10 15:12 Сейчас в теме
(21):

Метод CreateFactTable
Значение параметра ttParadox

Для работы с данным типом таблицы требуется установленный BDE
23. JohnyDeath 302 22.01.10 16:15 Сейчас в теме
(22) Спасибо, приблизительно понял.

А в сторону sqlite не хочешь посмотреть? Проект открытый. Очень шустрая встраеваемая БД, которая может хранится в памяти, что должно дать прирост в скорости чтения данных по сравнению с сохранением и чтением данных на локальный диск в базу ttParadox

Страничка враперов. На чём, кстати, писал свой проект?
24. cleaner_it 203 22.01.10 16:28 Сейчас в теме
(23) Можно попробовать sqlite. Проект писал на Delphi 6
25. JohnyDeath 302 22.01.10 16:32 Сейчас в теме
(24) тогда попробуй это http://www.yunqa.de/delphi/doku.php/products/sqlite3/index (вроде как больше всего советуют)
3. JohnyDeath 302 22.01.10 11:05 Сейчас в теме
Ну и заодно бы написал чем твоя разработка лучше/хуже разработок Ukrandruha и quick.
5. cleaner_it 203 22.01.10 11:58 Сейчас в теме
Открыл доступ к файлам для пользователей Инфостарт (изначально был только для разработчиков)
6. cleaner_it 203 22.01.10 12:07 Сейчас в теме
Нашел неточность в документации - метод AddDimension, параметр SizeData - это длина значения измерения, а не наименования. В следующей версии в документацию будет внесены соответствующие поправки
7. PowerBoy 3504 22.01.10 12:20 Сейчас в теме
Регистры 1С + СКД = OLAP !!!
Не вижу потребности в данной компоненте, разве что для 7.7
9. cleaner_it 203 22.01.10 13:44 Сейчас в теме
Выложил отличия от других разработок подобной направленности "Отличия от других разработок.pdf"

(7) Каждому свое, ИМХО СКД и OLAP решают разные задачи. Скорость изменения внешнего вида OLAP выше. Присутствует интерактивное добавление формул в куб, а также вывод НЕ ТОЛЬКО значения, но и при надобности процентов на колонку/строку, ее ранга и прочих вкусностей. А как-же возможность быстрого ABC-анализа (и такие вещи OLAP способен решать за считанные секунды)? А в СКД - возможность создания форматированного макета и вывода графиков наравне с таблицами. В любом случае мой опыт подсказывает, что для аналитиков OLAP намного удобнее
8. Gamm 13 22.01.10 13:42 Сейчас в теме
PowerBoy 22.01.2010 12:20:31
Регистры 1С + СКД = OLAP !!!
Не вижу потребности в данной компоненте, разве что для 7.7

Всё таки для перестройки изменения порядка аналитик в отчете СКД придется снова ждать получения данных, а плюс OLAP в более быстром получении результата.
10. tango 553 22.01.10 14:05 Сейчас в теме
а почему перем - экспорт?
Перем Куб Экспорт;
11. tango 553 22.01.10 14:07 Сейчас в теме
а какого-нибудь серверного варианта нет, чтоб на каждой юзерской машине не ставить?
15. cleaner_it 203 22.01.10 14:33 Сейчас в теме
(11) подумаю, вроде как имеется такая возможность - запуск ActiveX с удаленной машины. В HTML ведь используют ActiveX, и для этого его не требуется устанавливать
16. tango 553 22.01.10 14:50 Сейчас в теме
(15) прокомменть, пожалуйста, чего это я скачал у производителя?
Прикрепленные файлы:
17. cleaner_it 203 22.01.10 14:55 Сейчас в теме
(16) ActiveX компоненту, которую предлагает использовать PivotCube (они же ее разработчики). Куб к сожалению заполняется только SQL-запросами, заполнить ее из 1С будет более чем затруднительно.
12. tango 553 22.01.10 14:08 Сейчас в теме
13. tango 553 22.01.10 14:13 Сейчас в теме
ну, вот, блин, похвалил...
{Форма.Форма(22)}: Ошибка при вызове метода контекста (AddDimension): Произошла исключительная ситуация (PivotCubeAXLibraryCleaner.OLAP): Table: Cannot perform this operation on an open dataset
Куб.AddDimension("Измерение1","Измерение 1",101);
по причине:
Произошла исключительная ситуация (PivotCubeAXLibraryCleaner.OLAP): Table: Cannot perform this operation on an open dataset
Прикрепленные файлы:
14. cleaner_it 203 22.01.10 14:29 Сейчас в теме
(13) это происходит, когда куб построен, и его пытаются создать еще раз. для исправления этой ситуации я сделал метод CubeDeactivation, попробуй применить его перед созданием измерений, я его в тестовой обработке не применяю
18. cleaner_it 203 22.01.10 14:57 Сейчас в теме
Собственно говоря, моя компонента ActiveX создана на основе PivotCubeVCL, а не PivotCubeX
19. Saint 22.01.10 14:58 Сейчас в теме
Поправьте меня если я не прав, но разве сводные таблицы в 1С выполняют не аналогичную задачу?
20. cleaner_it 203 22.01.10 15:01 Сейчас в теме
(19) Не совсем. Да, внешний вид похож, но возможности совершенно другие, у OLAP их больше на порядок
26. cleaner_it 203 27.01.10 15:36 Сейчас в теме
Перед выходными выложу новую версию (возможно, переведенную на SQLite). Надеюсь, будут закончены практически все заявленные в предыдущей версии функции: загрузка/выгрузка/сортировка/группировка "parent-child"
29. cleaner_it 203 14.02.10 07:42 Сейчас в теме
(26) Никак не могу собраться дописать руководство:) Уже много чего сделал, а выложить без руководства не могу:(

В частности, реализована прозрачная работа с иерархическими измерениями (чего нет ни в одной из подобных разработок, где используются только линейные списки), добавлены и протестированы примеры работы с HTML (в том числе с автоматической установкой ActiveX на ПК клиента), 7.7 (с привязкой к краям формы), 8.2 (управляемые формы + web-сервер).

P.S.: На SQLite перевод будет не скоро, сначала надо в нем хорошенько разобраться (он однонаправленный, и не могу пока найти компонент для визуального просмотра таблиц БД SQLite на форме компоненты)
27. wolfsoft 2420 13.02.10 11:43 Сейчас в теме
Я правильно понимаю, что компонента PivotCubeVCL - платный компонент?
28. cleaner_it 203 14.02.10 06:05 Сейчас в теме
Да, он платный. Но никаких ограничений, кроме всплывающего окошка о необходимости регистрации (один раз, сразу после построения куба) нет, функционал полный
30. cleaner_it 203 03.04.10 04:19 Сейчас в теме
Выпускаю в свет новую версию компоненты - 2.3.1 (предыдущая была - 2.2.0.2).
Обновлены: документация, компонента.
Изменен список файлов для скачивания.

PS: Большая часть хотелок, которые я хотел реализовать - реализованы, удобство использования увеличено в разы:)
31. cleaner_it 203 21.04.10 11:18 Сейчас в теме
Инфостартовцы! Вы хоть напишите, в каких программах пригодился вам OLAP. Интересно:)
32. cleaner_it 203 13.05.10 06:53 Сейчас в теме
Накладочка вышла. В файле "FULL OLAP v2.3.1.zip" файл с руководством был выложен неправильный. Сегодня исправлю
33. brr 184 13.05.10 17:44 Сейчас в теме
А с печатью у нас как обстоят дела?
34. cleaner_it 203 14.05.10 10:56 Сейчас в теме
(33) Хотите - из Excel печатайте, хотите - используйте стандартную печать (в руководстве написано только про стандартную печать).

PS: "FULL OLAP v2.3.1.zip" я перевыложил
35. kittystark 15 14.05.10 18:31 Сейчас в теме
класс !!!
но есть пожелания/замечания
1. под 7.7 ничего не происходит при вызове Куб.CollapseAll(1,1) или Куб.ExpandAll(1,1)
(была создана иерархия по справочнику номенклатуры)

2. хотелось бы чтобы были реализованы "оригинальные zCube.dll" методы, типа TopPanelVisible(...), MapSave(...), MapLoad(...), MapSwap() и др. - подсмотрены в оригинальном HTML примере, а лучше сразу "сделать мост" ко всем оригинальным методам/свойствам

3. при использовании "оригинальной" компоненты ("PivotCubeX") в HTА, также как и при использовании этой разработки под 7.7, при нажатии маленькой кнопочки "стрелки вверх-вниз" в области "Измерения"и в области "Колонки" - "мелькают" и затем пропадают все отображаемые данные (как будто бы куб пустой; в области строк при щелчке на такой же копке - все нормально), перерисовка производится при клике мышью в области данных/при прокрутке мышинного колеса/при щелчке на соседней кнопке (как квадратик, аля кнопка "развернуть"), можно как-то вылечить ?

4. чего-то не пойму как должен график выводиться

5. можно ли как-то программно из 4-х вкладок оставлять только 1-ю, имхо, пользователям последние 3 могут быть не нужны, да простит меня автор за "наезд" на вкладку "о программе", а то как-то не прикалывает формировать куб и сохранять его с помощью этой компоненты, а потом работать с ним через "оригинальную" компоненту

6. новую версию архива еще не смотрел, но в руководстве.pdf методы AppendRecordHierarchical(), SetValueHierarchical(), PostRecordHierarchical() было бы не плохо подробно описать
36. cleaner_it 203 17.05.10 06:41 Сейчас в теме
(35) спасибо:) а где плюсик?

1. Эти методы работают только для линейных списков, для иерархических списков этот метод не работает (и пока не знаю, как он будет работать при смешанном режиме отображения "линейные+иерархические списки").

2.
а) Собственно, компонента и является тем самым "мостом", а просто говоря - оберткой.
б) У оригинальной компоненты некоторые методы дублируются - для куба и для карты клеток (я всегда реализовываю метод куба), при этом наименования куба и карты клеток могут отличаться
в) "оригинальный HTML пример" может быть только у PivotCubeX, я использую PivotCube VCL, наименования методов у них немного различаются. Если найду аналоги методов, указанных вами, то добавлю их

3) Эта кнопочка называется "Отображение/скрытие фильтра". Воспроизвести ситуацию, подобную вашей, у меня не получилось. Какую версию компоненты вы используете? Если не трудно - пришлите выгрузку куба. И описание системы тоже - терминал или нет, сколько памяти, и т.д.

4) На текущий момент нужно заново выбрать значения "Serie type", "pvcRows", "pvcMeasures", потом нажать кнопку "Обновить график". В следующем релизе работа с графиком будет упрощена и более прозрачна

5) А как-же "О программе":( Я так старался... Впрочем, подумаю

6) Тогда стоит посмотреть новую версию: методы AppendRecordHierarchical(), SetValueHierarchical(), PostRecordHierarchical() не нужны
37. kittystark 15 17.05.10 12:14 Сейчас в теме
а, ну да... , плюсанул :D

1. сорри, оказывается методы CollapseAll() и ExpandAll() работают!, и действительно независимо от иерархичности измерений, а работают они если в области строк или колонок находится 2 измерения и больше (даже для иерархических измерений)
видимо для раскрытия иерархий что-то другое нужно вызывать (через Object Browser насчитал у zCube.IMap по 6 методов Expand/Collapse, но вряд ли они помогут)

2. пункт 2.б) пока для меня большей ясности не внес, поясню чего хотелось бы:
- ночью пересчитали и заполнили куб данными, сохранили на диск
- пользователи днем подгружают рассчитанный куб с диска (методы SaveToCube() и LoadFromCube() c этими задачами прекрасно справляются, хотя и "сбрасывают параметры просмотра")
- но вместо жестко предопределенного в коде порядка вызова методов PutToColumn()/PutToRow(), при загрузке воспользоваться выбором одной из ранее сохраненных карт (файлики *.zcd), будь то дефолтная "настройка" или один из "более других" вариантов срезов куба, сохраненных пользователем (со своими любимыми измерениями/фильтрами/перегруппировками иерархий и т.п. - типа "отчет" такой-то)

у PivotCubeX есть методы MapSave(), MapLoad() как это сделать в твоей компоненте - поясни плиз...

3. vista home ed sp1, локально не в терминале, 2Гб оперативки, oleview.exe выдал:
PivotCubeX control: version = 3.37; TypeLib: 3.25 = PivotCubeXLib library
OLAP Active X 2.2.0.2 [cleaner]: version 2.2; TypeLib: 2.2
приаттаченная выгрузка для PivotCubeX - сформирована HTML-кой из C:\Program Files\PivotCubeX\Data\cubedemo.mdb, по кнопкам Activate/Save cube

...

6. только что качнул последний полный архив, в "примере программного кода.pdf" в процедуре ЗаполнитьИерархическуюСтруктуру эти методы присутствуют...
Прикрепленные файлы:
export_sample.cub
38. cleaner_it 203 18.05.10 10:07 Сейчас в теме
(37)

6) точно, пропустил
39. kittystark 15 18.05.10 18:29 Сейчас в теме
допустим есть "предопределенные" измерения Месяц, Квартал, Сезон с устоявшимся общепринятым принципом очередности элементов этих измерений (Янв .. Дек, Iкв .. IVкв и т.п.)

можно ли как-то до/после/во время заполнения куба данными задать ID элемента для таких измерений? а то получающаяся очередность при сортировке измерения по алфавиту не подходит, а сортировка по ключу - в итоге совпадает с сортировкой по алфавиту...

вроде бы OnCustomWrapData в access-примере для PivotCubeX решает эту проблему, но как добраться до этого события в 7.7 - пока для меня темный лес

или для этого нужно вводить иерархические измерения, без подчинений как таковых ?
и как это скажется на производительности?
40. cleaner_it 203 19.05.10 06:45 Сейчас в теме
(39) ид-шник назначать можно, но я обошелся тем, что перед наименованием ставлю номера, например:
01 - Январь
...
12 - Декабрь
41. kittystark 15 19.05.10 07:14 Сейчас в теме
(40) пример кода с назначением ID, пожалуйста, в студию

42. cleaner_it 203 19.05.10 07:55 Сейчас в теме
выложу в следующем релизе :)
43. kittystark 15 19.05.10 09:49 Сейчас в теме
обнаружилась фича: после создания формы, но ДО загрузки куба, панели измерений и колонок можно таскать мышью и они способны перескакивать на правый край

после добавления измерений, даже без заполнения, такого не происходит
44. cleaner_it 203 19.05.10 10:36 Сейчас в теме
Я знаю. Единственный способ обойти - блокировать доступ к элементам формы
46. kittystark 15 21.05.10 18:04 Сейчас в теме
(44)
PCX.RowToolbar.Options.Floating = 0
PCX.ColToolbar.Options.Floating = 0
PCX.DimToolBar.Options.Floating = 0
???
47. cleaner_it 203 24.05.10 03:19 Сейчас в теме
45. kittystark 15 20.05.10 16:30 Сейчас в теме
а как прогнозами пользоваться?
49. cleaner_it 203 19.06.10 17:03 Сейчас в теме
(45) что именно интересно про прогнозирование? Собственно, ничего особенного там нет, все зависит от вашей корпоративной политики и целей
57. kittystark 15 23.06.10 20:15 Сейчас в теме
(49) не понятно вообще, как эти "прогнозы" заюзать (если я правильно понял про группу элементов forecasting на форме редактора измерения)
58. cleaner_it 203 25.06.10 06:51 Сейчас в теме
(57) Насчет прогнозирования смотреть здесь:
PivotCube VCL Users Guide
(Пункт 2.1.3.4 Forecasting ability)
В планах использование этих возможностей пока не скоро. Народ и 30% существующего использовать не может. А вообще, там можно и ABC-анализ проводить очень быстро средствами OLAP

(56) Я помещаю обработку в макет, в нужном месте сохраняю на диск, открываю и использую. По мне, так реализация этого пункта вообще не нужна, но сильно уж просят:)
60. kittystark 15 25.06.10 10:12 Сейчас в теме
(58) Пункт 2.1.3.4 прочел, хотелось бы менять ConsequentName PrecedingName, т.к.
PivotCube.lng не дает таких возможностей

существует ли возможность реализовать свой алгоритм расчета для построения прогноза, например среднюю взвешенную, но со СВОИМИ весовыми коэффициентами

по поводу АВС-анализа пожалуйста подробней

мы под 7.7 конечно без макетов, а при ночном пересчете кубов просто несколько раз подряд вызывается ОткрытьФормуМодально с нужными параметрами, но вот если юзер банально хочет поменять период, то либо форму закрывай-открывай, либо надо фиксить «Cannot perform this operation on an open dataset»

кстати, у меня было замечено следующее: если несколько раз подряд открывать форму, формировать куб, закрывать форму, то процесс 1с-ки постепенно отжирает оперативную память не освобождая ее, т.е. со штатных 90-100 Мб только одними кубами можно постепенно доползти до 700Мб (дальше проверять не стал)
вопрос: а как нужно грамотно высвобождать ресурсы при закрытии формы ?
61. cleaner_it 203 25.06.10 10:23 Сейчас в теме
(60) По поводу ABC - это как сам закончу разбираться. То же самое с прогнозированием:)

Под 7.7, конечно, надо фиксить «Cannot perform this operation on an open dataset». Тут без вариантов.

При закрытии формы память я освобождаю, но подобного теста на 7.7 я не проводил (на 8.1 замечено не было) - очень интересно, буду проверять (возможно, закрытие окна 1С 7.7 вовсе не означает закрытия формы Delphi, как я считал)

PS: Есть желание показать сообществу "Пример использования OLAP ActiveX для 1С 7.7"?
72. kittystark 15 07.07.10 10:15 Сейчас в теме
из созревших идей:
1. запрещать некоторым пользователям открывать окно "редактор измерения" для конкретного измерения, смысл - сначала программно накладываем фильтрацию (переводом часть item'ов в репозиторий), а потом запрещаем менять фильтр, отсюда можем получить частичный доступ пользователя к информации

у себя реализовал через WShell.appActivate и SendKey, это решение хоть и действенно, но ч/з одно место, вот если бы "кнопке с треугольником вниз" измерения можно было прикрутить нечто вроде enabled-свойства - было бы классно

2. не плохо было бы организовать через Обработку Внешнего События реакцию на клик мышью в ячейке измерения/меры

кстати по поводу русификации ConsequentName, PrecedingName в (60) - вопрос решил
73. cleaner_it 203 07.07.10 10:39 Сейчас в теме
(72)
"1. ... " - вполне резонно, но здесь лучше учитывать права при заполнении куба - чтобы не нужные ему данные просто не попадали в отчет. Может, есть и другие причины реализации такого функционала?
"2. ... " - сам давно об этом думаю, хочу расшифровку сделать, но там события, как ты говоришь, "через одно место". Со временем, думаю, появится:)

74. kittystark 15 07.07.10 13:45 Сейчас в теме
(73) думал я об этом...
сейчас у меня схема такая: вечером, когда никого в базе нет, через виндовый шедулер в определенное время запускается vbs-скрипт, создающий V77.Application и запускающий обработку с использованием твоей компоненты (несколько раз с разными периодами), на выходе имеем несколько обновленных *.cub файлов, за разные периоды и с разными наборам измерений, но измерение "проект" (читай "менеджер") везде заполняется одинаково

на следующий день пользователи запускают другую обработку и ... юзают эти файлики через отдельно запускаемый HTML Application (*.hta ) со встроенной в него "оригинальной" компонентой, не тратя по 2 часа на расчет данных (база за 2,5 года), после выбора и загрузки файла куба производится принудительная фильтрация по измерению "проект" в зависимости от "прав на кубы" (почему юзается оригнальная компонента - отдельная песня)

ПРИЧИНЫ: честно говоря, меня не прикалывает на каждого юзера формировать по несколько "фамильных" кубов, юзеров-то много, сколько это будет по времени - даже испытывать не стал, но по прикидкам тоже много

плюс еще «Cannot perform this operation on an open dataset» с диалогом «PivotCube demo» портят всю картину (борьба с последним через wshell.AppActivate и SendKey происходит с переменным успехом :) )

для тех кто будет запускать OLAP.hta из прилагаемого архива: подразумевается расположение *.cub файлов в том же каталоге где и сам OLAP.hta, после загрузки куба при подведении курсора мыши на самый правый край - должно появиться меню, хелпик в разработке - можно прилепить свой, демо ролики - твои
Прикрепленные файлы:
OLAP_hta.zip
78. cleaner_it 203 07.07.10 15:03 Сейчас в теме
(74) за hta'шник спасибо:) Я делал по другому - помещал выборку в индексированную таблицу 1cpp, которую затем можно сохранить в файл, а затем при необходимости восстанавливал ту версию куба, которая мне нужна. Но твой способ тоже ничего:)

PS: проблему твою понял, в твоем случае конечно принудительная фильтрация нужна. Куб - один, пользователей куба - несколько, у каждого пользователя - свой фильтр. Нормальная ситуация
76. cleaner_it 203 07.07.10 14:58 Сейчас в теме
(72) или имелось в виду убрать доступ к элементу, чтобы пользователь вообще не мог наложить СВОЕЙ фильтрации? Тогда пойму - чтобы подтасовки фактов не было (например, убрали из отчета "неблагополучных" клиентов)
79. kittystark 15 07.07.10 15:13 Сейчас в теме
(76) да, именно запретить пользователю менять фильтрацию и оставлять ее только в "разрешенном" виде

с этой целью пытался я воспользоваться PCX.CubeIntf.Dimension(i).DeleteKey(j), чтоб скрыть "не нужные"элементы, элемент измерения удаляется, но вот значения мер после этого становятся очень уж кривыми и всякие попытки пересчитать куб пока не возымели положительного результата, может подскажешь метод ?
80. cleaner_it 203 09.07.10 16:53 Сейчас в теме
(79) вроде сделал блокировку кнопки с треугольником вниз:) Как протестирую нормально, буду выкладывать новую версию компоненты
81. kittystark 15 09.07.10 17:10 Сейчас в теме
(80) дас ист комас - дас ист гуд, спасибо, ждемс
104. kittystark 15 13.07.10 19:15 Сейчас в теме
ну раз уж речь пошла про MS-продукт, так там есть такие штуки как защита размерности (по поводу (80) пока так и не увидел - подскажи, плиз), "custom rollups", "distinct count" (возвращаясь к (91),(94)), вот это бы реализовать :)

по поводу юзерских формул, так там поведение действительно бывает непредсказуемым, особенно если воспользоваться рекурсивной конструкцией "новая мера" = "новая мера"[prev by row] + что-то, а чтоб не ломали голову с составлением формул 2 варианта: сохранение/считывание, или "джентельменский набор" по кнопке/меню

кстати, а почему сохранению/считыванию карты куба вычисляемые меры абсолютно индифферентны?
105. cleaner_it 203 14.07.10 03:18 Сейчас в теме
(104) сделал, да что-то не работает:cry: к следующему релизу разберусь наверное. Насчет формул нужен конечно джентльменский набор.

"кстати, а почему сохранению/считыванию карты куба вычисляемые меры абсолютно индифферентны?" - не скажу, но с проблемой такой сталкивался еще в пору использования компоненты quick. Конечно, классно было-бы эту задачку решить.

По поводу MS: "Другой главной областью исправлений стал значительно улучшенный движок вычислений с поддержкой унарных операторов, пользовательских формул свертки (custom rollups) и многомерных выражений (cell calculations). Также новыми возможностями стали защита размерности, счет без повторов (distinct count), взаимодействие по HTTP, сессионные кубы, уровни группировки и др." - со всем этим еще разбираться нужно. То, что я об этом не говорю, не означает что этого нет, просто я об этом ничего не знаю:)
106. kittystark 15 14.07.10 10:05 Сейчас в теме
(105) quick кстати, отошел от использования PivotCube и перешел на HireCube в своем ReportEx, вот только в текущем состоянии там сохранение куба очень кривое, и пока не реализована поддержка иерархий измерений (хотя в демо хаера она есть), только эти 2 момента склонили чашу весов при выборе в твою пользу

ну и плюс еще твоя активность - проектик-то живой, развивается постепенно, за что тебе отдельное человеческое спасибо :)
107. cleaner_it 203 14.07.10 10:58 Сейчас в теме
(106) Мы с ним переписывались, я так понял, что главный козырь был - "бесплатность" HireCube, и потеря исходников предыдущей версии компоненты (пусть поправит, если я неверно понял)... А мне PivotCube понравился, я решил с ним поработать пока:)

PS: Проект развивается и будет развиваться :D
109. cleaner_it 203 15.07.10 15:35 Сейчас в теме
Ну вот, добрался:)
Теперь куб можно построить в рамках одной обработки и при наличии иерархических измерений

PS: Как только доделаю (80), так сразу выложу
110. kittystark 15 15.07.10 19:31 Сейчас в теме
(109) непременно ждемс

в доке есть следующий пример для вычисляемых мер
begin
var a;
var b;
func xy;
a = "Summa";
b = "Count";
Result = xy(a,b);
end

есть List of supported functions:
SQRT(value)
ABS(value)
SIN(value)
COS(value)
POWER(value, power)
POWER2(value)
LOG10(value)
LN(value)
EXP(value)
NEG(value)
Показать

не пойму про определение func xy;, как можно на основании существующих функций и арифметических операторов сворганить свою локальную функцию, скажем myF, чтобы потом при вычислении значения меры ее вызвать несколько раз, типа,
begin
func myF(x) <определение своей функции>
Result = myF(1) + myF(10) + myF(50)
end
111. cleaner_it 203 16.07.10 04:52 Сейчас в теме
(110) Обработчик событий нужно добавлять.

To calculate own function, you need to create own event handler


Записал в TODO, это хорошая возможность. Давно хотел сделать возможность задавать произвольные правила вычисления формул (например, чтобы не считались некоторые значения по заданному условию)
114. kittystark 15 16.07.10 10:28 Сейчас в теме
(111) ну да ладно, обойдемся пока без обработчиков, пусть код вычисления меры будет не красивый, но будет хотя бы функциональный

да и предполагалось это все задействовать для АВС-анализа, кстати (112), в этом АВС, на мой взгляд ничего сложного, можно даже с существующим функционалом назначать "категорию А/В/С", правда с одной оговоркой вместо А/В/С будут какие-нибудь числа, например 1/2/3 или 100/200/300 и дальше по аналогии можно будет совместить с такими же числами XYZ-анализа сложением

возни на программирование "кнопки" по формированию чистого АВС-анализа по одному показателю, для некоего измерения на пару-тройку часов
116. cleaner_it 203 16.07.10 12:54 Сейчас в теме
(114) Так ABC уже почти готов:)
(115) W7 x64 - не пробовал. Тестировалось на w2k3 x32, w2k3 x64, w7 x32, wxp x32. Разве есть проблемы с регистрацией? Просьба в таком случае прислать скриншот с ошибкой
119. cleaner_it 203 16.07.10 15:03 Сейчас в теме
(117) попробуй вручную regsvr32 или regasm - будет работать? А я пока посмотрю особенности компилирования под 64-битные системы (в таком случае буду выкладывать две отдельные сборки)
118. kittystark 15 16.07.10 14:15 Сейчас в теме
(116) а у меня уже готов :) , я ведь для юзеров все в *.hta-шке делаю с оригинальным активиксом, может и от твоих стараний почерпну идеи для воплощения у себя
122. cleaner_it 203 16.07.10 16:29 Сейчас в теме
(118) у тебя на иерархических измерениях ABC нормально работает?
123. kittystark 15 16.07.10 18:11 Сейчас в теме
(122) да вроде бы нормально, проверь:
в hta-шке (см.(74)) нужно обновить функцию
	function add_my_calculated_measure( measure_name, formula, format ){
		var curr_measure = 0
		for(var i=0; i<PCX.MapMeasureCount; i++){
			if(PCX.MapMeasures(i).Name == measure_name){
				curr_measure = PCX.MapMeasures(i)
			}
		}
		if(!curr_measure){
			PCX.MapAddCalculatedMeasure( measure_name, 'begin Result = ' + kill_dup_spaces(formula) + '; end')
			curr_measure = PCX.MapMeasures(PCX.MapMeasureCount-1)
		}else{
			//вместо добавления новой меры с таким же именем - переопределяем формулу существующей
			curr_measure.CalcFormula = 'begin Result = ' + kill_dup_spaces(formula) + '; end'
		}
		curr_measure .FormatString = (format)?(format):("#,###.00")
		return curr_measure
	}
Показать


добавить чуток служебных функций:
	function remove_all_dimensions_from_row_col_toolbars(){
		//убираем все измерения из области колонок
		for(var i=PCX.MapColumnDimCount-1; i>=0; i--){
			PCX.MapRemoveDimension(PCX.MapColumnDimension(i))
		}	
		//убираем все измерения из области строк
		for(var i=PCX.MapRowDimCount-1; i>=0; i--){
			PCX.MapRemoveDimension(PCX.MapRowDimension(i))
		}
	}

	function getMeasureIndexByName( mes_name ){
		for(var i=0; i<PCX.MapMeasureCount; i++){
			if(PCX.MapMeasures(i).Name == mes_name){
				return i
			}
		}
		return null
	}
	
	function show_only_this_measures( separated_str ){
		var arr = separated_str.split('|')
		for(var i=0; i<PCX.MapMeasureCount; i++){
			var found = 0
			for(var j=0; j<arr.length; j++){
				if(PCX.MapMeasures(i).Name == arr[j]){
					found = 1
				}
			}
			PCX.MapMeasures(i).Visible = found
		}
	}
Показать


ну и собственно изюм:
function get_category_formula( k1, k2, k3, max_A, max_B, TTL_perc_measure_name ){
		// выражение k1*H(max_A-x) + k2*H(x-(max_A+delta))*H(max_B-x) + k3*H(x-max_B+delta)
		// где H(x) - это функция Хевисайда, delta - достаточно малый параметр отступа от точки, равно:
		//  k1, при                       0 < x <= max_A, (т.к. значения x по определению нарастающего процента/доли - положительны)
		//  k2, при   max_A + delta <= x <= max_B
		//  k3, при                            x >= max_B + delta
		// возникают "слепые зоны", т.е. 2 промежутка где функция будет равна нулю:  (max_A; max_A + delta)  и (max_B; max_B + delta)
		delta = 0.0001
		s = ''+k1+'*H('+max_A+'-x) + '+k2+'*H(x-'+(max_A+delta)+')*H('+max_B+'-x) + '+k3+'*H(x-'+(max_B+delta)+')'
		//alert(s)
		
		//все встречающиеся функции Хевисайда, преобразуем к виду понимаемому парсером фромул
		s = s.replace(/H\(([^\)]+)\)/gi,'(   (1+($1)/ABS($1))/2    )').replace(/x/gi, TTL_perc_measure_name).replace(/\./gi,',')
		//log(s)
		return s
	}
	
	function ABC_analysis( analytic_measure_name, analytic_dimension_name ){			
		curr_measure = add_my_calculated_measure("TTL percent", analytic_measure_name + '[RUNNING_TOTAL_BY_COL] / '+analytic_measure_name+' [COLUMN] * 100')
		curr_measure = add_my_calculated_measure("ABC", get_category_formula(1,2,3, 70, 80, '"TTL percent"'), '##0' )
		show_only_this_measures( analytic_measure_name +"|TTL percent|ABC" )
		remove_all_dimensions_from_row_col_toolbars()
				
		PCX.MapAddDimensionToRows( analytic_dimension_name )		
		PCX.MapRebuild()
		PCX.MapSortByMeasure(0,getMeasureIndexByName(analytic_measure_name),1)
		PCX.MapRefreshData()	
	}

ABC_analysis('"Продажи (+НДС)"', "Номенклатура")
Показать
125. kittystark 15 16.07.10 19:13 Сейчас в теме
(123) :!: :!: :!: заметил еще что в комменте были съедены очень важные символы :!: :!: :!:

в функции get_category_formula() вместо (1+()/ABS())/2 должно быть (1+(<символ доллара>1)/ABS(<символ доллара>1))/2 :!: , а то иначе работать не будет
130. kittystark 15 20.07.10 11:31 Сейчас в теме
касаемо get_category_formula(...) (см.(123),(125))
в коде в исходном виде
s = s.replace(/H\(([^\)]+)\)/gi,'(   (1+($ 1)/ABS($ 1))/2    )').replace(/x/gi, TTL_perc_measure_name).replace(/\./gi,',')

...не учитываются 2 момента:
1. системные настройки (локаль), в частности текущий десятичный разделитель
2. измерение в своем наименовании может содержать точки/запятые
поэтому для большей устойчивости в работе лучше заменить этот код на следующий
s.replace(/H\(([^\)]+)\)/gi,'(   (1+($ 1)/ABS($ 1))/2    )').replace(/(\d+)([\.,])(\d+)/gi,'$ 1'+(1.5).toLocaleString().substr(1,1)+'$ 3').replace(/x/gi, TTL_perc_measure_name)

:!: ВНИМАНИЕ: после символов доллара никаких пробелов не должно быть, отредактируйте вручную при переносе кода к себе (издержки форума) :!:
131. cleaner_it 203 22.07.10 07:17 Сейчас в теме
(130) Пора свою публикацию делать:)

...

(123) И все-же при построении ABC на иерархических измерениях должны возникать проблемы. Например, имеется группа X, в ней два элемента- Y и Z. Y нужно отнести к категории А, а Z - к категории С. Если сохранять иерархию - то в обоих категориях нужно создавать иерархическую структуру, подобную имеющейся - то есть создавать в каждой категории группу X. В итоге должна получиться следующая структура:

Структура измерения ДО анализа:
X
-Y
-Z

Структура измерения ПОСЛЕ анализа:
A
-X
--Y
B
C
-X
--Z

Чем сложнее иерархическая структура, тем сложнее затем будет анализировать...

Я склоняюсь к мысли, что при проведении ABC-анализа группы необходимо убирать, т.е. преобразовывать иерархическое измерение к линейному списку. А затем, при необходимости, возвращать обратно
132. kittystark 15 22.07.10 11:04 Сейчас в теме
(131) согласен, я этот момент тоже прочувствовал и для себя проблем не вижу, т.к. были сделаны следующие выводы:
1. правильная постановка задачи, например для оптимизации складских запасов, именно такая как ты и говоришь - убрать группы, отсортировать, разнести по категориям
2. для проведения анализа на высоком уровне, по товарным группам в целом - предложенного решения вполне достаточно, хотя есть те самые нюансы

в виду того, что руки у меня не дошли до собственноручного написания включения/отключения групп (со времен (88)) возникают 2 ВРЕМЕННЫХ подхода: формировать 2 куба, отличающиеся только тем, что в одном есть иерархия, в другом нет; второй вариант - в один куб запихивать 2 измерения номенклатуры (с иерархией и без) и юзать подходящее

так что пока на скорую руку выкручиваемся как можем, а по хорошему нужно осваивать технику программирования не вычисляемой МЕРЫ АВС=1/2/3, она, помимо вышесказанного, дальше совмещения с XYZ пойти не даст, а нужна техника создания в рантайме (по меню/кнопке) новых (возможно нескольких) ИЗМЕРЕНИЙ ABC, т.к. такой подход позволит совместить данные анализа АВС [+XYZ] по одному "измерению+показателю" с 2-мя/3-мя и тд. АВС анализами по другим "измерениям+показателям",

и тогда возникнет возможность, например, определить, что один товар по сумме продаж относится к категории А, по рентабельности к В, а по оборачиваемости к С, ну а другие товары по этим же показателям отнести к ААА, ААВ, АВА и т.д.

имхо, перегруппировку измерения с созданием внутри него групп АВС лучше не рассматривать - геммора потом не оберешься
112. cleaner_it 203 16.07.10 06:31 Сейчас в теме
Чтобы работало (80), необходимо еще решить следующие проблемы:
1. Кнопка измерения становится недоступной совершенно (даже заменить кнопку этого измерения другим не получится)
2. При перестройке куба кнопка становится вновь доступной, т.е. нужно создавать обработчик события перестройки и вновь делать кнопку недоступной

Поэтому пожалуй я просто сделаю подписку "Проверка изменения фильтра", и если будет попытка изменения - запрещать. Несколько релизов этой возможности не будет, пока приоритет сдвинут на ABC-анализ и документацию
48. cleaner_it 203 19.06.10 17:02 Сейчас в теме
Выкладываю версию 2.4

Изменения по сравнению с версией 2.3.1

[*] - изменение
[+] - добавление
[–] - отказ/удаление

РЕАЛИЗОВАНЫ МЕТОДЫ:
[+] - Реализован метод SetIDByName (просьба kittystark)
[+] - Реализован метод SaveToHTML

ДОБАВЛЕНЫ СВОЙСТВА:
[+] - Добавлено свойство ShowRowTotals ['pvgtFixed', 'pvgtAtEnd', 'pvgtAtStart', 'pvgtDisabled']
[+] - Добавлено свойство ShowColumnTotals ['pvgtFixed', 'pvgtAtEnd', 'pvgtAtStart', 'pvgtDisabled']

ДОПОЛНЕНА ДОКУМЕНТАЦИЯ:
[+] - Описан метод AppendRecordHierarchical (Баг-репорт kittystark)
[+] - Описан метод SetValueHierarchical (Баг-репорт kittystark)
[+] - Описан метод PostRecordHierarchical (Баг-репорт kittystark)

НАСТРОЙКИ КОМПОНЕНТЫ ПО УМОЛЧАНИЮ:
[*] - Баг-репорт kittystark «После создания формы, но ДО загрузки куба, панели измерений и колонок можно таскать мышью влево-вправо». На текущий момент эта возможность убрана.

ДРУГОЕ:
[*] - Исправлено сворачивание раскрытых измерений при помещении любого измерения в строки и/или колонки (работает на линейных списках, при наличии иерархических измерений на верхнем уровне сворачивание происходит всегда)
[*] - изменено имя файла компоненты на PivotCubeAX.ocx (ранее ActiveFormProj1.ocx)
[+] - Добавлены типы итогов колонок и строк: pvgtFixed, pvgtAtEnd, pvgtAtStart, pvgtDisabled, см. «Атрибуты интерфейса»

А также:
1. Подправлена документация
2. Дополнен всеми новыми возможностями пример использования компоненты для 1С v8.1
50. cleaner_it 203 19.06.10 17:24 Сейчас в теме
Готовится к реализации в следующих версиях

[*] - изменение
[+] - добавление
[–] - отказ/удаление

Методы

Наименование метода
Описание
[+] SetWidthMeasure
Установка ширины колонок показателей
[+] SetWidthDimension
Установка ширины колонок измерений
[+] SetFilter
Программная установка фильтра
[+] ClearFilter
Программная отмена фильтра
[+] SortDimension
Сортировка измерений
[+] SaveToOpenOffice
Экспорт в Open Office
[+] LoadFromWEB
Загрузка куба, хранящегося на WEB-сайте
[+] LoadFromStream
Загрузка куба из потока данных
[+] SetWidth
Установка ширины формы компоненты
[+] SetHeight
Установка высоты формы компоненты

Другое
[+] - реализовать прогресс-бар для отображения процесса загрузки куба
[+] - доработать руководство пользователя OLAP (будет произведено деление документации на другие логические блоки, а так же выделение в отдельный блок используемых в компоненте типов — сейчас они описаны в одном блоке со свойствами компоненты)
[+] - доработать работу с графиком
[+] - добавить возможность работы компоненты на переносимой СУБД SQLite
[+] - добавить возможность сохранения/загрузки настроек положения/видимости колонок/строк/формул/показателей
[+] - реализовать возможность переформировывать куб в рамках одной и той-же обработки (исправить ошибку «Cannot perform this operation on an open dataset»)
56. kittystark 15 23.06.10 20:07 Сейчас в теме
(50)
из "Другое":
...
[+] - реализовать возможность переформировывать куб в рамках одной и той-же обработки (исправить ошибку «Cannot perform this operation on an open dataset»)

этого хотелось бы получить в первую очередь
218. Medvedik 05.05.12 10:31 Сейчас в теме
(50)
[+] - добавить возможность сохранения/загрузки настроек положения/видимости колонок/строк/формул/показателей

cleaner_it, эти планы похоронены, или как?
219. cleaner_it 203 05.05.12 13:59 Сейчас в теме
(218) Скорее сдвинуты по времени:) Сроки назвать не рискую, потому что задача не приоритетная
51. пользователь 19.06.10 17:32
Сообщение было скрыто модератором.
...
52. cleaner_it 203 20.06.10 07:49 Сейчас в теме
Поправка описания типов отображения итогов:

pvgtFixed
Значение типа отображения итогов зафиксировано - справа для колонок, снизу — для строк. При перемещении горизонтального/вертикального ползунков итоги сохраняют свое положение (аналог «Закрепить область» табличного документа или электронной таблицы OpenOffice (Excel))

pvgtAtEnd
Значение типа отображения итогов: в конце

pvgtAtStart
Значение типа отображения итогов: в начале

pvgtDisabled
Значение типа отображения итогов — не показывать
53. cleaner_it 203 20.06.10 09:28 Сейчас в теме
Выложил файл "Видеопрезентация "Общее представление об OLAP-кубе.zip" (для PivotCubeAX 2.4.0.1)"
54. cleaner_it 203 20.06.10 13:21 Сейчас в теме
Выложил файл "Видеопрезентация "Работа с измерениями в OLAP-кубе.zip" (для PivotCubeAX 2.4.0.1)"
55. cleaner_it 203 20.06.10 14:20 Сейчас в теме
Компонента заменена на версию 2.4.0.1 (наименование файла не изменилось, изменения по сравнению с версией 2.4 - чисто косметические)
59. cleaner_it 203 25.06.10 06:53 Сейчас в теме
В первую очередь будет SQLLite, уж не обессудьте:) Скорость работы и удобство использования для меня прежде всего. Ну, плюс планируется качество преобразования типов улучшить
62. brr 184 01.07.10 12:08 Сейчас в теме
вашу разработку можно использовать для работы с сервером олап?
63. cleaner_it 203 01.07.10 12:44 Сейчас в теме
(62) Думаю реализовать нечто подобное. Какой сервер используете?
64. brr 184 01.07.10 17:40 Сейчас в теме
Microsoft Analysis Services 2000
65. cleaner_it 203 02.07.10 04:59 Сейчас в теме
(64) Такого добра у меня нет:) Сейчас ищу PALO, он GPL - на нем только если пробовать
97. JohnyDeath 302 13.07.10 10:32 Сейчас в теме
(64) А зачем эта разработка, если есть Microsoft Analysis Services 2000
Сервисы OLAP от Microsoft на порядок лучше компоненты, на базе которой сделан этот ActiveX и выглядит куда более приятней
98. cleaner_it 203 13.07.10 15:27 Сейчас в теме
(97) Вполне объективно - делают красиво, да и по быстродействию наверняка лучше за счет использования сервера. Но не у всех есть возможность купить себе Microsoft Analysis Services 2000:) Я, например, не могу.
100. JohnyDeath 302 13.07.10 15:42 Сейчас в теме
(98) Ну во-первых, я как бы описывал непонимание автора из (64). У него уже стоит Microsoft Analysis Services 2000
А во-вторых, у тебя есть возможность не то что покупать, а скачать и пользоваться абсолютно бесплатно Microsoft SQL Server 2008 Express Edition with Advanced Services

(99) а я считаю, что наглядность - один из самых важных факторов, который необходим при анализе данных.
С компонентой на базе которой ты создал этот АХ я давно знакомился и именно из-за своей внешней убогости я её так и не смог (не захотел?) куда-либо внедрять.
Вот взгляни на свой же скриншот № 3 из http://infostart.ru/public/72778/ . Контрагент абсолютно нечетаем. Интерективное добавление формул - вообще сказка. Я не знаю ни одного пользователя, кто бы мог что-то в этом понять и создать своё. Иконки, надписи, да и общий внешний вид - как крик из далёкого прошлого, к которому не хочется возвращаться, но понастальгировать можно. ;)
101. cleaner_it 203 13.07.10 17:31 Сейчас в теме
(100) Я прекрасно тебя понял, зачем ты еще раз объясняешь... Microsoft SQL Server 2008 Express Edition with Advanced Services имею, в целях обучения/ознакомления работы с VS C#, но использовать постоянно - желания не имею. Зачем я буду ставить везде сервер SQL? А если Клиент использует Linux/BCD? Я не в целях дискуссии, одна из целей развития компоненты - кросплатформенность, ради которой можно перейти и на другую компоненту.

Контрагент нечитаем - так это размер шрифта выбран большой, да и колонку раздвинуть можно. Клиенту не со скриншотом работать:) Впрочем, замечание принято, приведу в порядок наглядность скринов и сделаю в видео-презентациях подробное описание действий.

Про наглядность разговоров вообще никаких не было, о чем спор? Только наглядность не оценивается по принципу "большие красивые кнопочки и иконки". В самой компоненте, кстати, интерфейс можно менять, меня же больше привлекает простота.

Клиент сможет добавлять формулы, если его этому научить. Думаешь, им прикольно каждый раз обращаться к программисту? Как-бы не так! Вот сделаю возможность сохранения настроек и пользовательских формул - и все вообще будет в ажуре:)
102. cleaner_it 203 13.07.10 17:39 Сейчас в теме
(100) Кстати, я делал поддержку смены скринов для компоненты, но мне не понравилось. Да и размер компоненты сильно увеличился, а хранить шкурки во внешнем хранилище - идея не самая лучшая. И аналитики вместо анализа будут заниматься сменой шкурок программы...
103. JohnyDeath 302 13.07.10 17:42 Сейчас в теме
(102) тут шкурки вряд ли помогут. Лучше не трать на это время ;)
66. cleaner_it 203 03.07.10 16:31 Сейчас в теме
Завтра буду выкладывать новую версию. Из принципиальных доработок - отказ от использования BDE
67. cleaner_it 203 04.07.10 08:15 Сейчас в теме
Выложена версия компоненты 2.4.1. Обновляться рекомендовано всем:)

Немного подробнее:

Методы
[*] CreateFactTable - Убран параметр typedb
[*] CreateFactTableHierarchical - Убран параметр typedb

Другое
Описание изменения
[–] Отказ (возможно временный) реализации перевода компоненты на СУБД SQLite в связи с использованием kbmMemTable
[*] Убрано ограничение «20 символов» на длину наименования измерения/показателя. Максимальная протестированная длина наименования на текущий момент составляет 35 символов
[*] Компонента теперь использует для построения отчетности БД kbmMemTable.
Преимущества
1. Отсутствие необходимости использования BDE.
2. БД хранится в памяти — нет необходимости создавать временные файлы.
3. Обеспечивает возможность использования компоненты на *nix-системах (на 04.07.2010 данная возможность не протестирована).
4. Согласно опросам, использование данной БД повышает производительность обращений к данным на 150-200% (статистика об увеличении производительности на 04.07.2010 отсутствует)
5. Исправлена досадная ошибка (баг-репорт and-blag): для чисел с плавающей запятой при использовании БД Paradox происходило некорректное преобразование типа float в тип double, что на больших объемах данных давало относительную погрешность расчета итогов около 0.02% (несколько сотен на несколько миллионов условных единиц). (Примечание: БД FoxPro свободна от такой ошибки)
[*] Коренным образом переделано внутреннее содержание компоненты, ограничивающее ее масштабируемость и интеграцию с различными СУБД
[*] Частично дополнена и переработана документация
[*] Начиная с версии 2.4.1 компонента проходит обязательное сжатие UPX, благодаря чему размер поставки снизился в 2 раза (не считая 4 Мб, сэкономленных выводом из состава разработки bdeinst.dll)
chernyakai; +1 – Ответить
68. cleaner_it 203 04.07.10 16:46 Сейчас в теме
Порадовался:)

Я на 1 строчке Google по запросу "OLAP отчет ActiveX"
Я на 5 строчке Google по запросу "OLAP ActiveX"

PS: Аналогично в Яндексе:)
69. kittystark 15 07.07.10 09:07 Сейчас в теме
на релизе 2.4.1 метод SetValue теперь требует 3-й параметр: SetValue(NameField As String, Value, ID As Long)... Можно пояснить настоящий смысл этого ID, а то руководство разработчика как-то не поспевает за изменениями ;) У себя в обработке перед закрывающей скобкой просто поставил запятую, т.е. 3-й параметр пустой - работает однако... но хочется разобраться

строим куб, кидаем по измерению в строки/столбцы, оставляем видимой только одну меру, переходим к графику, нажимаем на кнопку "Печать графика" или "Обновить график" и уходим в себя до ручного снятия процесса
70. cleaner_it 203 07.07.10 09:47 Сейчас в теме
(69) Позавчера исправил (только еще не выложил). Он его только в 7.7 требовал, я это узнал когда пример для 7.7 делал:) А изначально этот ИД появился, когда я хотел ID назначать при заполнении куба (Не вышло, нет такой штатной возможности. Только после построения куба можно)

Насчет графика там конечно разобраться надо, вполне возможно, что я откажусь от штатного построителя графиков PivotCube, попробую свое накидать

А пока можешь пользоваться графиком, который вызывается из самого куба - там на каждом показателе и на каждом измерении в столбцах есть кнопочка "График" красно-зелено-синего цвета. Там все нормально работает, только неудобно открывать/закрывать, и параметры не сохраняются
71. cleaner_it 203 07.07.10 09:52 Сейчас в теме
(69) Кстати, по поводу твоего давнего замечания, что при использовании объекта 1cpp АктивИкс объекты куба дергаются - я пожалуй сделаю создание нового окна Windows внутри 1С и буду туда помещать PivotCubeAX, тогда по идее мерцание должно пропасть.
75. kittystark 15 07.07.10 14:49 Сейчас в теме
это как AddGroup(NameDimension As String, NameGroup As String, ItemID As <Unsupported variant type> :?: )
77. cleaner_it 203 07.07.10 15:00 Сейчас в теме
(75) это недокументированная функция, на которой я провожу тесты:) Вообще, раньше с ее помощью можно было в пользовательском режиме после построения куба добавлять группы, и помещать в них элементы
82. cleaner_it 203 09.07.10 17:32 Сейчас в теме
Придумал новую возможность: реализовать возможность устанавливать кнопкам измерений цвет (будет удобно выделять разным цветом разные категории измерений, например - даты одним цветом, все что связано с клиентами - другим).
83. kittystark 15 09.07.10 17:55 Сейчас в теме
(82) ну че, прикольно, только имхо нужно это сделать так, чтоб на палитре неактивных измерений цветовая раскраска по категориям была, а на тулбарах строк/столбцов чтоб можно было отключать категорийную раскраску

плюс еще группировку/сортировку (автоматическое перемещение) кнопок по цветам, чтоб не было "шахматного порядка" и всяких цветовых разбродо-шатаний (этот пункт точно только для неактивных измерений)
85. cleaner_it 203 09.07.10 18:14 Сейчас в теме
(83) Даже не знаю, что и сказать:) Будем тестировать, смотреть - как удобнее пользователю
84. cleaner_it 203 09.07.10 18:12 Сейчас в теме
Есть контакт! Реализована возможность переформировывать куб в рамках одной и той-же обработки (исправление ошибки «Cannot perform this operation on an open dataset»)
86. cleaner_it 203 09.07.10 18:16 Сейчас в теме
(84) с небольшим уточнением - если в кубе не было иерархических измерений. Для этих товарищей нужно будет еще немного подумать, что и как сделать
88. kittystark 15 12.07.10 09:26 Сейчас в теме
(86),(87) ну теперь ждем "перформа" еще и по иерархичным измерениям, ведь номенклатура и контрагенты с группировками - это классика жанра

кстати, нужно еще для измерения продумать возможность "отключить/включить группы" в процессе пользования кубом, могу привести пример для чего это может понадобиться
90. cleaner_it 203 12.07.10 11:08 Сейчас в теме
(88) Согласен, тоже подумываю что иногда группы не нужны. но ты все-таки напиши случаи, где по твоему мнению это не нужно
(89) Покажи все возможности OLAP на кОмпОновке, и я готов признать свою ошибку. А пока разговаривать не о чем, уж извини. Разные технологии совершенно
91. kittystark 15 12.07.10 12:58 Сейчас в теме
(90) из опыта эксплуатации, хотим проанализировать такие показатели как:
1. АКБ (Активная Клиентская База = количество контрагентов, купивших чего-либо из конкретной группы товаров)
2. SKU (вроде бы Stock Keeping Unit, но мы его для себя определяем как количество НАИМЕНОВАНИЙ товаров (не количество! в единицах измерения) купленных контрагентом, тоже из какой-то товарной группы)

для начала заводим новую вычисляемую меру "встречено раз" = "Количество" / "Количество" (получаемые значения: 1 - если продажи были, 0 - не было)
в свойствах этой меры проставляем галки "running total by rows" и "running total by colunms", все остальные меры лучше отключить

перетаскиваем измерение контрагентов в область строк, фильтрацией отбираем интересующие нас товары, и получаем в итогах внизу - значение АКБ (у нас все покупатели - на первом уровне, без группировки(! здесь это важно), поставщики и др. контрагенты в гр. "прочие", но это только в кубах, а не в исходном справочнике контрагентов)

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

дальше берем измерение номенклатуры и перетаскиваем в область колонок, вуаля - в итогах справа видим значения SKU, но это справедливо только в случае отсутствия групп, т.к. если будет группа, то для нее "встречено раз" будет равно 1, как кол-во / кол-во, а не как сумма вложенных значений

представь, что анализируемые товары сидят в разных группах, но принадлежат одному бренду/производителю и стоит задача проанализировать SKU по контрагентам по товарам данного бренда...

на мой взгляд отключили группы - вытянули товары на первый уровень, и решены проблемы

хотелось бы узнать твои мысли по этому поводу
93. cleaner_it 203 12.07.10 14:55 Сейчас в теме
(91) Серьезный вопрос. Я попробую воспроизвести на своей базе, чтобы лучше понять, о чем идет речь
126. cleaner_it 203 17.07.10 14:41 Сейчас в теме
(91) Понял, что тебе нужно было. Это ведь для ABC? Ты придумал конечно мощно (123)-(125), если мой вариант не получится, буду отрабатывать твой и/или подобные.

PS: Фишка в том, что Count для иерархического (читай - имеющего группы) измерения считается только по верхнему уровню (при этом также считаются неактивные измерения, что нас совершенно не интересует), а нужно, чтобы считалось уникальное количество элементов по группам и элементам в рамках одного измерения. Все как ты и сказал:)
127. kittystark 15 18.07.10 16:00 Сейчас в теме
(126) по поводу (91) - пока оно идет как-бы без запихивания в АВС и вот почему (пускай я лишний раз повторюсь):
АКБ - это показатель количества контрагентов купивших чего-нибудь за период, т.е. предположим, что у нас в справочнике 3000 покупателей, а покупок совершило всего 327 покупателей, вот и получаем 327/3000, конечно никто не запрещает смотреть на это соотношение по всем товарам сразу, но мы его анализируем применяя фильтрацию по товарам конкретного производителя/по бренду, преследуемая цель - наращивание и контроль клиентской базы именно по этим товарам, получая ответ на вопрос типа "а че так мало у нас клиентов покупающих то-то и то-то"

а SKU в той постановке - позволяет с разбивкой по контрагентам определить сколько же названий товаров из всей линейки представлено у клиента на полке, например 17 из 40-ка конкретного бренда, маловато будет, вот тебе еще парочка наименований - продвигай, будешь в своем магазине продавать 19/40, т.е. своего рода помощь в мерчандайзинге

как все это использовать с АВС - пока еще до конца не осознал, можно конечно отсортировать контрагентов по значению SKU конкретного товарного направления, как-то побить на группы в зависимости от значения, или разбить по категориям все бренды/линейки с сортировкой по значениям АКБ, но тут встает вопрос: как это все реализовать в рамках существующего функционала компоненты, и самое главное - а оно кому-нибудь надо ?

а по (123-125) мне аж самому понравилось :) , особенно функция Хевисайда, имхо она рулит, а остальное в коде - дело техники, ну и вот он тот самый редкий момент в жизни, когда на практике применяются университетские знания по "высшей арифметике"

сейчас еще буду прикручивать совмещение с XYZ - понадобятся всякие там стандартные отклонения, коэффициенты вариации - для создания в экселе тествого набора данных и сравнения получаемых результатов (пошел читать доку по всяким девиациям, куртозисам и пр. -выбирать что же нужно юзать)
87. cleaner_it 203 09.07.10 19:53 Сейчас в теме
Выложил новую версию компоненты: 2.4.1.52.

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

Дополнительно: реализован пример работы с компонентой для 1С 7.7, немного подправлена документация.

Рекомендовано скачивать и обновляться счастливым обладателям 1С 7.7
89. slaviksoft 75 12.07.10 09:58 Сейчас в теме
велосипед блин
зачем что-то инсталировать и изучать когда оно уже есть в кампановке?
ради пары секунд быстроты?
92. kittystark 15 12.07.10 13:05 Сейчас в теме
94. kittystark 15 12.07.10 16:31 Сейчас в теме
возникла мысль: сейчас у нас запрос 1с пробегается по регистру партий и в лоб постятся записи в куб, соответственно, функция COUNT, после ребилда куба, возвращает количество встреченных записей, удовлетворяющих текущим фильтрам и значениям отображаемых измерений

вот ЕСЛИ БЫ придумать "нормализованную COUNT", для элементов всегда 1, а для групп - сумма по вложенным count-значениям...
95. cleaner_it 203 12.07.10 16:47 Сейчас в теме
(94) так это есть, используй ctCount для показателей вместо ctSumma
96. kittystark 15 12.07.10 16:59 Сейчас в теме
(95) э нет, знаю я про ctCount, для АКБ и SKU как они были "определены", она в чистом виде не подходит, это было первое что я попытался использовать

просто продаж товара контрагенту за период может быть 10 записей, и count вернет 10, а мне нужно посчитать их (товаров с контрагентами) как встреченных 1 раз

думаю, когда на своей базе воспроизведешь, перечитаешь 91, 94 - прочувствуешь разницу
99. cleaner_it 203 13.07.10 15:29 Сейчас в теме
Я считаю, что красота при анализе отступает на второй план - любоваться стоит на красивые цифры, на рост (продаж, качества сбора дебиторки), на вовремя замеченные проблемы, и т.д.:)
108. cleaner_it 203 15.07.10 11:33 Сейчас в теме
Я никак не могу понять равнодушия отдельных людей. Вот скачали вы разработку (бесплатно, между прочим) - скажите "плохо" или "хорошо". Комментарий напишите, предложение сделайте
113. cleaner_it 203 16.07.10 08:54 Сейчас в теме
Кстати, идея неплохая - получать результат расчета куба в 1С в виде ТЗ
115. Константин С. 685 16.07.10 11:15 Сейчас в теме
Как быть с регистрацией W7 64 битной.
120. cleaner_it 203 16.07.10 15:16 Сейчас в теме
Увы, но в свойствах проекта максимум - 32 бита

"delphi: 64-битный компилятор - 1я половина 2011 года" //http://www.tdelphiblog.com/2010/03/delphi-2011-fulcrum.html
124. kittystark 15 16.07.10 18:18 Сейчас в теме
доп. коммент: при вызове get_category_formula(1,2,3, 70, 80, '"TTL percent"')
первые три параметра задают каким числом будут представлены категории А/В/С соответственно; 70 и 80 - процентные границы между А/В и В/С, для классического АВС лучше использовать 50 и 80

и для стабильной работы лучше 1-ю строчку ABC_analysis(...) заменить на следующее:
curr_measure = add_my_calculated_measure("TTL percent", '"'+analytic_measure_name + '"[RUNNING_TOTAL_BY_COL] / "'+analytic_measure_name+'" [COLUMN] * 100')


тогда вызов будет такой:
ABC_analysis('Продажи (+НДС)', 'Номенклатура')

как говорится, найдите 10 отличий ...
128. kittystark 15 18.07.10 21:56 Сейчас в теме
- мама, что это было ?
- море...

короче, не знаю почему и что это было, но в один прекрасный момент загрузка куба из файла ни к чему не приводила, т.е. ни тебе измерений, ни тебе мер - одни тулбары

помогла перерегистрация:
regsvr32 /u zcube.dll
regsvr32 zcube.dll
129. cleaner_it 203 19.07.10 07:08 Сейчас в теме
(128) Может что-то с операционной системой? На нашем сервере уже 2 года работает без какой-либо перерегистрации. Я и забыл уже про существование этой компоненты на данном сервере:) Обновить-бы надо...
133. kittystark 15 26.07.10 14:38 Сейчас в теме
включение/отключение иерархий:
function getDimensionIndexByName( dim_name ){
		for(var i=0;i<PCX.CubeIntf.DimensionCount;i++){
			if(PCX.CubeIntf.Dimension(i).DisplayName == dim_name){
				return i
			}
		}
		return null
	}

	var hierarchies = []
	function remove_dimension_hierarchy( dimension_name ){
		var dim = PCX.CubeIntf.Dimension( getDimensionIndexByName(dimension_name) )
		//сначала определяем есть ли у измерения иерархия вообще
		var hierarchy_exist = 0
		for(var j=0;j<dim.count;j++){
			if(dim.Items(j).OwnerID != -1){
				hierarchy_exist = 1
				break
			}
		}

		if(hierarchy_exist){
			if(hierarchies[dimension_name]==undefined){
				hierarchies[dimension_name] = new Array()
			}
			PCX.MapActive = 0
			for(var j=0;j<dim.count;j++){
				itm = dim.Items(j)
				if(itm.OwnerID != -1){
					hierarchies[dimension_name][itm.ID] = itm.OwnerID
					itm.OwnerID = -1
				}
			}
			PCX.MapActive = 1
			PCX.MapRefreshData()
		}
	}

	function restore_dimension_hierarchy( dimension_name ){
		if(!hierarchies[dimension_name]){
			return
		}

		if(hierarchies[dimension_name].length){
			PCX.MapActive = 0
			var dim = PCX.CubeIntf.Dimension( getDimensionIndexByName(dimension_name) )
			for(var j=0;j<dim.count;j++){
				itm = dim.Items(j)
				if( hierarchies[dimension_name][itm.ID] ){
					itm.OwnerID = hierarchies[dimension_name][itm.ID]
				}
			}
			PCX.MapActive = 1
			PCX.MapRefreshData()	
			hierarchies[dimension_name] = null
		}
	}
Показать


есть один недостаток - сбрасываются все существовавшие фильтры :evil: , не подскажешь, как ПРОЧИТАТЬ текущее состояние фильтрации по dimension(i).item(j) ?

чего-то метод PCX.MapDimensionItemInfo(DimAlias As String, OwnerID As Long, Index As Long, ItemCaption As String, ItemCount As Long, ItemState As Long) не получается заюзать...
cleaner_it; +1 – Ответить
134. cleaner_it 203 27.07.10 05:39 Сейчас в теме
(134) Используй метод GetDimensionFilter(id, filter), он относится к карте куба - PivotMap.
Первым параметром передаешь номер измерения, во втором получаешь фильтр (тип OleVariant)

PS: Если в оригинальной компоненте ActiveX нет доступа к PivotMap, попробуй сначала PCX.CubeIntf.InitMap(PivotMap);
135. kittystark 15 27.07.10 10:57 Сейчас в теме
(134)
"Где карта Билли? Нам нужна карта." (с) м/ф Остров Сокровищ

"давным-давно" пытался я воспользоваться PCX.MapIntf - затык

подход с наскока var PivotMap; PCX.CubeIntf.InitMap(PivotMap) - выдает ошибку сценария "несоответствие типа"

догадываюсь, что наверное нужно как-то создать объект по интерфейсу IMap из ZCube.dll, и передать его, но вот как это сделать на JScript/VBScript... :?:
возможно что-то типа new ActiveXObject(<???>)/ dim PivotMap as <???>, но пока руки не дошли разобраться, может кто подскажет ?

а вот если бы был доступ к карте, то можно было бы поиграться и с PCX.MapIntf.Dimensions(i).isHierarchy
136. kittystark 15 27.07.10 12:35 Сейчас в теме
почитал форум pivotcube, выдержка:

You never not need to create IMap-based objects in PivotCubeX. Only IPivotCubeX (CoPivotCubeX) allowed for creation. After activation, the property IPivotCubeX.MapIntf will point to PivotMap interface

чёта не сходится, т.к. не могу достучаться я через PCX.MapIntf к методам/свойствам ...
137. kittystark 15 27.07.10 14:26 Сейчас в теме
попытался я использовать событие:
function PCX::OnMapChange(Map)
{
				try{
					//здесь !!!! пойдут тестовые операторы
				}
				catch(Exception){
					alert(Exception.name+": "+Exception.message);
				}
			}
Показать


в качестве тестовых операторов использовал
1. alert(Map) - TypeError: Несовпадение типов
2. alert(Map.DimensionCount) - TypeError: DimensionCount есть null или не является объектом
3. var filter
Map.GetDimensionFilter( 1, filter ) - TypeError: Предполагается наличие объекта

складывается ощущение, что Map в данном случае какой-то "очень хитрый" указатель на такой же хитрый объект, с точки зрения типизации не воспринимаемый движками JScript / VBScript, что аж мозг отказывается это понимать...

видимо когда-нибудь придется все же переползти с актив-икс + hta на VCL + delphi/builder, а так ломает :)
138. cleaner_it 203 27.07.10 18:14 Сейчас в теме
(137) Все у тебя получится. Создавай
dim PivotMap as TPivotMap
, а вот как описать TPivotMap - это уже другой вопрос:) Я думаю, что-то вроде CreateObject("PCX.TPivotMap") Если не получится - регистрируйся у них на форуме, задай вопрос Алексу, в течении двух-трех дней он ответит.

"давным-давно" пытался я воспользоваться PCX.MapIntf - затык
- нужно разобраться, почему затык. В типовом примере смотрел, как работать с картой куба? А в документации?

PS: На все требуется время:) Я две недели топтался вокруг да около ABC-анализа, сейчас вроде все логично выстроилось, двигаюсь потихоньку
139. kittystark 15 28.07.10 13:47 Сейчас в теме
(138) через CreateObject() видимо не получится, т.к. в качестве параметра передаются строка вида "аппликэйшнСервер.класс", типа "Excel.Sheet" или "V77.Application"

порылся у себя в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ и из нужного по теме нашел только это:
PivotChartLib.PivotChartX
PivotCubeAX.OLAP :)
PivotCubeXLib.PivotCubeX
zCube.Cube
zCube.Dimension
zCube.DimensionItem
zCube.Measure
и все...

а доку и примеры смотрел, с использованием VCL конечно можно много чего накодить, для меня много чего эти методы стоят:
c := TMapDimensionItem.Create; 
PivotCube1.Intf._GetItemValue(PivotMap1,d.FIndex,item.ID,0,f);

хоть видит око, да зуб неймет
140. cleaner_it 203 29.07.10 11:15 Сейчас в теме
(139) В типовом примере посмотрел:

Попробуй использовать
PCX.Map вместо PCX.MapIntf


If PCX.MapActive Then
PCX.MapLoad strFileName 'This method loads map properties
'from file with name that is value
'of strFileName, if strFileName is 'Empty or strFileName = "" then '"Load file" dialog will be opened.
End If


Может сначала попробовать установить карту в активное значение? Правда, смутно понимаю смысл этого шаманства, карта должна быть активна сразу после построения:)

PS: Обрати внимание, что описать типы в AX можно таким образом, полный список в доках:
Dim Dimension As IxDimensionItem
Set Dimension = PCX.CubeDimensions.Add("City")
Dimension.AliasName = "Cities && Countries"
141. kittystark 15 29.07.10 13:38 Сейчас в теме
короче, пришел к тому, что буду сейчас кодить ковыряние в свойствах/методах активикса с использованием tlbinf.dll - а то чего-то не верю я уже экселевскому object browser- выбираю другую dll-ку по другому пути, а эффекта ноль

+ еще меня терзают смутные сомнения, что в плане карты случай загрузки *.cub файла отличается от случая подсоединения к табличкам и прогоном по ним sql-запроса
142. kittystark 15 29.07.10 19:28 Сейчас в теме
(134 - 141) анализируем PCX.MapIntf:
typeof(PCX.MapIntf) == unknown
тип Automation: IUnknown *
Значение vt: VT_UNKNOWN

поднимаем информацию по примитивным типам данных и "О чудо... !!!" :o :
* Данные типа unknown могут быть получены только от внешних объектов и затем переданы только внешним объектам; сам JScript ни создавать их, ни манипулировать ими не может.

Попытка передать JScript данные типов Automation, не указанных в таблице, приводит к ошибке исполняющей среды JScript «Несоответствие типов».

тоже самое и для VBScript...
:cry:
трындец, приплыли 8-) :D
143. cleaner_it 203 30.07.10 03:13 Сейчас в теме
(142) Я спрошу у Алекса, пусть объяснит сей факт:) Как-то ведь он должен работать с картой куба
144. cleaner_it 203 05.08.10 18:24 Сейчас в теме
(142) Будем ждать ответ на твой вопрос здесь: http://www.pivotcube.com/forum/viewtopic.php?f=3&t=625. Кстати, судя по вопросам на форуме, ты не одинок в своей проблеме, но решается она как-то просто
146. cleaner_it 203 07.08.10 20:38 Сейчас в теме
(142) Есть ответ на форуме. В-общем, я так понял: если карта активна - считай, видна пользователю - тогда все Ок, MapIntf доступна. Иначе - ничего не получится
145. пользователь 06.08.10 02:27
Сообщение было скрыто модератором.
...
147. cleaner_it 203 07.08.10 22:01 Сейчас в теме
Вышла новая версия - 2.4.1.241 (предыдущая - 2.4.1.52)

[+] Реализована возможность переформировывать куб в рамках одной и той-же обработки для линейных и иерархических измерений.
[*] Дополнено правило использования метода CubeDeactivation в документации
[+] Добавлен пример использования компоненты для 1С 7.7
[*] CubeDeactivation: Метод выполняет возложенные на него функции — обеспечивает возможность повторного формирования куба в рамках одной обработки. Метод необходимо вызывать до определения структуры OLAP-отчета
[+] AnalysisABC: Метод производит разделение ряда элементов на три группы:
A - 20% элементов которые приносят около 70% результата
B - 30% элементов которые приносят около 20% результата
C - 50% элементов которые приносят около 10% результата
Используемые методы выделения групп:
1. Дифференциальный метод выделения групп в АВС-анализе (недостатком этого метода является слишком малая группа A, и не очень высокая точность)
2. Метод суммы (обеспечивает оптимальную точность ABC-анализа, доступен только зарегистрированным пользователям)
[+] AnalysisABCRemove: Удаляет деление на ABC-группы для указанного измерения
[+] NameCompany: Идентифицирует компанию и разрешает использование дополнительных возможностей для зарегистрированных пользователей. Друзьям - неограниченный доступ, для тестирования

Минут через 10 можно будет скачивать:)
149. kittystark 15 09.08.10 13:37 Сейчас в теме
(147)скачал, поставил, 2 момента:

1. приятно видеть свои ваяния в каталоге демо, спасибо :) - порадовал!
дойдут руки докрутить пару моментов - поделюсь свежедоработанной версией

2. как и ожидалось, у меня повторилась ситуация (128), анализ свойств двух разных zCube.dll выдал следующее (см. прикрепленный файл): если зарегистрирована 796Кб длл-ка (слева, путь C:\Program Files\PivotCubeX\Runtime), все нормально *.CUB файлы загружаются, а если обратно перерегистрировать на 172Кб (справа, путь C:\Program Files\PivotCubeAX) - тишина, хотя мышиный крусор с буквами SQL появляется на долю секунды

интересно, где тут собака порылась и как же правильно юзать эту 172Кб? может поэтому и возникают траблы с MapIntf ?
Прикрепленные файлы:
150. cleaner_it 203 09.08.10 17:28 Сейчас в теме
(149) Возможно. А у тебя какая система? Не 64 Бит? Есть "C:\Program Files\PivotCube VCL\RunTime\Double Precision", может его использовать? Хотя у меня на серваке и 32-битная нормально работает...
151. cleaner_it 203 09.08.10 17:30 Сейчас в теме
(149) Понял! Для ActiveX (PibivotCube) используется другая runtime-библиотека!
148. cleaner_it 203 09.08.10 06:53 Сейчас в теме
Есть что посмотреть в плане развития:
Статья: http://bilab.ru/publication/detail.php?ELEMENT_ID=371
Презентация: http://bilab.ru/products/detail.php?ELEMENT_ID=384
152. cleaner_it 203 09.08.10 17:33 Сейчас в теме
интересно, где тут собака порылась и как же правильно юзать эту 172Кб? может поэтому и возникают траблы с MapIntf ?
- то есть тебе эта runtime zCube.dll и не нужна, будешь перерегистрировать каждый раз обратно на свою. А я добавлю диалог инсталлятора с выбором нужной компоненты zCube.dll, дабы те, кто будет использовать твои наработки, не мучились:)
153. cleaner_it 203 09.08.10 17:35 Сейчас в теме
может поэтому и возникают траблы с MapIntf ?
- скорее всего именно поэтому
154. cleaner_it 203 05.09.10 15:41 Сейчас в теме
Ввиду того, что текущая версия компоненты позволяет устанавливать в наименованиях колонок пробелы
Куб.AddDimension(   "Вид отчета"   ,"Вид отчета",50);

второй параметр метода AddDimension в новой версии будет убран.

Пользователям просьба подготовиться морально:)
155. cleaner_it 203 06.09.10 04:31 Сейчас в теме
Еще одно дополнение: я напишу службу, которая будет отыскивать окно с предупреждением о превышении в кубе 5000 строк , и закрывать его. Таким образом, получим полнофункциональную версию PivotCubeVCL
156. cleaner_it 203 06.09.10 04:38 Сейчас в теме
157. cleaner_it 203 06.09.10 04:40 Сейчас в теме
(156) Только нужно что-то придумать, чтобы исходные данные для куба обновлять не полностью, а частично
158. quick 587 11.09.10 23:19 Сейчас в теме
Еще одно дополнение: я напишу службу, которая будет отыскивать окно с предупреждением о превышении в кубе 5000 строк , и закрывать его. Таким образом, получим полнофункциональную версию PivotCubeVCL

Сообщение то скроешь, но там есть прикол, что у тебя будут случайным образом в некоторых клетках пустые поля вместо цифр.Уже с этим сталкивался.
Еще прикол с лицензиями на эти кубы в том что требуется лицуха на каждый экземпляр (копию). Поэтому я перешел на HireCube. Мне одно время присылал гневное письмо девелопер PivotCube с тем что я нарушаю его лицензии. :) А вообще компоненты хорошие, довольно удобные и неприхотливые.
159. cleaner_it 203 12.09.10 04:03 Сейчас в теме
(158) Ни разу этого не замечал:) Специально строил кубы, на которых можно проверить это утверждение. Ну, и плюс у нас на работе тестировали до упора несколько месяцев каждый день - не подтвердили глюк:) Заметил только всплывающее окошко.

PS: Вспомнил, проблема была на той версии куба, которую ты выкладывал со своей компонентой, а они у себя на сайте обновили ее в октябре прошлого года. Решено - задам вопрос разработчикам в упор - пусть скажут. Здесь откомментируюсь

А вообще, можно и HireCube попробовать, функционал-то уже в принципе определен.
160. cleaner_it 203 12.09.10 14:10 Сейчас в теме
(158)
Мне одно время присылал гневное письмо девелопер PivotCube с тем что я нарушаю его лицензии.
Чем нарушил-то? :D Воспользовался их условно-бесплатной компонентой? :D
161. SvSoft 80 09.02.11 16:05 Сейчас в теме
Что-то обсуждение затихло...
(160) Сейчас пробую данную компоненту на своей самописной базе, пока вроде всё нравится, но есть несколько вопросов:
1) что там по поводу
(158)
Сообщение то скроешь, но там есть прикол, что у тебя будут случайным образом в некоторых клетках пустые поля вместо цифр.Уже с этим сталкивался.

и
(159)
а они у себя на сайте обновили ее в октябре прошлого года. Решено - задам вопрос разработчикам в упор - пусть скажут. Здесь откомментируюсь

если только сообщение "мешает нормальной работе" - то мы люди не гордые, пожмакаем кнопочку, а, в принципе, если будем использовать на "всю катушку", то можно и зарегиться (только, если честно, то перейдя по ссылке из Вашего Руководства разработчика ни хрена не понял, кому, куда, сколько, а главное за что платить :D )
2) Какова перспектива дальнейшего развития проекта?
будут ли какие-либо изменения типа (154)
второй параметр метода AddDimension в новой версии будет убран.
.
Это, я так понимаю, везде в коде обработок/отчетов нужно будет убирать этот параметр?
3) При тестах заметил такой баг:
после формирования куба, при наведении мышкой на "кнопки" с измерениями, появляется всплывающая подсказка, потом она исчезает, а тень от неё остаётся
причем поверх всех окон и рабочего стола. Пока не закроешь экземпляр 1С из которого был сформирован куб.
Пробовал обнулять переменные объектов при закрытии - не помогло.
1С - 7.7, 1С++ - 3.2.2.0, Formex - 2.0.5.92
На всякий случай, для наглядности, записал демо-видео
162. пользователь 09.02.11 16:05
Сообщение было скрыто модератором.
...
164. cleaner_it 203 10.02.11 10:44 Сейчас в теме
(162)
Просто всех всё (ну или почти всё) устраивает:)

По сути вопросов:
1)
1.1 Официальный ответ - появляется только окошечко, больше ничем не отличается от полной версии.
1.2 "кому, куда, сколько, а главное за что платить" - я общаюсь с разработчиками по поводу создания на их сайте странички на русском языке
2) Для пользователей 1С принципиально ничего не изменилось
2.1 В компоненте изменился интерфейс (теперь - Ribbon), текущая версия 2.7.1.ххх
2.2 В компоненте реализовано обращение к SQL-хранилищам с использованием интерфейса OLE DB, и построение из полученных данных OLAP-отчетов. Сейчас работает у нескольких клиентов Галактики.
2.3 Дальнейшие перспективы почти все описаны в файле "1. Описание версий OLAP-отчета.pdf", вносите предложения
3) Баг есть. Имеет место быть только при расположении компоненты на формах 1С 7.7. Немного почитав форумы, я пришел к выводу, что причина кроется в механизме отрисовки форм 1С 7.7. Видно, пора становиться разработчиком FormEx & 1C++ :)

Саму компоненту (новую версию) могу выслать по запросу. Единственная просьба - участие в ее развитии (по примеру and-blag, kittystark, JohnyDeath). Честно - не хватает результатов тестов производительности:)
167. SvSoft 80 11.02.11 09:51 Сейчас в теме
(164) Спасибо за оперативный ответ
Компонента конечно же нужна, куда выслать запрос? :)
У меня в профайле Инфостарта засвечена аська, можно по ней списаться
(по будням с 8:00-17:00 по мск в любое время).
По поводу участия в развитии, конечно же готов помочь. Только я "законченный" 1С-ник :)
на языках высокого уровня не пишу. Но чем могу, как говориться :|
(165) Да уж лучше пусть неиспользуемым останется ;)
(166) Вот специально для этого нашел в инете - CamStudio называется (фриварная, кстати)
(там в конце ролика, по-моему, видно как я её закрываю, про "хоткей" забыв :D )
168. cleaner_it 203 11.02.11 10:09 Сейчас в теме
(167) В самой компоненте есть мой мэйл - лучше через почту, т.к. не могу с моей Убунты настроить выход аськи в интернет через ISA.
194. SvSoft 80 02.04.12 15:56 Сейчас в теме
Добрый день.
Хочу вставить "свои 5 копеек".
Год назад буквально наткнулся на данное творение. Заинтересовался.
Написал пару отчетов, но потом пришлось "эту тему" отодвинуть. И вот, буквально недавно
вернулся опять (то бишь к написанию отчетов с использованием данной компонеты).
В принципе, все устраивает (при устойчивой реакции на демо-сообщение :) ).

Один из отчетов, написанный год назад (и периодически изменяемый, в плане добавления "хотелок"),
формирует "приличный кубик" на несколько сот тысяч строк (точнее могу позже сказать, так как отчет
формируется раз в месяц, как раз, на днях, буду ставить на ночь). Куб "перестраивается" с подтормаживанием,
но довольно сносно. Это к (164) - "Честно - не хватает результатов тестов производительности"

А недавно, столкнулся со следующей траблой:
В офисе на всех компах ХР лицуха, компонента работает как часы (1С-ка, кстати 7.7).
Тут понадобилось, один ноут к базе с ОЛАП-отчетами подцепить, и PivotCubeAX.ocx,
напрочь отказалась регистрироваться:
165. cleaner_it 203 10.02.11 10:55 Сейчас в теме
(162)
Это, я так понимаю, везде в коде обработок/отчетов нужно будет убирать этот параметр?
Пока не нужно, просто один из параметров будет не используемый. Если буду убирать, тогда постараюсь приложить файл для автоматического преобразования кода
166. cleaner_it 203 10.02.11 10:56 Сейчас в теме
(162) Вопрос не в тему - чем демо-ролик записывали?
163. SvSoft 80 09.02.11 16:08 Сейчас в теме
чет глюкнуло, файл не приклеился, а сообщение 2 раза запостилось
Прикрепленные файлы:
123.rar
169. kittystark 15 21.04.11 17:30 Сейчас в теме
А что у нас с возможностью редактирования значения в ячейке грида?
170. cleaner_it 203 05.05.11 18:41 Сейчас в теме
(169) А нужно? Даже не задумывался об этом
171. kittystark 15 06.05.11 11:11 Сейчас в теме
(170)
да нужно, и вот зачем:

1)для проведения анализа "а что если" по какому-то показателю, например, по факту за прошедший месяц скорость продаж товара была такая-то, а что будет если она будет другая (с завязкой через формулы расчетных показателей на это измененное значение, например, "пощупать" текущий остаток товара в днях меняя скорость)

2)для простого планирования тех же продаж на основе предыдущих данных - сформировал факт за прошедший месяц, подкорректировал количество, цены, себестоимость и готово

понятное дело, что можно экспортнуть в эксель, забить там формулы, но они будут монструозными в плане итогов по группам / подгруппам, даже если говорить о простом суммировании, что уж говорить про всякие там средние и пр. агрегатные функции

в принципе Alex Zencovih на своем форуме пишет: "To edit cells, cube have to be performed in non-extended mode, then you will able to sеe an edit button in the grid cell."

твой вердикт ?

P.S. можешь кинуть последний релиз своей компоненты на dburlutsky-трям-gmail.com
172. cleaner_it 203 06.05.11 17:40 Сейчас в теме
(171) У меня куб по-умолчанию строится в расширенном виде (для обеспечения работы с расширенными агрегатными функциями).
Анализ "а что, если" - интересен, безусловно, особенно если пересчитывать будет в реальном времени.
А вот для планирования, наверное, лучше использовать встроенный язык 1С:)

PS: Как появится время, реализую. Сейчас занят на других проектах:)
173. imbio 27.05.11 15:59 Сейчас в теме
W7 x64 - пробовал 1с 8.1 и 1с 8.2, 1с 8.1 работает нормально, 1с 8.2 ошибка - {Форма.Форма.Форма(460)}: Ошибка при вызове метода контекста (CubeActivation)
Куб.CubeActivation();
по причине:
Произошла исключительная ситуация (PivotCubeAX.OLAP): Server not registered! Please, check zCube.dll registration ???
174. cleaner_it 203 06.06.11 16:03 Сейчас в теме
(173) На толстом клиенте 1С 8.2 в режиме совместимости все отлично работает:) Для тонкого клиента 1С 8.2 работает через html, пример имеется. Для толстого клиента 1С 8.2 без режима совместимости не тестировал. А zCube.dll точно зарегистрирована в системе?
175. ekean 07.06.11 11:51 Сейчас в теме
На W7 x32 На толстом клиенте 1С 8.2 все работает, На W7 x64 одновременно установлены 8.1 и 8.2 - клиент-сервер, в 8.1 все нормально, а 8.2 ошибка из п.173!
176. ekean 07.06.11 16:23 Сейчас в теме
На W7 x64 одновременно установлены 8.1 и 8.2 - клиент-сервер, в 8.1 все нормально, а 8.2 УПП 8.2.13.1 в режиме совместимости 8.2.13 ошибка из п.173
177. cleaner_it 203 09.06.11 17:13 Сейчас в теме
Подниму W7 64-битную на виртуалке, буду проверять. На Win2003 64-битной все отлично работает. Может, это примочки W7 (именно 64-битной, т.к. в ней по умолчанию включена проверка цифровых подписей у драйверов и т.п. - которые отключаются выбором соответствующего "профиля" при загрузке).
178. imbio 14.07.11 09:27 Сейчас в теме
На W7 x64 на платформе 8.2.14.519 Portable УПП 8.2.13.1 - все нормально!
179. cleaner_it 203 14.07.11 18:46 Сейчас в теме
(178) Это не может не радовать:)
180. ekean 20.09.11 12:10 Сейчас в теме
8.2 Olap так и не работает, ошибка из п.173!
181. cleaner_it 203 25.09.11 12:11 Сейчас в теме
(180) Серия опытов показала, что проблема проявляется только при работе с 1С 8.2 на Windows 7 x64, вне зависимости от режима совместимости в 1С 8.2. Перевод на более свежие компоненты PivotCube результата не дал. Все прочие приложения работают с этим компонентом нормально. То, что portable-версия 1С 8.2 работает нормально, позволяет предположить, что проблема в особенностях работы 1С 8.2 с OLE-серверами. Если появится свободное от работы и семьи время - проверю другие варианты загрузки zCube.dll, описанные на странице http://pivotcube.com/forum/viewtopic.php?f=2&t=15
182. ekean 29.09.11 10:56 Сейчас в теме
Есть еще рекомендации по загрузке zCube.dll, описанные на странице http://pivotcube.com/forum/viewtopic.php?t=201.
183. cleaner_it 203 29.09.11 15:44 Сейчас в теме
(182) Это вы можете сделать и без моей помощи:)
184. ekean 29.09.11 15:53 Сейчас в теме
Давно уже все попробовал и даже больше, но пока не катит. Видно это особенности работы платформы 1С 8.2 на Windows 7 x64, на Vista x64 все работает нормально..
185. cleaner_it 203 30.09.11 07:52 Сейчас в теме
(184) Способ, описаный Алексом в (181) тоже не помог. Будет время - попробую спросить его об этом уникальном :) случае
186. ekean 17.11.11 14:09 Сейчас в теме
у кого W7 x64 - на 1с 8.2 ошибка - {Форма.Форма.Форма(460)}: Ошибка при вызове метода контекста (CubeActivation)
Куб.CubeActivation();
по причине:
Произошла исключительная ситуация (PivotCubeAX.OLAP): Server not registered! Please, check zCube.dll registration
- из этого положения пока вышли так - крутим ОЛАП в терминале на Windows Server 2003.
187. ekean 07.12.11 12:11 Сейчас в теме
Странно, Vista x32 - на 1с 8.2 ошибка - {Форма.Форма.Форма(460)}: Ошибка при вызове метода контекста (CubeActivation)
Куб.CubeActivation();
по причине:
Произошла исключительная ситуация (PivotCubeAX.OLAP): Server not registered! Please, check zCube.dll registration
а в Vista x64 - нет!
188. cleaner_it 203 07.12.11 12:59 Сейчас в теме
(187) Висты у меня нет... А вообще, предположение остается тем-же - дело в особенностях 1С 8.2. Можно обратиться в компанию 1С, но, думаю - там меня пошлют лесом. А на portable-версии такая-же ошибка?
189. ekean 08.12.11 16:24 Сейчас в теме
У нас платформа 8.2.14.537, Portable на платформе 8.2.14.537 пока сделать не могу, сделаю проверю, но Portable платформа 8.2.14.519 работала нормально!
190. barsa-05 1 08.12.11 17:05 Сейчас в теме
191. freek 28.12.11 14:14 Сейчас в теме
Это самый крутой отчет который я видел
192. cleaner_it 203 29.12.11 15:57 Сейчас в теме
195. SvSoft 80 02.04.12 16:37 Сейчас в теме
На ноуте Win 7 32х Максимальная SP1, активированная, регулярно с инета обновляется.
Все действия выполняю под администратором.
zCube.dll и ReportEx.dll регятся нормально. (Регистрирую, кстати, через regsvr32.exe)
а ОСХ вываливает ошибку:

Пробовал с рабочей машины копировать ветку реестра PivotCubeAX из "HKEY_CLASSES_ROOT\CLSID\", тоже не помогает.
При старте отчета вываливает: Создание элемента управления PivotCubeAX.OLAP не удалось

P.S. Кстати, cleaner_it, Вы высылали мне тогда новую версию PivotCubeAX.ocx (2.7.1.887),
я её пробовал класть в рабочую базу, поверх 2.4.1.241 - отказывалась грузиться,
на вышеуказанном ноуте, она тоже не регистрируется.
196. SvSoft 80 02.04.12 16:39 Сейчас в теме
197. SvSoft 80 02.04.12 16:40 Сейчас в теме
198. cleaner_it 203 09.04.12 10:41 Сейчас в теме
(197) В данном случае могу предположить, что не найдены некоторые зависимости (библиотеки). С помощью утилит можно посмотреть, какие библиотеки использует компонента, и найти недостающие. У меня был подобный случай на одной из промежуточных версий, когда я пытался использовать ShareMem. На 1С 7.7 перестройка действительно подтормаживает. Если будет возможность - попробую сделать прямой вывод на форму 1С 7.7 без использования 1cpp, скорость должна возрасти.
199. SvSoft 80 10.04.12 07:58 Сейчас в теме
(198) "С помощью утилит можно посмотреть, какие библиотеки использует компонента, и найти недостающие" - например?
204. cleaner_it 203 13.04.12 12:34 Сейчас в теме
(199) Я смотрел в листере Total Commander PE 21 (по кнопке F3). Программа называется fileinfo
207. cleaner_it 203 13.04.12 14:32 Сейчас в теме
200. Medvedik 13.04.12 11:05 Сейчас в теме
Инструмент внушает, респект!
Не понял только, куда спрятан аналог меню "Работа с OLAP" для 1Cv77?
201. logarifm 1133 13.04.12 11:15 Сейчас в теме
А зачем сие чудо на 1С 8.х? Разве СКД уже отменили!?
205. cleaner_it 203 13.04.12 12:38 Сейчас в теме
(201) Убеждать не буду. Каждый решает сам для себя.
202. Medvedik 13.04.12 11:17 Сейчас в теме
В тексте же публикации написано
Почему не компоновка данных (актуально для 1С 8.x)
OLAP и "Компоновка отчетов 1C 8.x" - похожи, но это не одно и то-же.
1) Скорость изменения "точки зрения" на данные в OLAP намного выше, а следовательно - быстрее работает Ваш бизнес, быстрее можно принять управленческие решения (дополнительные сведения здесь http://www.cfin.ru/itm/olap/1c.shtml).
2) В OLAP-отчете можно в реальном режиме времени на каждый показатель вывести дополнительные данные - % вхождения, рейтинг, и т.д. Очень удобно!
203. ekean 13.04.12 11:18 Сейчас в теме
А зачем сие чудо на 1С 8.х? Разве СКД уже отменили!?

Попробуй сначала , а потом задавай вопросы!
206. cleaner_it 203 13.04.12 12:38 Сейчас в теме
(203) Спасибо за поддержку:)
208. Medvedik 25.04.12 11:18 Сейчас в теме
Под XP-32 сделал обработку, все было отлично.
Пересел за ноут с W7-64, обработка валится с ниже приведенной ошибкой.
Права администратора. режим совместимости не помогает.

Прошу помощи.

OLAP.СоздатьЭУ("PivotCubeAX.OLAP");
Создание элемента управления PivotCubeAX.OLAP не удалось

Upd. Разобрался, сделал инстал из приложенного архива и проблема ушла.
209. SvSoft 80 25.04.12 11:54 Сейчас в теме
(208) А по-подробнее можно про
Разобрался, сделал инстал из приложенного архива и проблема ушла.
, а то у меня аналогичная трабла
210. Medvedik 25.04.12 19:51 Сейчас в теме
Duke, просто запустите инсталляционный файл, который можно скачать в данной публикации
211. SvSoft 80 26.04.12 07:59 Сейчас в теме
(210) Упс, как обычно, ларчик просто открывался :)
214. cleaner_it 203 26.04.12 12:36 Сейчас в теме
(211) То есть, получается, инсталлятор все делает правильно, а обычный regsrv32 сплоховал? Интересно, однако
217. SvSoft 80 26.04.12 20:07 Сейчас в теме
(214) Именно. А у меня, до кучи, в конфиге автоматом компоненты регистрируются (чтоб каждому юзеру вручную не добавлять), поэтому инсталлятор и ума не хватило запустить :). Всегда всё нормально работало.
212. Medvedik 26.04.12 12:01 Сейчас в теме
Прошу помощи, разобраться в вопросе дополнения куба.
1. Загружаю ранее созданный куб (рLoadFromCube)
2. Задаю структуру таблицы исходных данных (AddDimension, AddMeasure)
3. Создаю таблицу исходных данных (CreateFactTable)
4. Заполняю таблицу исходных данных новыми данными, которые нужно добавить к уже имеющимся в кубе (AppendRecord, SetValue, PostRecord)
5. Активирую куб (CubeActivation)
6. Задаю пересчет (CubeRebuild)

В итоге я имею таблицу с новыми данными в памяти и старый куб со старыми данными.
Как правильно добавить данные в куб?
213. cleaner_it 203 26.04.12 12:31 Сейчас в теме
(212) Сам этого никогда не делал, нужды такой не было:) На первый взгляд - 3, 4 пункты являются излишними. Вообще, посмотрю в ближайшее время, что можно сделать
215. Medvedik 26.04.12 12:43 Сейчас в теме
(213) Наверно имелись ввиду пункты 2-3, без 4го никуда ))
Я пробовал без 2-3, получаю ошибку вроде попытки операции над закрытой базой.

Спасибо, ожидаю, очень нужно ((

В году 2003 на другой компоненте вопрос решался просто: там данные писались в аксессовскую базу и на ее основании формировался куб. Т.е. новые данные я дописывал в базу и переформировывал куб.

Но очень бы хотелось воспользоваться Вашим решением с PivotCube
216. cleaner_it 203 26.04.12 13:48 Сейчас в теме
220. Medvedik 05.05.12 16:21 Сейчас в теме
Грустно ((
А методов программно задать настройки при открытии ранее сформированного куба нет?
224. cleaner_it 203 02.06.12 02:30 Сейчас в теме
(220) Программно можно даже сейчас. Поэтому, кстати говоря, и не приоритет
226. Medvedik 05.06.12 11:48 Сейчас в теме
(224),(225) Увы, данные методы не позволяют менять заголовки измерений. Я-то хочу, чтобы пользователь видел "Административные затраты подразделения Х" вместо "адм_затр_подр_Х"
227. cleaner_it 203 05.06.12 12:08 Сейчас в теме
(226) Можно при создании структуры куба создавать наименования колонок с пробелами.
Например так:
Куб.AddDimension(   "Склад заказа"   ,"Склад заказа",50);

Тогда при загрузке не будет нужды устанавливать заголовки колонок.
228. Medvedik 06.06.12 09:45 Сейчас в теме
(227) Опаньки, попробую, спасибо
225. cleaner_it 203 02.06.12 02:33 Сейчас в теме
(220) Используйте эти методы

PutToColumn
PutToRow
AddFormula
SetPositionMeasure
CollapseAll
ExpandAll
SortMeasure
UnSortMeasure
SetVisibleMeasure
221. alekseies 31.05.12 13:51 Сейчас в теме
OLAP.СоздатьЭУ("PivotCubeAX.OLAP");
Создание элемента управления PivotCubeAX.OLAP не удалось

Upd. Разобрался, сделал инстал из приложенного архива и проблема ушла.

У меня все равно не получается!
222. alekseies 01.06.12 13:15 Сейчас в теме
Под XP-32 сделал обработку, все было отлично.
Пересел за ноут с W7-64, обработка валится с ниже приведенной ошибкой.
Права администратора. режим совместимости не помогает.

Прошу помощи.

OLAP.СоздатьЭУ("PivotCubeAX.OLAP");
Создание элемента управления PivotCubeAX.OLAP не удалось

на какой платформе 1С?
223. cleaner_it 203 02.06.12 02:29 Сейчас в теме
(222) Говорят, помогает отключение родительского контроля за учетной записью.
Можете снять видео (например http://www.uvsoftium.ru/UVScreenCamera.php) от
начала установки компоненты и до запуска приложения?
229. lrsn2 21.07.12 12:00 Сейчас в теме
При покупке OLAP-отчет ActiveX: Анализ данных 1С 7.7 ТиС (для файловой и SQL версии 1С) + ABC-анализ, компонента zCube.dll будет полной версии?
230. Иной 10.12.12 01:30 Сейчас в теме
Хм... Вещь нужная и важная. Вот только было бы интересно написать самому. Не поделитесь исходной литературой по теме?
231. cleaner_it 203 13.12.12 22:03 Сейчас в теме
(230) Все сделано с использованием технической справки разработчикам исходных компонент:) Могу посоветовать присмотреться к разработчикам компонент - их очень много, для различных языков программирования; у них можно позаимствовать техническую справку. Если будут вопросы конкретнее - подскажу конкретнее:)
232. alekseies 28.02.13 10:44 Сейчас в теме
Windows 7 x64 - пробовал на 1с 8.2 на тонком клиенте в управляемых формах - ошибка - {Форма.Форма.Форма(460)}: Ошибка при вызове метода контекста (CubeActivation)
Куб.CubeActivation();
по причине:
Произошла исключительная ситуация (PivotCubeAX.OLAP): Server not registered! Please, check zCube.dll registration ???

Пробовал на portable платформе 1C 8.2.17.143 - все нормально!!! .............
233. cleaner_it 203 02.03.13 02:48 Сейчас в теме
(232) Тут все дело в том, в какой ветке реестра 1С ищет информацию о компоненте. Regsvr32 регистрирует компоненту в ветке для 32-разрядных программ. 1С вроде бы тоже 32-разрядная, но в установленном виде ищет информацию о компоненте в ветке реестра для 64-разрядных систем. Инсталляторы записывают информацию о компоненте сразу в обе ветки реестра. Мой совет - воспользоваться инсталлятором. Как вариант: после установки компоненты зайти на сайт http://pivotcube.com/, скачать и установить демо-версию (она тоже содержит z-cube).
248. alekseies 24.07.14 10:49 Сейчас в теме
alekseies, У меня такая-же проблема с регистрацией zCube.dll на Win-7 64x
Только не работает в толстом клиенте 8.2.18.61
По совету (233) скачал и установил демо версию с сайта pivot - тоже не помогло.

Подскажите плз где и чего еще можно настроить и проверить

В толстом клиенте 8.2.18.61 и 8.2.19.... таких проблем не было, все нормально запускалось даже через домен, см. батник.............

234. cleaner_it 203 02.03.13 02:50 Сейчас в теме
(232) Я встречал такое поведение 1С только на Windows 7 64x и Windows Server 2008 64x, на Windows Server 2003 64x такой проблемы не наблюдал:)
244. VZhulanov 7 29.04.14 15:39 Сейчас в теме
(232) alekseies, У меня такая-же проблема с регистрацией zCube.dll на Win-7 64x
Только не работает в толстом клиенте 8.2.18.61
По совету (233) скачал и установил демо версию с сайта pivot - тоже не помогло.

Подскажите плз где и чего еще можно настроить и проверить
245. cleaner_it 203 29.04.14 17:40 Сейчас в теме
(244) VZhulanov, он установил IE 10 и включил в настройках запуск ActiveX. Всё взлетело)
246. VZhulanov 7 29.04.14 18:39 Сейчас в теме
(245) Причем здесь IE-10 то ? Я в толстом клиенте запускаю форму
247. cleaner_it 203 30.04.14 03:47 Сейчас в теме
(246) VZhulanov, это была его проблема. Я думаю, больше он ничем помочь не сможет
235. alekseies 04.03.13 10:08 Сейчас в теме
Да, попробовал, прокатило, раньше пробовал разные варианты, не получалось. У нас регистрация zCube.dll идет через доменные политики в сети. Сейчас прокатило, Спасибо!!! Вашу разработку используем для формирования кубов по многим направлениям! .........
cleaner_it; +1 – Ответить
236. cleaner_it 203 04.03.13 13:51 Сейчас в теме
(235) Поделитесь опытом регистрации библиотек через доменные политики?
237. cleaner_it 203 04.03.13 13:52 Сейчас в теме
(235) Какую оснастку использовать для этого нужно?
238. alekseies 05.03.13 13:02 Сейчас в теме
да как то так ...
@echo off
cls
set SRC7=\\s01\1c\Components\7
set SRC8=\\s01\1c\Components\8
set DST7="%ProgramFiles%\1C\7"
set DST8="%ProgramFiles%\1C\8"

md %DST7%
md %DST8%

rem копирование компонент для 1Cv77
copy /y %SRC7%\*.* %DST7%
rem копирование компонент для 1Cv8
copy /y %SRC8%\*.* %DST8%

rem регистрация компонент для 1Cv77
regsvr32 /s %DST7%\Matrix1C.dll
regsvr32 /s %DST7%\MPlus.dll
regsvr32 /s %DST7%\ReportEx.dll

rem Регистрация компонент для 1Cv8
regsvr32 /s %DST8%\NameDecl.dll
regsvr32 /s %DST8%\PivotCubeAX.ocx
regsvr32 /s %DST8%\zCube.dll
239. cleaner_it 203 05.03.13 13:17 Сейчас в теме
(238) Вон оно что:) Батником:) Понятно, а я думал есть волшебный способ зарегистрировать компоненту на всех компьютерах в домене, просто нажав какую-нибудь галочку:))))
240. alekseies 28.02.14 10:39 Сейчас в теме
Создал ОЛАПовский отчет для тонкого клиента, все работает в 1С 8.2 УПП 1.3 нормально, но при вызове в Internet Explorer выдает методы объекта не обнаружены .............................
241. cleaner_it 203 28.02.14 13:14 Сейчас в теме
(240) alekseies, может дело в настройках безопасности Explorera?
242. alekseies 04.03.14 15:02 Сейчас в теме
нет, в других браузерах также .......................
243. cleaner_it 203 04.03.14 15:30 Сейчас в теме
(242) alekseies, пришли архив с наработками. Адрес в личку отправлю
249. bayce 49 10.01.15 01:54 Сейчас в теме
Будет ли работать в тонком клиенте?
250. cleaner_it 203 10.01.15 05:42 Сейчас в теме
(249) bayce, ребята поднимали на тонком клиенте (см. комментарии выше), я сам - ещё не пробовал.
251. Re:аниматор 337 22.01.15 05:17 Сейчас в теме
{Форма.Форма.Форма(329)}: Ошибка при вызове метода контекста (CubeActivation)
Куб.CubeActivation();
по причине:
Произошла исключительная ситуация (PivotCubeAX.OLAP): Server not registered! Please, check zCube.dll registration


Windows 7 не помогает regsvr32.exe zCube.dll
252. cleaner_it 203 22.01.15 06:53 Сейчас в теме
(251) Re:аниматор, (233) почитайте
Re:аниматор; +1 – Ответить
253. ekean 02.03.12 12:13 Сейчас в теме
W7 x64 Portable на платформе 8.2.15.301 Olap строиться нормально!
254. DanilaDru 264 14.09.21 20:22 Сейчас в теме
А кто-то крутил OLAP под веб-клиент ? Какая идея реализации ?
255. cleaner_it 203 16.09.21 03:15 Сейчас в теме
(254) Высказывали пожелание такое в прошлом году. Возможная схема реализации - это выгрузка данных куба на сервере, и загрузка готового расчёта на клиенте
DanilaDru; +1 – Ответить
256. AndrewUtkaev 120 20.06.22 12:21 Сейчас в теме
Добрый день, скажите кто-нибудь сталкивался с проблемой отображения легенды при построении графиков?
Прикрепил файл с ошибкой. Сразу спрошу, можно ли изменить толщину линии?
Прикрепленные файлы:
257. cleaner_it 203 20.06.22 13:21 Сейчас в теме
(256) Можно тип графика менять - я бары строил всегда
258. AndrewUtkaev 120 20.06.22 13:44 Сейчас в теме
ни на одном виде графика не выводит легенду
Для отправки сообщения требуется регистрация/авторизация