// Licensed Materials - Property of IBM // // IBM Cognos Products: pps // // (C) Copyright IBM Corp. 2005, 2017 // // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. var rootCommands = new Array(); rootCommands["DRILL"] = 'D'; rootCommands["EDGE"] = 'E'; rootCommands["PAGE"] = 'P'; var optionCommands = new Array(); optionCommands["REPLACE"] = 'R'; optionCommands["CATEGORY"] = 'C'; optionCommands["GROUP"] = 'G'; optionCommands["NEST"] = 'N'; function processDoubleClick(event) { if (!topparent.allFramesInitialized()) return; var eventM = new eventManager(event); eventM.cancelBubble(); var obj = bubbleToDoubleClickSensitiveObject(eventM.getSrc()); if (obj == null) return; var cmd = ""; var id = obj.id; var row = parseRowId(obj.id); var col = parseColId(obj.id); var rowLabel = document.getElementById(row + "-" + (parseInt(numRowLevels) - 1)); var colLabel = document.getElementById((parseInt(numColLevels) - 1) + "-" + col); var bBothSummaries = false; var bDoRowLabel = false; var bDoColLabel = false; if (rowLabel && colLabel) { bBothSummaries = rowLabel.summary == "true" && colLabel.summary == "true" && (rowLabel.getAttribute("level") > 0 || colLabel.getAttribute("level") > 0); } if (rowLabel) bDoRowLabel = rowLabel.summary != "true" || bBothSummaries; if (colLabel) bDoColLabel = colLabel.summary != "true" || bBothSummaries; if (bDoRowLabel) { cmd += getDrillLinkCommand(rowLabel); } if (bDoColLabel) { cmd += getDrillLinkCommand(colLabel); } if (cmd != "") { var cmd1 = ''; var cmd2 = ''; var beginMarker = "DG:"; var endMarker = ");"; var begin = cmd.indexOf(beginMarker); if (begin >= 0) cmd = cmd.substr(begin); var end = cmd.indexOf(endMarker) - 1; if (end >= 0) { cmd1 = cmd.substr(0, end); cmd = cmd.substr(end); } begin = cmd.indexOf(beginMarker); if (begin >= 0) { cmd = cmd.substr(begin); cmd2 = cmd.substr(0, cmd.indexOf(endMarker) - 1) ; } cmd = decodeURI(cmd1); if (cmd2 != '') cmd += '\t\t' + decodeURI(cmd2); cmd = cmd.toString().replace(/\\t/g, '\t'); if (cmd != '') doit(cmd); } } function bubbleToDoubleClickSensitiveObject (obj) { if (!obj) return null; var target = obj; if (!obj.getAttribute || !obj.getAttribute("type") || obj.getAttribute("type") != "d") target = bubbleToDoubleClickSensitiveObject( obj.parentElement ); return target; } function getDrillLinkCommand (obj) { var drillLink; if (obj.tagName == "A" && obj.onclick != null && obj.onclick.toString().indexOf("DG:") >= 0) return obj.onclick; if ( obj.hasChildNodes() ) { var children = obj.childNodes; for (var i=0; i < children.length; i++) { var child = children[i]; if (child.tagName == "A" && child.onclick != null && child.onclick.toString().indexOf("DG:") >= 0) return child.onclick; if (child.hasChildNodes()) drillLink = getDrillLinkCommand(child); if (drillLink) break; } } return drillLink; } function doColumnReplaceCommand (code, level) { var dndManager = topparent.getGlobal("dndManager"); var catInfo = new DragInfo (dndManager.getData()); var cmd = doPreUnhideCommand(); cmd += rootCommands["EDGE"] + optionCommands["REPLACE"] + ':'; cmd += 'C'; cmd += level; //target level cmd += '\tD'; cmd += catInfo['dim']; cmd += '\t'; cmd += catInfo['ppds_id']; cmd += ','; cmd += catInfo['dim']; cmd += ';'; cmd += catInfo['code']; doCommand(cmd); } function doColumnNestCommand (code, level, dimIdx) { var dndManager = topparent.getGlobal("dndManager"); var catInfo = new DragInfo (dndManager.getData()); var cmd = doPreUnhideCommand(); cmd += rootCommands["EDGE"] + optionCommands["NEST"] + ':'; cmd += 'C'; cmd += level; //target level cmd += '\tD'; cmd += catInfo['dim']; cmd += '\t'; cmd += catInfo['level']; if ( catInfo['dim'] != dimIdx ) // nesting a different dimension... { cmd += '\t\t'; cmd += rootCommands["DRILL"] + optionCommands["GROUP"] + ':'; cmd += 'C'; cmd += parseInt(level) + 1; cmd += '\t'; cmd += catInfo['ppds_id']; cmd += ','; cmd += catInfo['dim']; cmd += ';'; cmd += catInfo['code']; } doCommand(cmd); } function doRowReplaceCommand (code, level) { var dndManager = topparent.getGlobal("dndManager"); var catInfo = new DragInfo (dndManager.getData()); var cmd = doPreUnhideCommand(); cmd += rootCommands["EDGE"] + optionCommands["REPLACE"] + ':'; cmd += 'R'; cmd += level; //target level cmd += '\tD'; cmd += catInfo['dim']; cmd += '\t'; cmd += catInfo['ppds_id']; cmd += ','; cmd += catInfo['dim']; cmd += ';'; cmd += catInfo['code']; doCommand(cmd); } function doRowNestCommand (code, level, dimIdx) { var dndManager = topparent.getGlobal("dndManager"); var catInfo = new DragInfo (dndManager.getData()); var cmd = doPreUnhideCommand(); cmd += rootCommands["EDGE"] + optionCommands["NEST"] + ':'; cmd += 'R'; cmd += level; cmd += '\tD'; cmd += catInfo['dim']; cmd += '\t'; cmd += catInfo['level']; if ( catInfo['dim'] != dimIdx ) // nesting a different dimension... { cmd += '\t\t'; cmd += rootCommands["DRILL"] + optionCommands["GROUP"] + ':'; cmd += 'R'; cmd += parseInt(level) + 1; cmd += '\t'; cmd += catInfo['ppds_id']; cmd += ','; cmd += catInfo['dim']; cmd += ';'; cmd += catInfo['code']; } doCommand(cmd); } function doReplaceMeasureCommand (measureNo) { var dndManager = topparent.getGlobal("dndManager"); var catInfo = new DragInfo (dndManager.getData()); var cmd = rootCommands["DRILL"] + optionCommands["CATEGORY"] + ':'; cmd += catInfo['ppds_id']; cmd += ','; cmd += catInfo['dim']; cmd += ';'; cmd += catInfo['code']; if (measureNo > 1) { cmd += "\t" + (parseInt(catInfo['dim']) + measureNo - 1); } doCommand(cmd); } function doPreUnhideCommand () { var dndManager = topparent.getGlobal("dndManager"); var catInfo = new DragInfo (dndManager.getData()); var cmd = ""; if (topparent.getGlobal("gDimensionInfo")[catInfo['dim']].isMeasureDimension) { //unhide it so we are sure it will be visible cmd = "MS:0\t" + constructOperandId(catInfo['ppds_id'],catInfo['dim'],catInfo['code']) + "\t\t"; } return cmd; } function replaceApos(txt) { var res=""; for (var i=0; i"); if (idx != -1) info = info.substring(0,idx); var arr = info.split('@'); for (var i = 0; i < arr.length; i+=2) { var cmd = "this."; cmd += arr[i]; cmd += " = '"; cmd += replaceApos(arr[i+1]); cmd += "'"; eval (cmd); } } function doPageDown (event, row, col) { var cmd = buildPageCommand(row, col); doCommand(cmd); var mgr = new eventManager(event); mgr.cancelBubble(); } function doPageRight (event, row, col) { var cmd = buildPageCommand(row, col); doCommand(cmd); var mgr = new eventManager(event); mgr.cancelBubble(); } function doPageUp (event, row, col) { var cmd = buildPageCommand(row, col); doCommand(cmd); var mgr = new eventManager(event); mgr.cancelBubble(); } function doPageLeft (event, row, col) { var cmd = buildPageCommand(row, col); doCommand(cmd); var mgr = new eventManager(event); mgr.cancelBubble(); } function buildPageCommand(row, col) { var cmd = rootCommands["PAGE"] + optionCommands["GROUP"] + ':'; if (parseInt(row)) cmd += row; else cmd += '0'; cmd += '\t'; if (parseInt(col)) cmd += col; else cmd += '0'; return cmd; } function doCommand (cmd) { doit(cmd); } function filterDim(args) { var code = args[3]; var dimIdx = args[6]; var ppds_id = args[7]; var codeSep = topparent.getGlobal("codeSeparator"); var idx = code.lastIndexOf(codeSep); if (idx != -1) code = code.substring(idx+1,code.length); var idx = ppds_id.lastIndexOf(codeSep); if (idx != -1) ppds_id = ppds_id.substr(idx+1,ppds_id.length); var cmd = "DC:"+ppds_id+","+dimIdx+";"+code; doCommand(cmd); }