AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.05.2010, 15:06   #21  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Ну гляньте же уже пример в стандарте =). Там всё это есть! Более того - можно сохранять конфигурации очетов, задавать что выводить - коды или названия "разрезов".
__________________
Ivanhoe as is..
Старый 12.05.2010, 16:59   #22  
Pudd is offline
Pudd
Участник
 
34 / 10 (1) +
Регистрация: 31.03.2010
Глянул но ни все не запускаются идут всякие ошибки) (имею в виду расчёт с персоналом)
А где код отвечающий именно за вставку полей в таблицу я не нашёл
Старый 12.05.2010, 17:13   #23  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Я так понимаю это класс RHRMPivotTableView.
__________________
Ivanhoe as is..
Старый 12.05.2010, 17:31   #24  
nix0root is offline
nix0root
Участник
 
67 / 16 (1) ++
Регистрация: 17.03.2009
Адрес: МО
Для пользователей я создал ActiveX компоненту. Использовал C++Builder (можно и delphi) и компаненту ExpressPivotGrid 2 , она может сохранять и загружать пользовательские настройки. Как простой олап можно использовать.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.JPG
Просмотров: 307
Размер:	22.8 Кб
ID:	5823  
__________________
В подводной охоте главное вдох ...
Старый 12.05.2010, 17:40   #25  
nix0root is offline
nix0root
Участник
 
67 / 16 (1) ++
Регистрация: 17.03.2009
Адрес: МО
В работе...
Миниатюры
Нажмите на изображение для увеличения
Название: 2.jpg
Просмотров: 319
Размер:	106.6 Кб
ID:	5824  
__________________
В подводной охоте главное вдох ...
Старый 12.05.2010, 17:54   #26  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Ну самый простой способ сохранить / показать отчет - это использовать метод ActiveX: PivotTable.XMLData().
__________________
Ivanhoe as is..
Старый 12.05.2010, 23:29   #27  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Pudd Посмотреть сообщение
а как сделать чтоб поля сразу в таблицы были т е чтоб не надо было их переносить мышкой?
В общем, без бутылки в объектной модели OWC PivotTable точно не разобраться. Как-то всё там совсем не так, как в Excel. Но с подачи одной умной книжки по Access'у удалось нащупать какие-то подходы.

Например, для того, чтобы сделать первое поле из списка имеющихся полей - полем области строк нужно выполнить приблизительно такой оператор VBA:
Код:
PivotTable.ActiveView.RowAxis.InsertFieldSet( PivotTable.ActiveView.FieldSets.Item(0) )
Так что уже можете поискать ключевые слова из этого выражения в коде Аксапты, отвечающем за строительство pivot'а. А я завтра попробую адаптировать свой эксельный пример вывода "пользователей-групп" к ActiveX'у.
Старый 13.05.2010, 09:56   #28  
Pudd is offline
Pudd
Участник
 
34 / 10 (1) +
Регистрация: 31.03.2010
Сделал я сводную таблицу Теперь осталось научится убирать промежуточные итоги и сделать чтоб поля мышкой не надо было переносить
(пока все выше предложеные методы не помогли)
ЗЫ большинство объектов на основе COM не выдают список подстановок( методы через точку) т к Com имеет стандартный набор методов (не тех) и где брать методы не понятно
(с подстановкой можно хоть по названию понять)

Последний раз редактировалось Pudd; 13.05.2010 в 10:04.
Старый 13.05.2010, 10:32   #29  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Пример 2
Выкладываю вторую версию проекта.
Добавлен метод по формированию макета отчета. Постарался прокомментировать основные действия.

Берутся данные таблицы InventTable, в столбцы добавляется тип номенклатуры, в строки - номенклатурная группа и код номенклатуры. В качестве данных - количество recid.
Вложения
Тип файла: xpo PrivateProject_PivotTest.xpo (13.2 Кб, 244 просмотров)
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: Pudd (1).
Старый 13.05.2010, 11:09   #30  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Pudd Посмотреть сообщение
большинство объектов на основе COM не выдают список подстановок( методы через точку) т к Com имеет стандартный набор методов (не тех) и где брать методы не понятно
(с подстановкой можно хоть по названию понять)
см. Повышение комфортности разработки при использовании Spreadsheet

Вместо Spreadsheet используйте PivotTable, а остальное - по аналогии. По методам читать можно хелп OWCVBA10.CHM, который наверняка есть на вашем компьютере. Ну или на MSDN поискать соответствующий раздел.
Старый 13.05.2010, 11:41   #31  
Pudd is offline
Pudd
Участник
 
34 / 10 (1) +
Регистрация: 31.03.2010
Всем огромное спасибо
Буду пробовать
Старый 13.05.2010, 14:27   #32  
Pudd is offline
Pudd
Участник
 
34 / 10 (1) +
Регистрация: 31.03.2010
А как сделать чтоб столбец который в сводную помещается как данные в сводной выглядел не как количество а как значение
т е сейчас там еденицы(я как понимаю количество совподающих значений а нужно само значение
Старый 13.05.2010, 18:45   #33  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
В моем примере см. строку добавления данных. Там используется макрос со значением "2" - это количество. Для суммы нужно передавать значение "1" (такой макрос тоже есть).
__________________
Ivanhoe as is..
Старый 13.05.2010, 19:06   #34  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Там используется макрос со значением "2" - это количество. Для суммы нужно передавать значение "1" (такой макрос тоже есть).
У PivotTable, как и у Spreadsheet, есть объект Constants, который позволяет использовать именованные константы, даже не зная их конкретных целочисленных значений:
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  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Не зная значений, нужно знать именнованные константы .
Собственно, весь мой пример сделан по аналогии со стандартом. Видимо, в русском MS или кто там делал эту функциональность о таких константах не знают =)
__________________
Ivanhoe as is..
Старый 14.05.2010, 11:15   #36  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Не зная значений, нужно знать именнованные константы .
Собственно, весь мой пример сделан по аналогии со стандартом. Видимо, в русском MS или кто там делал эту функциональность о таких константах не знают =)
Научим всех! Тем более, что это довольно просто. Даю три направления:

A. О константах можно узнать через обозреватель объектов в Excel:

1. Открываем Excel и по Alt+F11 идём в редактор VisualBasic
2. В окне отладки (Immediate) выполняем команду:
Код:
ActiveSheet.OLEObjects.Add("OWC10.PivotTable.10").Select
Команда поместит на рабочий лист ActiveX (он нам в принципе сейчас не нужен), НО! при этом добавится правильная ссылка на библиотеку в Tools\References (а вот это нам и нужно!)

3. Нажимаем F2 для вызова ObjectBrowser и в первом поле со списком выбираем библиотеку: OWC10
4. Чуть ниже в списке Classes встаем на <globals> и в правом списке Members изучаем константы (см.рисунок). С префиксом pl - константы для PivotTable, c ss - для Spreadsheet.

Название: PivotObjectBrowser.JPG
Просмотров: 1174

Размер: 44.8 Кб

B. А можно через хелп-файл OWCVBA10.CHM:

Нажмите на изображение для увеличения
Название: PivotAddTotal.JPG
Просмотров: 417
Размер:	82.5 Кб
ID:	5827

C. Наконец, можно через MSDN: http://msdn.microsoft.com/en-us/libr...ffice.10).aspx
Старый 17.05.2010, 19:21   #37  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Pudd Посмотреть сообщение
Теперь осталось научится убирать промежуточные итоги и сделать чтоб поля мышкой не надо было переносить
Pudd, наверное, я уже смогу ответить на эти вопросы. Заходите в мой блог в сообщение Построение сводной таблицы на форме с загрузкой данных из ADODB.Recordset
За это сообщение автора поблагодарили: Pudd (1).
Теги
ax2009, pivottable, законченный пример, пример, сводная таблица

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Сводные таблицы ( PivotTable ) Pudd DAX: Программирование 4 21.04.2010 13:31
Пересоздание таблицы при синхронизации Serg16 DAX: Администрирование 1 26.08.2009 13:55
Вопросы по OLAP в DAX2009 oleg_e DAX: Функционал 9 10.12.2008 02:02
OLAP - parent-child и связанные таблицы одновременно twilight DAX: Функционал 3 20.08.2007 17:11
Таблицы для куба OLAP PMS DAX: Программирование 3 16.01.2007 15:05

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:08.