Smartbi必备宏代码
1、隐藏部分按钮
function main(spreadsheetReport) {
// spreadsheetReport.elem_btnRefresh.parentNode.style.display = "none"; //刷新
spreadsheetReport.elem_btnMyFavorite.parentNode.style.display = "none"; //收藏
//spreadsheetReport.elem_btnExport.parentNode.style.display = "none"; //导出
spreadsheetReport.elem_btnPrint.parentNode.style.display = "none"; //打印
if (spreadsheetReport.spreadsheetReportWriteBack && spreadsheetReport.spreadsheetReportWriteBack.elemSave) {
spreadsheetReport.spreadsheetReportWriteBack.elemSave.parentNode.style.display = "none"; //保存
spreadsheetReport.spreadsheetReportWriteBack.elemInsertRow.parentNode.style.display = "none"; //添加行
spreadsheetReport.spreadsheetReportWriteBack.elemRemoveRow.parentNode.style.display = "none"; //删除行
}
};
2、参数后面添加查询按钮
function main(spreadsheetReport) {
var lastCell = spreadsheetReport.paramPanelObj;
var paramTable = spreadsheetReport.paramPanelObj.layoutTable;
var i, cell, lastCell;
for (i = 0; i < paramTable.Rows.length; i++) {
cell = paramTable.rows[i].insertCell(-1);
if (i == paramTable.rows.length - 1)
lastCell = cell;
}
if (!spreadsheetReport._newBtn) { // 不重复添加按钮
var input = document.createElement("INPUT");
input.type = "button";
// input.className = "Button-buttonbar button-bgicon-save";
input.value = "查询";
input.title = "查询";
// input.accessKey = "N";
input.style.width = "100";
input.style.height = "20";
var newBtn = lastCell.appendChild(input);
spreadsheetReport.addListener(input, "click", doNewButtonClick,
spreadsheetReport);
spreadsheetReport._newBtn = newBtn;
}
function doNewbuttonClick(e) {
spreadsheetReport.doRefresh();
spreadsheetReport.doRefresh(true); // 刷新报
}
}
3、右侧资源随着左侧资源选择动态变化
示例说明
点击左边的不同选项,右边出来不同的表
如下图,点击左侧第一条
"1、指标完成情况",则右侧资源变为目标
1。
如下图,点击左侧第一条记录"2、现在车分布",则右侧资源变为目标报表2。
设置方法
创建左侧源资源和每条记录对应的目录资源。如上面例子"1、指标完成情况"对应【右侧目标报表1】和"2"对应【右侧目标报表2】
在门户定制中创建页面。布局选择2列_3_7开;分别拖拽左侧资源和需要默认显示的右侧资源到页面布局中,如下图:
在宏管理中打开上面步骤创建的页面,创建跳转规则向导。源资源选择【左侧源资源】,目标资源选择【右侧目标资源1】,并设置为覆盖指定位置上的资源,如下图。
打开步骤3生成的客户端模块。使用下面宏,替换生成的宏代码
1
2
3
4
functionmain(simpleReport, simpleReportContext) {
// 针对第一列第二行的单元格增加超级链接,根据需要设置
simpleReport.addCellLink(1, 0, me);
}
替换生成宏的下面部分
1
functionmain(simpleReport, simpleReportContext) { simpleReport.addColumnLinkByName("目录",me);//字段别名:目录}
重复步骤3、4分别实现其它的记录跳转到不同的报表。需要根据需要调整跳转宏和宏代码。
1
2
3
4
functionmain(simpleReport, simpleReportContext) {
// 针对第一列第三行的单元格增加超级链接,根据需要设置
simpleReport.addCellLink(2, 0, me);
}
4、添加提交按钮
function main(spreadsheetReport) {
spreadsheetReport.elem_btnRefresh.parentNode.style.display = "none"; //刷新
spreadsheetReport.elem_btnMyFavorite.parentNode.style.display = "none"; //收藏
spreadsheetReport.elem_btnExport.parentNode.style.display = "none"; //导出
spreadsheetReport.elem_btnPrint.parentNode.style.display = "none"; //打印
if (spreadsheetReport.spreadsheetReportWriteBack && spreadsheetReport.spreadsheetReportWriteBack.elemSave) {
spreadsheetReport.spreadsheetReportWriteBack.elemSave.parentNode.style.display = "none"; //保存
spreadsheetReport.spreadsheetReportWriteBack.elemInsertRow.parentNode.style.display = "none"; //添加行
spreadsheetReport.spreadsheetReportWriteBack.elemRemoveRow.parentNode.style.display = "none"; //删除行
}
var td = spreadsheetReport.getCell(4, 2);
//添加按钮
td.innerHTML = "
";
td.firstChild.onclick = function() {
spreadsheetReport.spreadsheetReportWriteBack.doSaveClick();
}
};