AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 12.05.2010, 10:06   #1  
Pudd ist offline
Pudd
Участник
 
34 / 10 (1) +
Registriert seit: 31.03.2010
Сводные таблицы и Olap в Dax2009
Всем Добрый день
Я начинающий в Olap
Хочу чтоб на форме выводилась сводная таблица
Надо чтоб она формировалась из нескольких таблиц в Аксапте т е там идет выборка с объединением и агрегатной функцией
Короче говоря создал я таблицу (временную) где собрал данные в нужном порядке
теперь весь весь вопрос состоит как сделать чтоб из временной таблицы данные попали в сводную таблицу в соотв. виде( там нужно чтоб два поля в строке два поля в столбце и одно как данные)

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

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

Если нет, то не мучайтесь - выводите сводную в Excel и предъявляйте пользователю для дальнейшего анализа. Это проще и гибче. К тому же можно элегантно выдать данные прямо в кэш сводной таблицы, не создавая никаких временных структур в Аксапте (ну, разве только ADODB.Recordset в оперативной памяти): http://www.axforum.info/forums/blog.php?b=60
This post has been rated by: Pudd (1).
Alt 12.05.2010, 11:29   #7  
S.Kuskov ist offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3.448 / 1792 (66) ++++++++
Registriert seit: 28.04.2007
Ort: Калуга
Zitat:
Zitat von Pudd Beitrag anzeigen
А нельзя ка то просто "подцепить" временную таблицу к сводной (типа как в экселе)
Временная таблица, которую вы построили - это чисто аксаптовское творение. Ексель про неё и слыхом не слыхивал. Попробуйте покопать в сторону ADO.Recordset
Alt 12.05.2010, 11:50   #8  
Pudd ist offline
Pudd
Участник
 
34 / 10 (1) +
Registriert seit: 31.03.2010
Zitat:
Zitat von Gustav Beitrag anzeigen
Pudd, а есть веская причина, по которой Вы хотите непременно оставаться на форме в Аксапте? Вам нужна какая-то именно аксаптовская реакция на события? Например, по даблклику чего-либо в сводной таблице выводить строку в infolog или открывать другую форму с позиционированием на значении из кликаемой ячейки сводной таблицы.
http://www.axforum.info/forums/blog.php?b=60
Ну причина "надо сделать как здесь"
Всётаки лутше б именно на форме
Zitat:
Zitat von S.Kuskov Beitrag anzeigen
Временная таблица, которую вы построили - это чисто аксаптовское творение. Ексель про неё и слыхом не слыхивал. Попробуйте покопать в сторону ADO.Recordset
Вот я и хочу чтоб именно ActiveX компонент а не Ексель

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

Geändert von Pudd (12.05.2010 um 11:53 Uhr)
Alt 12.05.2010, 12:14   #9  
S.Kuskov ist offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3.448 / 1792 (66) ++++++++
Registriert seit: 28.04.2007
Ort: Калуга
Zitat:
Zitat von Pudd Beitrag anzeigen
Вот я и хочу чтоб именно ActiveX компонент а не Ексель
А в чём разница? Tот же COM только в профиль
Alt 12.05.2010, 12:35   #10  
Gustav ist offline
Gustav
Moderator
Benutzerbild von Gustav
SAP
Лучший по профессии 2009
 
1.858 / 1152 (42) ++++++++
Registriert seit: 24.01.2006
Ort: Санкт-Петербург
Blog-Einträge: 19
Zitat:
Zitat von Pudd Beitrag anzeigen
Вот я и хочу чтоб именно ActiveX компонент а не Ексель
Zitat:
Zitat von S.Kuskov Beitrag anzeigen
А в чём разница? Tот же COM только в профиль
При использовании ActiveX (OWC PivotTable) неприятность заключается в том, что данные для сводной из Аксапты нужно сложить в таблицу, а потом обратиться к ней как к ВНЕШНЕЙ (!). Поэтому получается, что временной она быть никак не может, а должна быть постоянной. Если только под термином "временная" не понимается непродолжительность срока хранения информации в этой таблице, а так это абсолютно разные "сессии" записи Аксаптой и извлечения данных из этой "временной" таблицы ActiveX'ом (в данной конкретной ситуации по случаю лежащем на форме Аксапты).
Alt 12.05.2010, 12:45   #11  
S.Kuskov ist offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3.448 / 1792 (66) ++++++++
Registriert seit: 28.04.2007
Ort: Калуга
Zitat:
Zitat von Gustav Beitrag anzeigen
При использовании ActiveX (OWC PivotTable) неприятность заключается в том, что данные для сводной из Аксапты нужно сложить в таблицу, а потом обратиться к ней как к ВНЕШНЕЙ (!).
А можно ли в ActiveX также как и на лист Excel данные из временной таблицы перекинуть посредством ADO?
This post has been rated by: Gustav (3).
Alt 12.05.2010, 12:46   #12  
Ivanhoe ist offline
Ivanhoe
Участник
Benutzerbild von Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4.143 / 2161 (81) +++++++++
Registriert seit: 29.09.2005
Ort: Санкт-Петербург
Коллеги, так много советов, а кто-нибудь все-таки смотрел решение в ЗП и кадрах? =)

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

Расчеты с персоналом/ Отчеты/ Сводные таблицы/
__________________
Ivanhoe as is..
Alt 12.05.2010, 12:50   #13  
Gustav ist offline
Gustav
Moderator
Benutzerbild von Gustav
SAP
Лучший по профессии 2009
 
1.858 / 1152 (42) ++++++++
Registriert seit: 24.01.2006
Ort: Санкт-Петербург
Blog-Einträge: 19
Zitat:
Zitat von S.Kuskov Beitrag anzeigen
А можно ли в ActiveX также как и на лист Excel данные из временной таблицы перекинуть посредством ADO?
Не-а http://www.axforum.info/forums/blog.php?b=60 и там самая последняя фраза:
Zitat:
К великому моему сожалению, данный метод передачи рекордсета сводной таблице нельзя применить в случае ActiveX - OWC PivotTable. В его объектной модели, увы, отсутствует объект PivotCache...
This post has been rated by: S.Kuskov (3).
Alt 12.05.2010, 13:13   #14  
Gustav ist offline
Gustav
Moderator
Benutzerbild von Gustav
SAP
Лучший по профессии 2009
 
1.858 / 1152 (42) ++++++++
Registriert seit: 24.01.2006
Ort: Санкт-Петербург
Blog-Einträge: 19
Zitat:
Zitat von Ivanhoe Beitrag anzeigen
Расчеты с персоналом/ Отчеты/ Сводные таблицы/
Ax 3.0 SP4 - к сожалению, не имею такого узла. Если кто-нибудь имеет и расскажет поподробнее о начинке, то с удовольствием послушаю.
Alt 12.05.2010, 13:20   #15  
Pudd ist offline
Pudd
Участник
 
34 / 10 (1) +
Registriert seit: 31.03.2010
Написал я класс по мативу джоба от Gustav но всётаки надо натйи решение через ActiveX

Таблица у меня временная (обычная таблица в свойстве Temporary =yes)
Но это не проблема в принципе можно сделать постоянную
Может есть какой то простой пример наподобии джоба
Alt 12.05.2010, 13:26   #16  
Ivanhoe ist offline
Ivanhoe
Участник
Benutzerbild von Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4.143 / 2161 (81) +++++++++
Registriert seit: 29.09.2005
Ort: Санкт-Петербург
Если кратко, надеюсь, не упустил чего-то важного:
1. COM comRS;
2. comRS = new COM(#ADODBRecordset);
3. Извлекаем нужные данные из нужных таблиц, вызываем comRS.AddNew(); заполняем значения полей; comRS.update();
4. Инициализируем сводную ActiveX pivotTable;
5. Передаем данные в сводную pivotTable.DataSource(comRS);
__________________
Ivanhoe as is..
This post has been rated by: Gustav (29).
Alt 12.05.2010, 14:10   #17  
Pudd ist offline
Pudd
Участник
 
34 / 10 (1) +
Registriert seit: 31.03.2010
Gustav а как в поля данных (где 1) занести не количество совпадений (1) а значения поля
т е например есть 5 полей в таблице 2 строки 2 столбцы а 1 данные

Geändert von Pudd (12.05.2010 um 14:20 Uhr)
Alt 12.05.2010, 14:17   #18  
Ivanhoe ist offline
Ivanhoe
Участник
Benutzerbild von Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4.143 / 2161 (81) +++++++++
Registriert seit: 29.09.2005
Ort: Санкт-Петербург
Пример
Прилагаю пример, сделанный за 30 минут по аналогии со сводными RHRM.
Работает на Dynamics AX 2009 SP1 RU4.

Для демонстрации - откройте форму. На ней отображается сводная, составленная из двух полей "ItemId" и "Name", данные берутся из таблицы номенклатур.
Angehängte Dateien
Dateityp: xpo PrivateProject_PivotTest.xpo (6,4 KB, 252x aufgerufen)
__________________
Ivanhoe as is..
This post has been rated by: Pudd (1).
Alt 12.05.2010, 14:27   #19  
Gustav ist offline
Gustav
Moderator
Benutzerbild von Gustav
SAP
Лучший по профессии 2009
 
1.858 / 1152 (42) ++++++++
Registriert seit: 24.01.2006
Ort: Санкт-Петербург
Blog-Einträge: 19
Zitat:
Zitat von Ivanhoe Beitrag anzeigen
5. Передаем данные в сводную pivotTable.DataSource(comRS);
БЛИИИН!! ПОСЫПАЮ ГОЛОВУ ПЕПЛОМ!!! МОЖНО!!!
Alt 12.05.2010, 14:55   #20  
Pudd ist offline
Pudd
Участник
 
34 / 10 (1) +
Registriert seit: 31.03.2010
а как сделать чтоб поля сразу в таблицы были т е чтоб не надо было их переносить мышкой?
Stichworte
ax2009, pivottable, законченный пример, пример, сводная таблица

 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Сводные таблицы ( 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

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 18:53 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.