powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Hyperion SmartView Add-in + VBA, вытаскиваем текущий срез данных
1 сообщений из 1, страница 1 из 1
Hyperion SmartView Add-in + VBA, вытаскиваем текущий срез данных
    #37875064
Фотография Шведков Артем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет. Есть задача - вытащить на лист Excel текущий срез данных из Smart View панели (POV CommandBar).

В принципе, ничего сложного: подключаем модуль Hyperion API for VBA и тянем данные функцией HypGetPOVItems.
Но теперь встал вопрос как повесить макрос на нашу панель SmartView ? соответственно на кнопку "Обновить", чтобы после обновления среза в конкретном диапазоне поменялись текстовые значения выбранных элементов.

Пытался повесить на Worksheet_Change, но она не реагирует на программное изменение ячеек через SmartView.
Worksheet_Calculate - после добавления на лист ячейки с формулой, вызывается 4 раза на однократное нажатие кнопки "Обновить". + вызывает сама себя если повесить на нее наш макрос, в нем юзается функция из модуля HypRetrieve. Application.EnableEvents = False так же не помогает, видимо включается автоматически при использовании описанных в модуле функций. "Add watch" - не помогло, и вообще стоит ли лезть в подключаемую библиотеку HsAddin.dll чтобы как-то отловить этот момент ?

Итого:
Вопрос1: как дебажить действия CommandBar'a ? (POV панель)
Вопрос2: как отловить изменение параметра Application.EnableEvents ?

кидаю сам макрос, может кому пригодится:
GetPOVItems
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Sub getPOVitems()

Dim vtGrid As Variant
Dim vtDimNames As Variant
Dim vtPOVNames As Variant
Dim i As Integer

'обновляем данные
X = HypRetrieve("data")
If X <> 0 Then
MsgBox ("Retrieve failed.")
Exit Sub
End If

''выбираем ячейку в диапазоне с данными
'Range("B3").Select
'sts = HypGetSourceGrid("data", vtGrid)

'получаем массив измерений и выбранных элементов
Y = HypGetPOVItems(vtDimNames, vtPOVNames)
'кол-во измерений
X = HypGetPOVCount()

Range("G5").Value = X

' вытаскиваем названия измерений и выбранных элементов
For i = 0 To X - 1
Cells(6 + i, 7).Value = vtDimNames(i)
Cells(6 + i, 8).Value = vtPOVNames(i)
Next

End Sub


...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Hyperion SmartView Add-in + VBA, вытаскиваем текущий срез данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]