特别说明:如果服务器安全管理的安全防护打开了脚本调用公式限制,就用方式一
sql(
"topprd","
SELECT DISTINCT display_id
FROM bi_export_permission
WHERE permission_all ='Y'
UNION
SELECT DISTINCT display_id
FROM bi_export_permission
WHERE user_id = '"+$user+"'
AND permission = 'Y'
",
1
)
{
var toolbarItems = contentPane.toolbar.options.items;
// 获取所有按钮
var lastButtonIndex = toolbarItems.length - 1;
// 最后一个按钮位置数
var lastButton = toolbarItems[lastButtonIndex];
var splitReportName = reportName.split("/");
var lastIndex = splitReportName.length - 1;
var searchValue = splitReportName[lastIndex];
var index = permission.indexOf(searchValue);
var permissionResult = (index > -1) ? 'Y' : 'N';
if (permissionResult == 'Y') {
lastButton.setVisible(true);
//从左往右,下标从0开始,最后一个按钮(输出)不可用
} else {
lastButton.setVisible(false);
//从左往右,下标从0开始,最后一个按钮(输出)不可用
};
}
SELECT nvl(PERMISSION_ALL,PERMISSION) PERMISSION
FROM (
SELECT DISTINCT PERMISSION_ALL
FROM bi_export_permission
WHERE display_id = replace(SUBSTR('${reportName}',INSTR('${reportName}','/',-1)+1),' ','')
AND PERMISSION_ALL IS NOT NULL
) a
FULL JOIN (
SELECT PERMISSION
FROM bi_export_permission
WHERE user_id = '${user}'
AND display_id = replace(SUBSTR('${reportName}',INSTR('${reportName}','/',-1)+1),' ','')
)b ON 1=1
IF(FIND(INDEXOF(SPLIT($reportName, "/"), LEN(SPLIT($reportName, "/"))), $permission) > 0, 'Y', 'N')
bi_data_permission.js内容
function bi_data_permission(permissionResult){
var toolbarItems = contentPane.toolbar.options.items;
// 获取所有按钮
var lastButtonIndex = toolbarItems.length - 1;
// 最后一个按钮位置数
var lastButton = toolbarItems[lastButtonIndex];
if (permissionResult == 'Y') {
lastButton.setVisible(true);
//从左往右,下标从0开始,最后一个按钮(输出)不可用
} else {
lastButton.setVisible(false);
//从左往右,下标从0开始,最后一个按钮(输出)不可用
};
}
IF(FIND(INDEXOF(SPLIT($reportName, "/"), LEN(SPLIT($reportName, "/"))), $permission) > 0, 'Y', 'N')