12.05.2010, 15:06 | #21 |
Участник
|
Ну гляньте же уже пример в стандарте =). Там всё это есть! Более того - можно сохранять конфигурации очетов, задавать что выводить - коды или названия "разрезов".
__________________
Ivanhoe as is.. |
|
12.05.2010, 16:59 | #22 |
Участник
|
Глянул но ни все не запускаются идут всякие ошибки) (имею в виду расчёт с персоналом)
А где код отвечающий именно за вставку полей в таблицу я не нашёл |
|
12.05.2010, 17:13 | #23 |
Участник
|
Я так понимаю это класс RHRMPivotTableView.
__________________
Ivanhoe as is.. |
|
12.05.2010, 17:31 | #24 |
Участник
|
Для пользователей я создал ActiveX компоненту. Использовал C++Builder (можно и delphi) и компаненту ExpressPivotGrid 2 , она может сохранять и загружать пользовательские настройки. Как простой олап можно использовать.
__________________
В подводной охоте главное вдох ... |
|
12.05.2010, 17:40 | #25 |
Участник
|
В работе...
__________________
В подводной охоте главное вдох ... |
|
12.05.2010, 17:54 | #26 |
Участник
|
Ну самый простой способ сохранить / показать отчет - это использовать метод ActiveX: PivotTable.XMLData().
__________________
Ivanhoe as is.. |
|
12.05.2010, 23:29 | #27 |
Moderator
|
Цитата:
Например, для того, чтобы сделать первое поле из списка имеющихся полей - полем области строк нужно выполнить приблизительно такой оператор VBA: Код: PivotTable.ActiveView.RowAxis.InsertFieldSet( PivotTable.ActiveView.FieldSets.Item(0) ) |
|
13.05.2010, 09:56 | #28 |
Участник
|
Сделал я сводную таблицу Теперь осталось научится убирать промежуточные итоги и сделать чтоб поля мышкой не надо было переносить
(пока все выше предложеные методы не помогли) ЗЫ большинство объектов на основе COM не выдают список подстановок( методы через точку) т к Com имеет стандартный набор методов (не тех) и где брать методы не понятно (с подстановкой можно хоть по названию понять) Последний раз редактировалось Pudd; 13.05.2010 в 10:04. |
|
13.05.2010, 10:32 | #29 |
Участник
|
Пример 2
Выкладываю вторую версию проекта.
Добавлен метод по формированию макета отчета. Постарался прокомментировать основные действия. Берутся данные таблицы InventTable, в столбцы добавляется тип номенклатуры, в строки - номенклатурная группа и код номенклатуры. В качестве данных - количество recid.
__________________
Ivanhoe as is.. |
|
|
За это сообщение автора поблагодарили: Pudd (1). |
13.05.2010, 11:09 | #30 |
Moderator
|
Цитата:
Вместо Spreadsheet используйте PivotTable, а остальное - по аналогии. По методам читать можно хелп OWCVBA10.CHM, который наверняка есть на вашем компьютере. Ну или на MSDN поискать соответствующий раздел. |
|
13.05.2010, 11:41 | #31 |
Участник
|
Всем огромное спасибо
Буду пробовать |
|
13.05.2010, 14:27 | #32 |
Участник
|
А как сделать чтоб столбец который в сводную помещается как данные в сводной выглядел не как количество а как значение
т е сейчас там еденицы(я как понимаю количество совподающих значений а нужно само значение |
|
13.05.2010, 18:45 | #33 |
Участник
|
В моем примере см. строку добавления данных. Там используется макрос со значением "2" - это количество. Для суммы нужно передавать значение "1" (такой макрос тоже есть).
__________________
Ivanhoe as is.. |
|
13.05.2010, 19:06 | #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). |
14.05.2010, 10:00 | #35 |
Участник
|
Не зная значений, нужно знать именнованные константы .
Собственно, весь мой пример сделан по аналогии со стандартом. Видимо, в русском MS или кто там делал эту функциональность о таких константах не знают =)
__________________
Ivanhoe as is.. |
|
14.05.2010, 11:15 | #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 |
|
17.05.2010, 19:21 | #37 |
Moderator
|
Цитата:
|
|
|
За это сообщение автора поблагодарили: Pudd (1). |