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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.05.2010, 10:06   #1  
Pudd is offline
Pudd
Участник
 
34 / 10 (1) +
Регистрация: 31.03.2010
Сводные таблицы и Olap в Dax2009
Всем Добрый день
Я начинающий в Olap
Хочу чтоб на форме выводилась сводная таблица
Надо чтоб она формировалась из нескольких таблиц в Аксапте т е там идет выборка с объединением и агрегатной функцией
Короче говоря создал я таблицу (временную) где собрал данные в нужном порядке
теперь весь весь вопрос состоит как сделать чтоб из временной таблицы данные попали в сводную таблицу в соотв. виде( там нужно чтоб два поля в строке два поля в столбце и одно как данные)

ЗЫ Если эту временную таблицу выгрузить в Excel то там сводную таблицу построить не сложно
Вопрос именно а как Аксапте чтоб сводная таблица была на форме?
Старый 12.05.2010, 10:32   #2  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Использовать ActiveX компонент Microsoft Office Pivot Table, например. В нем можно будет как открыть напрямую view (или произвольный SQL-запрос) в БД, так и "подсунуть" заранее подготовленные данные (см. пример в последней версии российского модуля ЗП и кадры).
__________________
Ivanhoe as is..
Старый 12.05.2010, 10:47   #3  
Pudd is offline
Pudd
Участник
 
34 / 10 (1) +
Регистрация: 31.03.2010
ActiveX Pivot Table это понятно
Если на прямую обратится к базе эт не вариант тк нет доступа на AOS на прямую
А вот как "как подсунуть" временную таблицу я не знаю
ЗЫ А где конкретно в зарплата и кадры (управление персоналом?) и дальше где?
Старый 12.05.2010, 11:05   #4  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
При чем тут доступ к AOS и к БД? Можно же пользователю дать права на вьюху напрямую на СУБД, как вариант.

Насчет ЗП и Кадров - они ставятся отдельно в виде слоя LOS, в меню это будет не в управлении персоналом, а отдельный "модуль" "Расчеты с персоналом".
__________________
Ivanhoe as is..
Старый 12.05.2010, 11:18   #5  
Pudd is offline
Pudd
Участник
 
34 / 10 (1) +
Регистрация: 31.03.2010
А в расчётах с персоналом где конкретно?
БД и AOS на одном серваке и у меня нет доступа напрямую
А нельзя ка то просто "подцепить" временную таблицу к сводной (типа как в экселе)
Старый 12.05.2010, 11:27   #6  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Pudd, а есть веская причина, по которой Вы хотите непременно оставаться на форме в Аксапте? Вам нужна какая-то именно аксаптовская реакция на события? Например, по даблклику чего-либо в сводной таблице выводить строку в infolog или открывать другую форму с позиционированием на значении из кликаемой ячейки сводной таблицы.

Если нет, то не мучайтесь - выводите сводную в Excel и предъявляйте пользователю для дальнейшего анализа. Это проще и гибче. К тому же можно элегантно выдать данные прямо в кэш сводной таблицы, не создавая никаких временных структур в Аксапте (ну, разве только ADODB.Recordset в оперативной памяти): http://www.axforum.info/forums/blog.php?b=60
За это сообщение автора поблагодарили: Pudd (1).
Старый 12.05.2010, 11:29   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Pudd Посмотреть сообщение
А нельзя ка то просто "подцепить" временную таблицу к сводной (типа как в экселе)
Временная таблица, которую вы построили - это чисто аксаптовское творение. Ексель про неё и слыхом не слыхивал. Попробуйте покопать в сторону ADO.Recordset
Старый 12.05.2010, 11:50   #8  
Pudd is offline
Pudd
Участник
 
34 / 10 (1) +
Регистрация: 31.03.2010
Цитата:
Сообщение от Gustav Посмотреть сообщение
Pudd, а есть веская причина, по которой Вы хотите непременно оставаться на форме в Аксапте? Вам нужна какая-то именно аксаптовская реакция на события? Например, по даблклику чего-либо в сводной таблице выводить строку в infolog или открывать другую форму с позиционированием на значении из кликаемой ячейки сводной таблицы.
http://www.axforum.info/forums/blog.php?b=60
Ну причина "надо сделать как здесь"
Всётаки лутше б именно на форме
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Временная таблица, которую вы построили - это чисто аксаптовское творение. Ексель про неё и слыхом не слыхивал. Попробуйте покопать в сторону ADO.Recordset
Вот я и хочу чтоб именно ActiveX компонент а не Ексель

Тема попрежнему актуальна

Последний раз редактировалось Pudd; 12.05.2010 в 11:53.
Старый 12.05.2010, 12:14   #9  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Pudd Посмотреть сообщение
Вот я и хочу чтоб именно ActiveX компонент а не Ексель
А в чём разница? Tот же COM только в профиль
Старый 12.05.2010, 12:35   #10  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Pudd Посмотреть сообщение
Вот я и хочу чтоб именно ActiveX компонент а не Ексель
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
А в чём разница? Tот же COM только в профиль
При использовании ActiveX (OWC PivotTable) неприятность заключается в том, что данные для сводной из Аксапты нужно сложить в таблицу, а потом обратиться к ней как к ВНЕШНЕЙ (!). Поэтому получается, что временной она быть никак не может, а должна быть постоянной. Если только под термином "временная" не понимается непродолжительность срока хранения информации в этой таблице, а так это абсолютно разные "сессии" записи Аксаптой и извлечения данных из этой "временной" таблицы ActiveX'ом (в данной конкретной ситуации по случаю лежащем на форме Аксапты).
Старый 12.05.2010, 12:45   #11  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Gustav Посмотреть сообщение
При использовании ActiveX (OWC PivotTable) неприятность заключается в том, что данные для сводной из Аксапты нужно сложить в таблицу, а потом обратиться к ней как к ВНЕШНЕЙ (!).
А можно ли в ActiveX также как и на лист Excel данные из временной таблицы перекинуть посредством ADO?
За это сообщение автора поблагодарили: Gustav (3).
Старый 12.05.2010, 12:46   #12  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Коллеги, так много советов, а кто-нибудь все-таки смотрел решение в ЗП и кадрах? =)

Я не программист, но насколько я понял, там делается что-то временное через ADODB.Recordset. Именно "это" открывается в PivotTable. Если же выгрузить сводную в Excel средствами PivotTable - то сначала копируются сами данные и уже по ним строится сводная, прямых запросов в БД не будет.

Расчеты с персоналом/ Отчеты/ Сводные таблицы/
__________________
Ivanhoe as is..
Старый 12.05.2010, 12:50   #13  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
А можно ли в ActiveX также как и на лист Excel данные из временной таблицы перекинуть посредством ADO?
Не-а http://www.axforum.info/forums/blog.php?b=60 и там самая последняя фраза:
Цитата:
К великому моему сожалению, данный метод передачи рекордсета сводной таблице нельзя применить в случае ActiveX - OWC PivotTable. В его объектной модели, увы, отсутствует объект PivotCache...
За это сообщение автора поблагодарили: S.Kuskov (3).
Старый 12.05.2010, 13:13   #14  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Расчеты с персоналом/ Отчеты/ Сводные таблицы/
Ax 3.0 SP4 - к сожалению, не имею такого узла. Если кто-нибудь имеет и расскажет поподробнее о начинке, то с удовольствием послушаю.
Старый 12.05.2010, 13:20   #15  
Pudd is offline
Pudd
Участник
 
34 / 10 (1) +
Регистрация: 31.03.2010
Написал я класс по мативу джоба от Gustav но всётаки надо натйи решение через ActiveX

Таблица у меня временная (обычная таблица в свойстве Temporary =yes)
Но это не проблема в принципе можно сделать постоянную
Может есть какой то простой пример наподобии джоба
Старый 12.05.2010, 13:26   #16  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Если кратко, надеюсь, не упустил чего-то важного:
1. COM comRS;
2. comRS = new COM(#ADODBRecordset);
3. Извлекаем нужные данные из нужных таблиц, вызываем comRS.AddNew(); заполняем значения полей; comRS.update();
4. Инициализируем сводную ActiveX pivotTable;
5. Передаем данные в сводную pivotTable.DataSource(comRS);
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: Gustav (29).
Старый 12.05.2010, 14:10   #17  
Pudd is offline
Pudd
Участник
 
34 / 10 (1) +
Регистрация: 31.03.2010
Gustav а как в поля данных (где 1) занести не количество совпадений (1) а значения поля
т е например есть 5 полей в таблице 2 строки 2 столбцы а 1 данные

Последний раз редактировалось Pudd; 12.05.2010 в 14:20.
Старый 12.05.2010, 14:17   #18  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Пример
Прилагаю пример, сделанный за 30 минут по аналогии со сводными RHRM.
Работает на Dynamics AX 2009 SP1 RU4.

Для демонстрации - откройте форму. На ней отображается сводная, составленная из двух полей "ItemId" и "Name", данные берутся из таблицы номенклатур.
Вложения
Тип файла: xpo PrivateProject_PivotTest.xpo (6.4 Кб, 248 просмотров)
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: Pudd (1).
Старый 12.05.2010, 14:27   #19  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
5. Передаем данные в сводную pivotTable.DataSource(comRS);
БЛИИИН!! ПОСЫПАЮ ГОЛОВУ ПЕПЛОМ!!! МОЖНО!!!
Старый 12.05.2010, 14:55   #20  
Pudd is offline
Pudd
Участник
 
34 / 10 (1) +
Регистрация: 31.03.2010
а как сделать чтоб поля сразу в таблицы были т е чтоб не надо было их переносить мышкой?
Теги
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, время: 14:07.