powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как на сводную вывести сразу несколько полей.
2 сообщений из 2, страница 1 из 1
Как на сводную вывести сразу несколько полей.
    #37655493
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Форумчане привет.

Ситуация следующая, есть OLAP куб на MSSQL сервере с кучей данных.
Всего в нем 47 столбцов данных.
Есть клиент в виде файла офиса 2007 (xlsm)

Необходимо в VBA обеспечить вывод столбцов в область данных на экран.
Это делается легко таким кодом
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
For i = 1 To DayID
    Set CuF = Pvt.CubeFields("[Measures].[" & Format(i, "00") & "]")
     If CuF.Orientation <> xlDataField Then
            Pvt.AddDataField CuF
            CuF.Position = i
    End If
Next i


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

В 2007 есть фича "отложить обновление макета".
Если поставить эту галку и выкинуть сразу много полей, то по нажатию кнопки обновить сводная обновляет все поля разом.
При этом запрос к кубу происходит всего один, что понятно из времени выполнения этого действия

вопрос - как в ВБА отложить обновление сводной? Дать список команд и запустить процесс их выполнения?
...
Рейтинг: 0 / 0
Как на сводную вывести сразу несколько полей.
    #37656269
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем вопрос решился благодаря англоязычному иннету
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Dim Pvt As PivotTable
Set Pvt = ActiveSheet.PivotTables("BlaBla)

Pvt.ManualUpdate = True

.... 'шаманство
For i = 1 To DayID
    Set CuF = Pvt.CubeFields("[Measures].[" & Format(i, "00") & "]")
     If CuF.Orientation <> xlDataField Then
            Pvt.AddDataField CuF
            CuF.Position = i
    End If
Next i

Pvt.ManualUpdate = False
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как на сводную вывести сразу несколько полей.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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