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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.04.2015, 10:27   #1  
twilight is offline
twilight
MCTS
MCBMSS
 
869 / 237 (9) ++++++
Регистрация: 17.10.2004
Адрес: Королёв
Вставить данные из OLAP в таблицу Аксапты
Добрый день!
Можно ли из кода взять данные из куба OLAP на SQL Server и поместить некоторые данные из него (например, код клиента и сумма продажи за текущий месяц) в таблицу Аксапты? Если можно, то как это сделать? )
__________________
I could tell you, but then I would have to bill you.
Старый 27.04.2015, 10:47   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Через прямой SQL https://support.microsoft.com/ru-ru/kb/218592
За это сообщение автора поблагодарили: twilight (5).
Старый 01.05.2015, 11:16   #3  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Добрый день!

Можно и используя .NET, как ещё один вариант для версий, поддерживающих подключение сборок:

X++:
    Microsoft.AnalysisServices.AdomdClient.AdomdConnection  con;
    Microsoft.AnalysisServices.AdomdClient.AdomdCommand     command;

    Microsoft.AnalysisServices.AdomdClient.AxisCollection   axisCollection;
    Microsoft.AnalysisServices.AdomdClient.Axis             axis0;
    Microsoft.AnalysisServices.AdomdClient.Axis             axis1;

    Microsoft.AnalysisServices.AdomdClient.Set              set;
    Microsoft.AnalysisServices.AdomdClient.TupleCollection  tuplesOnRows;
    Microsoft.AnalysisServices.AdomdClient.TupleCollection  tuplesOnColumns;
    Microsoft.AnalysisServices.AdomdClient.Tuple            tupleRow;
    Microsoft.AnalysisServices.AdomdClient.Tuple            tupleCol;
    Microsoft.AnalysisServices.AdomdClient.MemberCollection memberCollection;
    Microsoft.AnalysisServices.AdomdClient.Member           member;
    Microsoft.AnalysisServices.AdomdClient.CellSet          cellSet;
    Microsoft.AnalysisServices.AdomdClient.Cell             cell;

    System.Collections.IEnumerator                          tuplesOnRowsEnumerator;

    TMPOLAPData                                             OlapData;
    str                                                     value;

    str                                                     mdx;

    mdx = @"select {[Measures].[Продажи]} on columns,
                   non empty [Клиенты].[Клиенты].members on rows
                   from [Cube]
                   where условие текущего месяца" ;

    try
    {
        con = new Microsoft.AnalysisServices.AdomdClient.AdomdConnection();
    
        // Set your own connection string
        con.set_ConnectionString("provider=msolap;Data Source=(local);initial catalog=<YourCubeBase>;");
        con.Open();

        command = con.CreateCommand();
        command.set_CommandText(mdx);

        cellSet = command.ExecuteCellSet();
        axisCollection = cellSet.get_Axes();

        axis0 = axisCollection.get_Item(0);
        set = axis0.get_Set();
        tuplesOnColumns = set.get_Tuples();

        axis1 = axisCollection.get_Item(1);
        set = axis1.get_Set();
        tuplesOnRows = set.get_Tuples();

        // output rows
        tuplesOnRowsEnumerator = tuplesOnRows.GetEnumerator();
        while (tuplesOnRowsEnumerator.MoveNext())
        {
            OlapData.clear();
            OlapData.initValue();

            // fill dimension
            tupleRow = tuplesOnRowsEnumerator.get_Current();
            memberCollection = tupleRow.get_Members();
            member = memberCollection.get_Item(0);
            OlapData.nameOfelement = member.get_Caption();

            // fill measure
            tupleCol = tuplesOnColumns.get_Item(0);
            cell = cellSet.get_Item(tupleCol.get_TupleOrdinal(), tupleRow.get_TupleOrdinal());
            value = cell.get_FormattedValue();
            OlapData.Value = value;

            OlapData.insert();
        }

        if (!CLRInterop::isNull(con))
        {
            con.Close();
        }
    }
    catch
    {
        error(AIFUtil::getClrErrorMessage());
    }
За это сообщение автора поблагодарили: twilight (5).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как вставить дубликат записи во временную таблицу IKA DAX: Программирование 5 05.02.2014 19:18
При перенаправлении OLAP куба на другую базу пропадают данные DTD DAX: Программирование 5 14.01.2011 22:09
Вычислимые данные в OLAP кубе cho DAX: Функционал 1 30.04.2009 13:33
Как вставить в Excel имя из аксапты? Prof DAX: Программирование 2 23.09.2005 13:50
Как вставить значение из Аксапты в Excel Андре DAX: Программирование 17 09.02.2005 18:13

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:20.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.