(本文档仅供参考)
本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如报表使用冻结,或多个宏代码冲突等),需根据实际需求开发代码。
问题说明:
请问一下,一张报表里面,有多个参数筛选;想将几参数设置成手动刷新有些设置成自动刷新,这样是可以做到的吗?
报表参数刷新设置只有自动,手动,局部,这个三种刷新方式。
解决方案:
实现报表部分参数自动刷新,部分报表手动刷新的效果,可以通过如下步骤实现:
步骤1:对报表设置切换参数为手动刷新
步骤2:按下图选择对应的类型新建客户端宏
如下:
function main(spreadsheetReport, param) { // ||表示或,&&表示且 if(param.name == "sqlMapName" || param.name == "other"){ spreadsheetReport.doRefresh(); //刷新 //spreadsheetReport.doAjaxRefresh(); //局部刷新 } }
粘贴相关的代码,把sqlMapName和other改成自己的参数名称,需要根据实际应用场景修改对应的参数名称,如下图:
步骤3:效果图如下:
评论
张承峥 发表:
若局部刷新也需要传参到URL链接可参考下方代码
类型:ClientSide 对象:spreadsheetReport 事件: onParamValueChanged
function main(spreadsheetReport, param) {
debugger;
// ||表示或,&&表示且
if (param.name == "产品种类" || param.alias == "产品种类") {
//spreadsheetReport.doRefresh(); //刷新
spreadsheetReport.doAjaxRefresh(); //局部刷新
spreadsheetReport.shapesMap['SPREADSHEET_REPORT_1'].urlResourceInited = false; //SPREADSHEET_REPORT_1 -----修改为URL链接的名称
spreadsheetReport.initUrlResource(spreadsheetReport.shapesMap['SPREADSHEET_REPORT_1'].urlAreaKey);
}
}