即席查询宏需要使用TypeScript进行编写,提供的均为TypeScript接口。
TypeScript是JavaScript类型的超集,它可以编译成纯JavaScript。更详细说明可以参照附录。
DetailedQuery
表示整个即席查询页面
DQueryToolbar
表示即席查询页面的工具栏
DQueryTable
表示即席查询页面的表格
FilterPanel
表示即席查询页面的筛选面板
Filter
表示即席查询页面的筛选器
Param
表示即席查询页面的参数
宏将在报表渲染完成后执行,提供透视分析接口对象IDetailedQuery。
function main(detailedQuery: IDetailedQuery) {
// 实际宏代码
}
宏将在表格取数之前触发,提供透视分析接口对象IDetailedQuery
function main(detailedQuery: IDetailedQuery) {
// 实际宏代码
}
宏将在表格取数之后触发,提供透视分析接口对象IDetailedQuery
function main(detailedQuery: IDetailedQuery) {
// 实际宏代码
}
点击行头后,携带参数新窗口打开其他报表
事件 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)
})
})
}
示例图
在工具栏添加自定义按钮,点击按钮后显示或隐藏筛选面板
事件 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)
}
示例图
Typescript官方文档 https://www.tslang.cn/docs/home.html
Typescript菜鸟教程 https://www.runoob.com/typescript/ts-tutorial.html
Typescript菜鸟工具(TS在线编译) https://c.runoob.com/compile/5577
EChart官方文档 https://echarts.apache.org/v4/zh/option.html
iconfont官方文档 https://www.iconfont.cn/
SmartBI帮助中心 https://wiki.smartbi.com.cn/