1. 06 Dec, 2017 2 commits
  2. 07 Nov, 2017 1 commit
    • Boris Kocherov's avatar
      add CUBEMEMBER, CUBEVALUE · d9387a0b
      Boris Kocherov authored
      CUBEMEMBER and CUBEVALUE functions has been implemented, using xmla
      library.
      
      For this purpose the support of lazy calculations in parserFormula has
      been added. Now, during the implementantion of a function a method for
      lazy calculations  (CalculateLazy) can be defined. CalculateLazy returns
      not a value, as it did Calculation, but RSVP.Queue. And now it is the
      returned queue that is to return the value which is the result of the
      calculations. During the calculation of CUBEVALUE the calculation
      process waits until all the calculations of all the arguments are
      finished. It is made to send an EXECUTE request to olap. This request
      guarantees the consistency of the returned values. In case of success
      CUBEMEMBER.CalculateLazy assigns mdx-expression to cube_value to form
      the request and calculate its result. Functions are marked as those
      which are calculated every time the document is being opened (.ca=true).
      changeOffsetElem, which return the element of the olap-tree, adjacent to
      the current one on the same level, have been implemented. It helps to
      fill the table.
      TODO:
      Make the editor of connections to OLAP-servers. In the current
      implementation connection parameters are hardcoded. The current
      parameters describe a connection to SAIKU olap demoserver, which
      supports XMLA-requests.
      Use PivotCache as an intermediate structure to store the requests'
      results. It will allow to use PivotTable to display the results.
      
      In Russian:
      Реализованы CUBEMEMBER, CUBEVALUE функции используя xmla библиотеку.
      
      Для этого добавлена поддержка ленивых вычислений в parserFormula.При
      реализации функции теперь можно опредилить метод для ленивых вычислений
      CalculateLazy.  CalculateLazy возвращает очередь (RSVP.Queue), а не
      значение, как при обычных вычислениях. И уже возвращаемая очередь должна
      вернуть значение, которое является результатом вычисления. При
      вычислении CUBEVALUE происходит ожидание вычисления всех аргументов всех
      CUBEVALUE. Это сделано, для того чтобы посылать один запрос EXECUTE к
      olap, что гарантирует согласованность значений, полученых в результате.
      CUBEMEMBER.CalculateLazy в случае успеха присваивает cube_value mdx-
      выражение которое использовано для вычисления
      CUBEMEMBER в свою очередь CUBEVALUE использует cube_value для
      формирования запроса и вычисления своего результата. Функции
      промаркированы как вычисляемые при каждом открытии документа
      (.ca=true). Реализованы changeOffsetElem, которые возвращают элемент
      olap-дерева, соседний по отношению к текущему на том же уровне, что
      позволяет быстро заполнять таблицу.
      TODO:
      Сделать редактор подключений к OLAP серверам. В текущей реализации
      параметры соединений прописаны прямо в коде. Текущие параметры описывают
      соединение с SAIKU olap demoserver, который поддерживает XMLA.
      Использовать PivotCache как промежуточную структуру для хранения
      результатов запросов, что позволит использовать PivotTable для
      отображения результатов.
      d9387a0b
  3. 06 Nov, 2017 1 commit
  4. 03 Nov, 2017 11 commits
  5. 02 Nov, 2017 16 commits
  6. 01 Nov, 2017 9 commits