Рендеринг ActivePivot на веб-странице
Я хотел бы получить данные из куба activePivot, отправив MDX с запросом Rest. Я попытался сделать это, и я получил объект json, а затем проанализировал этот объект json, чтобы получить только конкретную информацию (см. Рисунок).
Я посмотрел на этот вопрос: могу ли я подключить ActivePivot к программному обеспечению таблицы?, но это не завершено.
Теперь я хотел бы отобразить информацию, какой бы ни был запрос, в динамической таблице на веб-странице. Как мне это сделать?
1 ответ
Вы пытаетесь выполнить то, что мы называем рендерингом сводной таблицы из CellSet. CellSet (и, возможно, соответствующая информация об обнаружении куба) достаточны для выполнения этой задачи, и вы можете написать ее самостоятельно, просто выполняя итерации по осям и ячейкам CellSet. Насколько мне известно, нет библиотеки с открытым исходным кодом, которая поможет вам сделать это (используется REST Api, который вы используете недавно).
Поскольку вы используете ActivePivot, вы можете знать о ActivePivot Live 4, который является интерфейсом пользовательского интерфейса для ActivePivot, который использует тот же API, который вы используете, и содержит компонент TabularView, который выполняет то, что вы пытаетесь сделать, с множеством дополнительных функций. это может быть интересно для вас, по имени:
- Ленивый рендеринг (он может быстро рендерить очень большие CellSets с низким объемом памяти)
- Поддержка обновлений в реальном времени на CellSet через запрос WebSocket
- Настраиваемая таблица (вы можете настроить стиль каждого элемента, программно или через пользовательский интерфейс)
- Столбцы можно переупорядочить / закрепить / изменить размер
- Возможность сложной визуализации столбца или группы столбцов (например, спарклайны, деревья иерархии)
- Компоненты доступны в виде библиотеки, поэтому вы можете включить их в приложение Angular, если хотите
Этот продукт содержит гораздо больше функций, которые вы можете увидеть, например, в этих двух видео (каждый раз, когда вы видите таблицу с данными, это TabularView): https://www.youtube.com/watch?v=-B07d4meYbQ и https://www.youtube.com/watch?v=QMTVAtdpuRs.
Так что если вы используете ActivePivot Live, вы можете отобразить любой MDX в виде таблицы в div с идентификатором table
со следующим кодом:
const servers = ActivePivotLive.api.queries.serversPool;
const server = servers.addActivePivotServer({url: 'http://localhost:9090'});
conat tabularView = ActivePivotLive.api.widgets.createTabularView()
.withMdx(yourMdx)
.within('table');
Затем вы можете изменить MDX с
tabularView.getQuery().setMdx(newMdx)
Так что вы можете обернуть это, например, в угловую директиву.
В противном случае вам придется реализовать его самостоятельно, но, конечно, вы можете обратиться за помощью, если у вас возникнут конкретные проблемы или ошибки, с которыми вы столкнетесь при попытке его реализовать.