页面树结构
转至元数据结尾
转至元数据起始

接口说明文档:https://smartbi.feishu.cn/docx/XWaddBPPYoJXmvxZQLkcJH08nif


BaseAdHocAnalysisExtender 基类

透视分析扩展点需继承此类,在自定义的 Extender 类中可通过 this 指针调用 BaseAdHocAnalysisExtender 中的方法

名称参数返回值说明
方法on事件、事件回调-添加接口监听事件

二开接口

AD_HOC_ANALYSIS_ON_INIT

触发时机:透视分析界面初始化时

作用:暂无对外接口

名称类型说明
输入参数adHocAnalysisImplIAdHocAnalysis即席查询对象

AD_HOC_DATA_PANEL_ON_INIT

触发时机:右侧数据来源选择面板初始化时

作用:对下拉菜单进行加减、禁用切换数据源

名称类型说明
输入参数adHocDataPanelImplIAdHocDataPanel数据来源面板对象

示例代码

this.on(AD_HOC_DATA_PANEL_ON_INIT, async (impl) => {
        // 禁止切换数据集
        if (!impl.getCurrentDatasetId()) {
                impl.setSelectDatasetDisabled(true)
        }
        // 屏蔽数据面板下拉部分菜单
        impl.setDropDownBtnsFilter(menu => {
                // 屏蔽编辑和切换数据集菜单
                return menu.id !== 'EDIT' && menu.id !== 'SWITCH_DATASET'
        })
    })
  }

AD_HOC_SAVE_DIALOG_ON_INIT

触发时机:保存弹窗初始化时

作用:指定用户的可保存的目录

名称类型说明
输入参数saveDialogImplISaveDialog保存弹窗对象

示例代码

this.on(AD_HOC_SAVE_DIALOG_ON_INIT, async (saveDialogImpl) => {
    saveDialogImpl.setNodeFilter((node) => {
      return node.id != 'PUBLIC_ANALYSIS'
    })
  })

AD_HOC_DATASET_SELECTOR_ON_INIT

触发时机:右侧数据来源选择面板初始化时

作用:对数据来源选择进行限制

名称类型说明
输入参数adHocDatasetSelectorImplIAdHocDatasetSelector选择数据集弹窗对象

示例代码

this.on(AD_HOC_DATASET_SELECTOR_ON_INIT, async (impl) => {
   impl.setRootNodeId('DEFAULT_TREENODE')
}

AD_HOC_TOOLBAR_ON_INIT

触发时机:工具栏初始化时

作用:对工具栏增加自定义项,删除某项

名称类型说明
输入参数toolbarImplIDQueryToolbar工具栏对象

示例代码

this.on(AD_HOC_TOOLBAR_ON_INIT, async (toolbarImpl) => {
    // 添加自定义按钮
    toolbarImpl.addItem({
        id: 'test',
        label: '自定义按钮',
        icon: 'sx-icon-data-panel-toggle',
        handler: () => {
            alert('点击自定义按钮')
        }
    })
 })

AD_HOC_ON_BEFORE_EXPORT_DIALOG

触发时机:打开导出弹窗前

作用:预设导出弹窗里选项的默认值, 可编辑性, 可见性, 或阻止弹窗

名称类型说明
输入参数adHocAnalysisImplIAdHocAnalysisQuery透视分析对象
optionsObject选项, 开发时可以打印这个值, 查看都有哪些可设置项
options.openDialogBoolean是否打开导出弹窗, 设置为false可阻止弹窗打开
options.propsObject弹窗设置, props都是有值的, 开发时可console打印查看
options.props.exportTypeString导出类型, CSV或EXCEL, 不允许修改
options.props.visiblesMap<选项key, Boolean>配置选项的可见性, 选空key见ExportSetting. 设为false就不显示在弹窗中
options.props.disablesMap<选项key, Boolean>配置选项的可编辑性, 选空key见ExportSetting. 设为true在弹窗中就是不可编辑的
options.props.defaultValueExportSetting导出选项默认值

示例代码

// 不显示导出弹窗
this.on(AD_HOC_ON_BEFORE_EXPORT_DIALOG, (adHocAnalysisImpl, options) => {
	// 如果默认值有"导出过滤条件", 设置默认不导出
  	if (options.props.defaultValue.exportFilters !== undefined) {
		options.props.defaultValue.exportFilters = 'false';
  	}
   	options.openDialog = false
})

AD_HOC_ON_BEFORE_EXPORT

触发时机:导出动作执行前 (如点击导出下拉菜单的EXCEL选项)

作用:阻止系统默认的导出实现, 定制自己的导出

名称类型说明
输入参数adHocAnalysisImplIAdHocAnalysisQuery透视分析对象
optionsObject选项
options.exportTypeString导出类型, CSV或EXCEL

示例代码

this.on(AD_HOC_ON_BEFORE_EXPORT, (adHocAnalysisImpl, { exportType }) => {
	// 获取默认的导出设置
    let setting = adHocAnalysisImpl.execGenerateExportSetting({ exportType })
    // 使用prompt弹窗询问文件名
    let fileName = prompt('请输入文件名', "定制组件导出弹窗");
    if (fileName === null) {
        // 取消导出
        return;
    }
    if (fileName === '') {
   	    // 不输入文件名
        return;
    }
    setting.fileName = fileName;
    // 调用系统导出
    adHocAnalysisImpl.execExportWithSetting({ exportType, setting })
})

接口对象

IAdHocAnalysisQuery(透视分析界面)

见: IAdHocAnalysisQuery

IAdHocDataPanel(数据面板)

IAdHocDataPanel 继承 IDatasetPanel

ISaveDialog(保存弹窗)

见:ISaveDialog

IAdHocDatasetSelector(选择数据集弹窗)

IAdHocDatasetSelector 继承 IDatasetSelector

IAdHocToolbar(工具栏)

IAdHocToolbar 继承 IBaseToolbar

二开示例

【透视分析】二开示例

  • 无标签