![]() |
#21 |
Участник
|
Ну гляньте же уже пример в стандарте =). Там всё это есть! Более того - можно сохранять конфигурации очетов, задавать что выводить - коды или названия "разрезов".
__________________
Ivanhoe as is.. |
|
![]() |
#22 |
Участник
|
Глянул
![]() А где код отвечающий именно за вставку полей в таблицу я не нашёл |
|
![]() |
#23 |
Участник
|
Я так понимаю это класс RHRMPivotTableView.
__________________
Ivanhoe as is.. |
|
![]() |
#24 |
Участник
|
Для пользователей я создал ActiveX компоненту. Использовал C++Builder (можно и delphi) и компаненту ExpressPivotGrid 2 , она может сохранять и загружать пользовательские настройки. Как простой олап можно использовать.
__________________
В подводной охоте главное вдох ... |
|
![]() |
#25 |
Участник
|
В работе...
__________________
В подводной охоте главное вдох ... |
|
![]() |
#26 |
Участник
|
Ну самый простой способ сохранить / показать отчет - это использовать метод ActiveX: PivotTable.XMLData().
__________________
Ivanhoe as is.. |
|
![]() |
#27 |
Moderator
|
Цитата:
Например, для того, чтобы сделать первое поле из списка имеющихся полей - полем области строк нужно выполнить приблизительно такой оператор VBA: Код: PivotTable.ActiveView.RowAxis.InsertFieldSet( PivotTable.ActiveView.FieldSets.Item(0) ) |
|
![]() |
#28 |
Участник
|
Сделал я сводную таблицу
![]() (пока все выше предложеные методы не помогли) ЗЫ большинство объектов на основе COM не выдают список подстановок( методы через точку) т к Com имеет стандартный набор методов (не тех) и где брать методы не понятно (с подстановкой можно хоть по названию понять) Последний раз редактировалось Pudd; 13.05.2010 в 10:04. |
|
![]() |
#29 |
Участник
|
Пример 2
Выкладываю вторую версию проекта.
Добавлен метод по формированию макета отчета. Постарался прокомментировать основные действия. Берутся данные таблицы InventTable, в столбцы добавляется тип номенклатуры, в строки - номенклатурная группа и код номенклатуры. В качестве данных - количество recid.
__________________
Ivanhoe as is.. |
|
|
За это сообщение автора поблагодарили: Pudd (1). |
![]() |
#30 |
Moderator
|
Цитата:
Вместо Spreadsheet используйте PivotTable, а остальное - по аналогии. По методам читать можно хелп OWCVBA10.CHM, который наверняка есть на вашем компьютере. Ну или на MSDN поискать соответствующий раздел. |
|
![]() |
#31 |
Участник
|
Всем огромное спасибо
Буду пробовать ![]() |
|
![]() |
#32 |
Участник
|
А как сделать чтоб столбец который в сводную помещается как данные в сводной выглядел не как количество а как значение
т е сейчас там еденицы(я как понимаю количество совподающих значений а нужно само значение |
|
![]() |
#33 |
Участник
|
В моем примере см. строку добавления данных. Там используется макрос со значением "2" - это количество. Для суммы нужно передавать значение "1" (такой макрос тоже есть).
__________________
Ivanhoe as is.. |
|
![]() |
#34 |
Moderator
|
Цитата:
X++: ..... FormActiveXControl pivotTable; COM ptConstants; // <= "СБОРНИК" КОНСТАНТ COM activeView, dataAxis, pivotTotal; ..... pivotTable = formRun.design().addControl(FormControlType::ActiveX, 'PivotTable'); pivotTable.className('{0002E542-0000-0000-C000-000000000046}'); // Microsoft Office PivotTable 10.0 ..... ptConstants = pivotTable.Constants(); // <= "СБОРНИК" КОНСТАНТ ..... activeView = pivotTable.ActiveView(); dataAxis = activeView.DataAxis(); pivotTotal = activeView.AddTotal('Количество', pivotField, ptConstants.plFunctionCount()); // <= ИСПОЛЬЗОВАНИЕ КОНСТАНТЫ dataAxis.InsertTotal(pivotTotal); ..... |
|
|
За это сообщение автора поблагодарили: Ivanhoe (5). |
![]() |
#35 |
Участник
|
Не зная значений, нужно знать именнованные константы
![]() Собственно, весь мой пример сделан по аналогии со стандартом. Видимо, в русском MS или кто там делал эту функциональность о таких константах не знают =)
__________________
Ivanhoe as is.. |
|
![]() |
#36 |
Moderator
|
Цитата:
![]() A. О константах можно узнать через обозреватель объектов в Excel: 1. Открываем Excel и по Alt+F11 идём в редактор VisualBasic 2. В окне отладки (Immediate) выполняем команду: Код: ActiveSheet.OLEObjects.Add("OWC10.PivotTable.10").Select 3. Нажимаем F2 для вызова ObjectBrowser и в первом поле со списком выбираем библиотеку: OWC10 4. Чуть ниже в списке Classes встаем на <globals> и в правом списке Members изучаем константы (см.рисунок). С префиксом pl - константы для PivotTable, c ss - для Spreadsheet. B. А можно через хелп-файл OWCVBA10.CHM: C. Наконец, можно через MSDN: http://msdn.microsoft.com/en-us/libr...ffice.10).aspx |
|
![]() |
#37 |
Moderator
|
Цитата:
|
|
|
За это сообщение автора поблагодарили: Pudd (1). |
Теги |
ax2009, pivottable, законченный пример, пример, сводная таблица |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|