Options
All
  • Public
  • Public/Protected
  • All
Menu

即席查询接口文档

目录

详细接口文档

查看接口文档

宏编写

即席查询宏需要使用TypeScript进行编写,提供的均为TypeScript接口。

TypeScript是JavaScript类型的超集,它可以编译成纯JavaScript。更详细说明可以参照附录

宏接口关系图

图例

DetailedQuery表示整个即席查询页面

DQueryToolbar表示即席查询页面的工具栏 DQueryTable表示即席查询页面的表格 FilterPanel表示即席查询页面的筛选面板 Filter表示即席查询页面的筛选器 Param表示即席查询页面的参数

图例

宏执行事件

透视分析报表事件

渲染事件 onRender

宏将在报表渲染完成后执行,提供透视分析接口对象IDetailedQuery

function main(detailedQuery: IDetailedQuery) {
    // 实际宏代码
}

每次刷新前事件 onBeforeRefresh

宏将在表格取数之前触发,提供透视分析接口对象IDetailedQuery

function main(detailedQuery: IDetailedQuery) {
    // 实际宏代码
}

每次刷新后事件 onAfterRefresh

宏将在表格取数之后触发,提供透视分析接口对象IDetailedQuery

function main(detailedQuery: IDetailedQuery) {
    // 实际宏代码
}

宏示例

表格扩展示例

1、点击行头跳转其他报表

点击行头后,携带参数新窗口打开其他报表

事件 onAfterRefresh

示例代码

function main(detailedQuery: IDetailedQuery) {
    function main(detailedQuery: IDetailedQuery) {
    // 目标跳转资源id
    var targetResourseid = 'I8a8a9fb10188c3a6c3a6df1e0188c3a6df1e0000'
    let table = detailedQuery.getTable()
    // 先清空已有监听器
    table.resetEventListener()
    // 设置数据单元格渲染器
    table.setRenderCellHandler((cell, row, rowIndex, columnIndex) => {
        if (columnIndex !== 0) {
            return
        }
        // 注册单元格点击事件
        cell.addEventListener(TableCellEvent.CLICK, () => {
            // 点击单元格时,携带参数,在对话框打开资源
            detailedQuery.openResourceByType(targetResourseid,  {
                paramInfo: [{
                    name: '省份',
                    alias: '省份',
                    value: [cell.getValue()],
                    displayValue: [cell.getDisplayValue()],
                }]
            }, OpenType.DIALOG)
        })
    })
}

示例图 图例

工具栏扩展示例

1、添加工具栏按钮

在工具栏添加自定义按钮,点击按钮后显示或隐藏筛选面板

事件 onRender

示例代码

  function main(detailedQuery: IDetailedQuery) {
    // 获取工具栏对象
    var toolbar = detailedQuery.getToolbar()
    // 插入到第1组第一个位置
    toolbar.insertItem(0, {
        id: 'test',
        icon: 'sx-icon-PC',
        label: '显示/隐藏筛选面板',
        handler: (define) => {
            var filterPanel = detailedQuery.getFilterPanel()
            if (filterPanel.isShow()) {
                filterPanel.hide()
            } else {
                filterPanel.show()
            }
        }
    },0)
  }

示例图 图例

附录