123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656 |
- /*
- *+------------------------------------------------------------------------+
- *| Licensed Materials - Property of IBM
- *| IBM Cognos Products: Viewer
- *| (C) Copyright IBM Corp. 2001, 2018
- *|
- *| US Government Users Restricted Rights - Use, duplication or
- *| disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- *|
- *+------------------------------------------------------------------------+
- */
- // This JavaScript file is used for conducting drill through
- // It delegates drill functionality to the parent (normaly the RV)
- // Otherwise it does nothing.
- function sXmlEncode(sInputString)
- {
- var sOutputString = "" + sInputString;
- if ((sOutputString == '0') || ((sInputString != null) && (sInputString != false)))
- {
- //&
- sOutputString = sOutputString.replace(/&/g, "&");
- //<
- sOutputString = sOutputString.replace(/</g, "<");
- //>
- sOutputString = sOutputString.replace(/>/g, ">");
- //"
- sOutputString = sOutputString.replace(/"/g, """);
- //'
- sOutputString = sOutputString.replace(/'/g, "'");
- }
- else if (sInputString == null)
- {
- //return empty string if the value is null or false
- sOutputString = "";
- }
- return sOutputString;
- }
- function createFormField(name, value)
- {
- var formField = document.createElement("input");
- formField.setAttribute("type", "hidden");
- formField.setAttribute("name", name);
- formField.setAttribute("value", value);
- return(formField);
- }
- function setBackURLToCloseWindow(oForm)
- {
- var aInputNodes = oForm.childNodes;
- if(aInputNodes)
- {
- for(var iChildIdx = 0; iChildIdx < aInputNodes.length; ++iChildIdx)
- {
- var oInput = aInputNodes[iChildIdx];
- var sName = oInput.getAttribute("name");
- if(sName && sName == "ui.backURL")
- {
- oForm.removeChild(oInput);
- }
- }
- }
- oForm.appendChild(createFormField("ui.backURL", "javascript:window.close();"));
- }
- //
- // There are multiple drill targets, the XTS page will take care of it
- //
- function doMultipleDrills(drillTargets,cvId)
- {
- if (parent != this && parent.doMultipleDrills)
- {
- if (getCVId() != "" && getCVId() != cvId) {
- cvId = getCVId();
- }
- return parent.doMultipleDrills(drillTargets, cvId);
- }
- else
- {
- if (window.gViewerLogger)
- {
- window.gViewerLogger.log('Drill Targets', drillTargets, "text");
- }
- var oCV = null;
- try
- {
- oCV = getCognosViewerObjectRef(cvId);
- }
- catch(exception){}
- var drillForm = buildDrillForm(oCV);
- addDrillEnvironmentFormFields(drillForm, oCV);
- if(typeof oCV != "undefined" && oCV != null)
- {
- var modelPath = oCV.getModelPath();
- drillForm.appendChild(createFormField("modelPath", modelPath));
- var selectionController = oCV.getSelectionController();
- var sSelectionContext = "";
- if(typeof getViewerSelectionContext != "undefined" && typeof CSelectionContext != "undefined")
- {
- sSelectionContext = getViewerSelectionContext(selectionController, new CSelectionContext(modelPath));
- }
- drillForm.appendChild(createFormField("drillContext", sSelectionContext));
- drillForm.appendChild(createFormField("modelDrillEnabled", selectionController.getModelDrillThroughEnabled()));
- if(typeof document.forms["formWarpRequest" + oCV.getId()]["ui.object"] != "undefined" && document.forms["formWarpRequest" + oCV.getId()]["ui.object"].value != "")
- {
- drillForm.appendChild(createFormField("drillSource", document.forms["formWarpRequest" + oCV.getId()]["ui.object"].value));
- }
- else if(typeof oCV.envParams["ui.spec"] != "undefined")
- {
- drillForm.appendChild(createFormField("sourceSpecification", oCV.envParams["ui.spec"]));
- }
- }
- drillForm.setAttribute("launchGotoPage", "true");
- drillForm.appendChild(createFormField("drillTargets", drillTargets));
- drillForm.appendChild(createFormField("invokeGotoPage", "true"));
- drillForm.appendChild(createFormField("m", "portal/drillthrough.xts"));
- drillForm.appendChild(createFormField("b_action", "xts.run"));
- var target = "winNAT_" + ( new Date() ).getTime();
- var sWebContentRoot = "..";
- if (oCV != null)
- {
- sWebContentRoot = oCV.getWebContentRoot();
- var sExecutionParameters = oCV.getExecutionParameters();
- if(sExecutionParameters != "")
- {
- drillForm.appendChild(createFormField("encExecutionParameters", sExecutionParameters));
- }
- }
- // Used to override the default behavior when we're in mobile so that we
- // call their proxy
- if (!oCV || !oCV.launchGotoPageForIWidgetMobile(drillForm)) {
- if (oCV && typeof oCV.launchGotoPage === "function") {
- oCV.launchGotoPage(drillForm);
- }
- else {
- var sPath = sWebContentRoot + "/rv/blankDrillWin.html";
- drillForm.target = target;
- window.open( sPath, target );
- }
- }
- }
- }
- function buildDrillForm(oCV)
- {
- var drillForm = document.getElementById("drillForm");
- if(drillForm)
- {
- document.body.removeChild(drillForm);
- }
- drillForm = document.createElement("form");
- if(typeof oCV != "undefined" && oCV != null)
- {
- var mainForm = document.getElementById("formWarpRequest" + oCV.getId());
- drillForm.setAttribute("target", mainForm.getAttribute("target"));
- drillForm.setAttribute("action", mainForm.getAttribute("action"));
- }
- else
- {
- drillForm.setAttribute("action", location.pathname);
- }
- drillForm.setAttribute("id", "drillForm");
- drillForm.setAttribute("name", "drillForm");
- drillForm.setAttribute("method", "post");
- drillForm.style.display = "none";
- document.body.appendChild(drillForm);
- return drillForm;
- }
- function addDrillEnvironmentFormFields(drillForm, oCV)
- {
- if (window.g_dfEmail) {
- drillForm.appendChild(createFormField("dfemail", window.g_dfEmail));
- }
- if(oCV != null)
- {
- drillForm.appendChild(createFormField("cv.id", oCV.getId()));
- if(typeof oCV.envParams["ui.sh"] != "undefined")
- {
- drillForm.appendChild(createFormField("ui.sh", oCV.envParams["ui.sh"]));
- }
- if(oCV.getViewerWidget() == null)
- {
- if(typeof oCV.envParams["cv.header"] != "undefined")
- {
- drillForm.appendChild(createFormField("cv.header", oCV.envParams["cv.header"]));
- }
- if(typeof oCV.envParams["cv.toolbar"] != "undefined")
- {
- drillForm.appendChild(createFormField("cv.toolbar", oCV.envParams["cv.toolbar"]));
- } else {
- var passPortletToolbarStateOnDrillThrough = oCV.getAdvancedServerProperty("VIEWER_PASS_PORTLET_TOOLBAR_STATE_ON_DRILLTHROUGH");
- if(oCV.m_viewerFragment && passPortletToolbarStateOnDrillThrough != null && passPortletToolbarStateOnDrillThrough === true ) {
- var showToolbar = oCV.m_viewerFragment.canShowToolbar() ? "true" : "false";
- drillForm.appendChild(createFormField("cv.toolbar", showToolbar));
- }
- }
- }
- if(typeof oCV.envParams["ui.backURL"] != "undefined")
- {
- drillForm.appendChild(createFormField("ui.backURL", oCV.envParams["ui.backURL"]));
- }
- if(typeof oCV.envParams["ui.postBack"] != "undefined")
- {
- drillForm.appendChild(createFormField("ui.postBack", oCV.envParams["ui.postBack"]));
- }
- if(typeof oCV.envParams["savedEnv"] != "undefined")
- {
- drillForm.appendChild(createFormField("savedEnv", oCV.envParams["savedEnv"]));
- }
- if(typeof oCV.envParams["ui.navlinks"] != "undefined")
- {
- drillForm.appendChild(createFormField("ui.navlinks", oCV.envParams["ui.navlinks"]));
- }
- if(typeof oCV.envParams["lang"] != "undefined")
- {
- drillForm.appendChild(createFormField("lang", oCV.envParams["lang"]));
- }
- if(typeof oCV.envParams["ui.errURL"] != "undefined")
- {
- drillForm.appendChild(createFormField("ui.errURL", oCV.envParams["ui.errURL"]));
- }
- var routingServerGroup = "";
- if(oCV.envParams["ui.routingServerGroup"])
- {
- routingServerGroup = oCV.envParams["ui.routingServerGroup"];
- }
- drillForm.appendChild(createHiddenFormField("ui.routingServerGroup", routingServerGroup));
- }
- else
- {
- drillForm.appendChild(createFormField("cv.header", "false"));
- drillForm.appendChild(createFormField("cv.toolbar", "false"));
- }
- }
- function appendReportHistoryObjects(oCV,drillForm)
- {
- if(oCV != null && typeof oCV.rvMainWnd != "undefined" && drillForm != null)
- {
- oCV.rvMainWnd.addCurrentReportToReportHistory();
- var reportHistorySpecification = oCV.rvMainWnd.saveReportHistoryAsXML();
- drillForm.appendChild(createFormField("cv.previousReports", reportHistorySpecification));
- }
- }
- function doSingleDrill(target,args,method,format,locale,bookmark,sourceContext,objectPaths,cvId,sPrompt,dynamicDrill)
- {
- var sCVId = "";
- if (typeof cvId == "string") {
- sCVId = cvId;
- }
- var oCV = null;
- try
- {
- oCV = getCognosViewerObjectRef(cvId);
- }
- catch(exception){}
- if (!oCV && parent != this && parent.doSingleDrill)
- {
- // if we're currently in an iframe, try and get the correct cvId from the iframe
- if (getCVId() != "" && getCVId() != cvId) {
- cvId = getCVId();
- }
- // Call the method in the parent which is most likely the RV
- return parent.doSingleDrill(target, args, method, format, locale, bookmark, sourceContext, objectPaths,cvId,sPrompt,dynamicDrill);
- }
- else
- {
- if(typeof method == "undefined")
- {
- method = "default";
- }
- else if(method == "execute")
- {
- method = "run";
- }
- // always open a new window if the drill through is set to edit and we're in a portlet
- if (method == "edit" && oCV != null && typeof oCV.m_viewerFragment) {
- target = "_blank";
- }
-
- var drillForm = buildDrillForm(oCV);
- var sDrillSpecification = "<authoredDrillRequest>";
- sDrillSpecification += "<param name=\"action\">" + sXmlEncode(method) + "</param>";
- sDrillSpecification += "<param name=\"target\">" + sXmlEncode(args[0][1]) + "</param>";
- sDrillSpecification += "<param name=\"format\">" + sXmlEncode(format) + "</param>";
- sDrillSpecification += "<param name=\"locale\">" + sXmlEncode(locale) + "</param>";
- sDrillSpecification += "<param name=\"prompt\">" + sXmlEncode(sPrompt) + "</param>";
- sDrillSpecification += "<param name=\"dynamicDrill\">" + sXmlEncode(dynamicDrill) + "</param>";
- if(typeof oCV != "undefined" && oCV != null)
- {
- sDrillSpecification += "<param name=\"sourceTracking\">" + oCV.getTracking() + "</param>";
- if(typeof document.forms["formWarpRequest" + oCV.getId()]["ui.object"] != "undefined")
- {
- sDrillSpecification += "<param name=\"source\">" + sXmlEncode(document.forms["formWarpRequest" + oCV.getId()]["ui.object"].value) + "</param>";
- }
- var modelPath = oCV.getModelPath();
- sDrillSpecification += "<param name=\"metadataModel\">" + sXmlEncode(modelPath) + "</param>";
- sDrillSpecification += "<param name=\"selectionContext\">" + sXmlEncode(getViewerSelectionContext(oCV.getSelectionController(), new CSelectionContext(modelPath))) + "</param>";
- if(typeof document.forms["formWarpRequest" + oCV.getId()]["ui.object"] != "undefined" && document.forms["formWarpRequest" + oCV.getId()]["ui.object"].value != "")
- {
- sDrillSpecification += "<param name=\"source\">" + sXmlEncode(document.forms["formWarpRequest" + oCV.getId()]["ui.object"].value) + "</param>";
- }
- else if(typeof oCV.envParams["ui.spec"] != "undefined")
- {
- sDrillSpecification += "<param name=\"sourceSpecification\">" + sXmlEncode(oCV.envParams["ui.spec"]) + "</param>";
- }
- }
- if (bookmark != "")
- {
- sDrillSpecification += "<param name=\"bookmark\">" + bookmark + "</param>";
- }
- if(method != "view")
- {
- if(typeof sourceContext != "undefined")
- {
- sDrillSpecification += "<param name=\"sourceContext\">" + sXmlEncode(sourceContext) + "</param>";
- }
- if(typeof objectPaths != "undefined")
- {
- sDrillSpecification += "<param name=\"objectPaths\">" + sXmlEncode(objectPaths) + "</param>";
- }
- }
- var idxArg = 0;
- sDrillSpecification += "<drillParameters>";
- var aDrillSpecParams = [];
-
- for (idxArg = 1; idxArg < args.length; idxArg++)
- {
- // HS 622739 : RSVP currently inconsistent about substituting MUN for useValue. This code can be
- // reverted once a clear contract is designed between RSVP and Viewer.
- var sSel = args[idxArg][1];
- if ( format == 'HTML' && (sSel.indexOf("<selectChoices") == 0) )
- {
- var selectionChoicesSpecification = XMLHelper_GetFirstChildElement( XMLHelper_GetFirstChildElement( XMLBuilderLoadXMLFromString (args[idxArg][1]) ));
- if (selectionChoicesSpecification)
- {
- var sMun = selectionChoicesSpecification.getAttribute("mun");
- if(sMun != null && sMun != "")
- {
- selectionChoicesSpecification.setAttribute("useValue", sMun);
- sSel = "<selectChoices>" + XMLBuilderSerializeNode(selectionChoicesSpecification) + "</selectChoices>";
- }
- }
- }
- // End HS 622739.
-
- var paramName = args[idxArg][0];
-
- var bFound = false;
- for (var i = 0; i < aDrillSpecParams.length; i++) {
- var param = aDrillSpecParams[i];
- if (param.name === paramName && param.value === sSel) {
- bFound = true;
- break;
- }
- }
-
- if (!bFound) {
- aDrillSpecParams.push({"name" : paramName, "value" : sSel});
- sDrillSpecification += "<param name=\"" + sXmlEncode(paramName) + "\">" + sXmlEncode(sSel) + "</param>";
- }
- }
- sDrillSpecification += "</drillParameters>";
- sDrillSpecification += getExecutionParamNode(oCV);
- sDrillSpecification += "</authoredDrillRequest>";
- drillForm.appendChild(createFormField("authoredDrill.request", sDrillSpecification));
- drillForm.appendChild(createFormField("ui.action", "authoredDrillThrough2"));
- drillForm.appendChild(createFormField("b_action", "cognosViewer"));
- addDrillEnvironmentFormFields(drillForm, oCV);
- // executeDrillThroughForIWidgetMobile will return true if it executed the drill through
- if (!oCV || !oCV.executeDrillThroughForIWidgetMobile(drillForm)) {
- // Used to override the default drill of submitting a form
- if (oCV && typeof oCV.sendDrillThroughRequest === "function") {
- oCV.sendDrillThroughRequest(drillForm);
- }
- // <!-- if drill through format isXLS or CSV or we're in a fragment then ALWAYS open a new window -->
- else if(target == "" && oCV != null && typeof oCV.m_viewerFragment != "undefined")
- {
- oCV.m_viewerFragment.raiseAuthoredDrillEvent(sDrillSpecification);
- }
- else if( (oCV != null && oCV.getViewerWidget() != null) || target != "" )
- {
- setBackURLToCloseWindow(drillForm);
-
- var sTarget = "winNAT_" + ( new Date() ).getTime();
-
- var sWebContentRoot = "..";
-
- if (oCV != null)
- {
- sWebContentRoot = oCV.getWebContentRoot();
- }
-
- var sPath = sWebContentRoot + "/rv/blankDrillWin.html";
- if (sCVId)
- {
- sPath += "?cv.id=" + sCVId;
- }
- // if there is no classic viewer (oCV) we should be able to
- // assume that there is no glass either
- // in that case we should call the classicviewer perspective
- // and pass in the drillForm.
- if (oCV == null)
- {
- // window.location.hrefwould look similar to the following
- // http://localhost/ibmcognos/bidev/v1/disp/repository/sid/cm/oid/id68a0f47a5a24cfd98a120bdba15882b/content
- // we want to get everything from the beginning of the string to /v1
- sPath = window.location.href.substring(0,window.location.href.indexOf("/v1"));
- // sPath now equals
- // http://localhost/ibmcognos/bidev
- sPath += "/?perspective=classicviewer";
- // sPath now equals
- // http://localhost/ibmcognos/bidev/?perspective=classicviewer
- // we want to use the alternative drill path
- sPath += "&altDrillFlag=true";
- // add the format (really for PDF so the perspective can react accordingly)
- sPath += "&format=" + sXmlEncode(format);
-
- // Give the form a unique name
- var v_sLabel = drillForm.getAttribute("name") + Date.now().toString();
- drillForm.setAttribute("name", v_sLabel);
- // store the form (in string form) into the browser storage
- if (typeof(Storage) !== "undefined") {
- localStorage.setItem(v_sLabel, drillForm.outerHTML);
- // put this unique identifer into the parameters to pass
- sPath += "&drillFormLabel=" + v_sLabel;
- // sPath now equals
- // http://localhost/ibmcognos/bidev/?perspective=classicviewer&drillFormLabel=<some unique label>
- }
- else
- {
- console.log("Sorry! No Web Storage support...");
- }
- }
-
- if (window.gViewerLogger)
- {
- window.gViewerLogger.log('Drill Specification', sDrillSpecification, "xml");
- }
-
- drillForm.target = sTarget;
- newWindow = window.open( sPath, sTarget );
- }
- else
- {
- appendReportHistoryObjects(oCV, drillForm);
-
- if (window.gViewerLogger)
- {
- window.gViewerLogger.log('Drill Specification', sDrillSpecification, "xml");
- }
-
- drillForm.target = (oCV && oCV.getDrillFormTarget) ? oCV.getDrillFormTarget() : "_self";
- drillForm.submit();
- if (oCV != null && !oCV.getDrillFormTarget)
- {
- setTimeout(getCognosViewerObjectRefAsString(oCV.getId())+".getRequestIndicator().show()",10);
- }
- }
- }
- }
- }
- function getExecutionParamNode(oCV)
- {
- var sExecutionParamNode = "";
- if(typeof oCV != "undefined" && oCV != null)
- {
- var sExecutionParameters = oCV.getExecutionParameters();
- if(sExecutionParameters != "")
- {
- sExecutionParamNode += "<param name=\"executionParameters\">";
- sExecutionParamNode += sXmlEncode(sExecutionParameters);
- sExecutionParamNode += "</param>";
- }
- }
- return sExecutionParamNode;
- }
- function doSingleDrillThrough(drillThroughContext, bookmarkRef, cvId)
- {
- // handle a single drill
- var drillTargetRefIdx = drillThroughContext[0][0];
- if(typeof drillTargetRefIdx == "undefined" || drillTargetRefIdx == null) {
- return;
- }
- var drillTargetRef = cvId && window[cvId + "drillTargets"] ? window[cvId + "drillTargets"][drillTargetRefIdx] : drillTargets[drillTargetRefIdx];
- if(typeof drillTargetRef == "undefined") {
- return;
- }
- // check for the case of a local bookmark
- if(bookmarkRef != '' && drillTargetRef.getPath() == '') {
- document.location = "#" + bookmarkRef;
- } else {
- var args = [];
- args[args.length] = ["ui.object", drillTargetRef.getPath()];
- for(var drillParmIdx = 1; drillParmIdx < drillThroughContext.length; ++drillParmIdx) {
- args[args.length] = drillThroughContext[drillParmIdx];
- }
- var target="";
- if(drillTargetRef.getShowInNewWindow()=='true') {
- target = "_blank";
- }
- var parametersString = drillTargetRef.getParameters();
- var objectPaths = drillTargetRef.getObjectPaths();
- var oCVId = cvId;
- if (!cvId)
- {
- oCVId = getCVId();
- }
- doSingleDrill(target, args, drillTargetRef.getMethod(), drillTargetRef.getOutputFormat(), drillTargetRef.getOutputLocale(), bookmarkRef, parametersString, objectPaths, oCVId, drillTargetRef.getPrompt(), false);
- }
- }
- function getCVId()
- {
- var sCVId = "";
- try
- {
- sCVId = this.frameElement.id.substring("CVIFrame".length);
- }
- catch(exception){}
- return sCVId;
- }
- function doMultipleDrillThrough(drillThroughContext, cvId)
- {
- // handle multiple drills
- var drillThroughTargetStr = '<rvDrillTargets>';
- for(var drillTargetIdx = 0; drillTargetIdx < drillThroughContext.length; ++drillTargetIdx) {
- var currentDrillThroughContext = drillThroughContext[drillTargetIdx];
- if(currentDrillThroughContext.length < 3) {
- // there must be three or more parameters (drill idx, drill label and the drill parameters)
- continue;
- }
- var drillTargetRefIdx = currentDrillThroughContext[0];
- if(typeof drillTargetRefIdx == "undefined" || drillTargetRefIdx == null) {
- continue;
- }
- var drillTargetLabel = currentDrillThroughContext[1];
- if (typeof drillTargetLabel == "undefined" || drillTargetLabel == null) {
- continue;
- }
- var drillTargetRef = cvId && window[cvId + "drillTargets"] ? window[cvId + "drillTargets"][drillTargetRefIdx] : drillTargets[drillTargetRefIdx];
- if(typeof drillTargetRef == "undefined" || drillTargetRef == null) {
- continue;
- }
- if(drillTargetLabel === null || drillTargetLabel === "")
- {
- drillTargetLabel = drillTargetRef.getLabel();
- }
- drillThroughTargetStr += '<drillTarget ';
- drillThroughTargetStr += 'outputFormat="'; drillThroughTargetStr += drillTargetRef.getOutputFormat(); drillThroughTargetStr += '" ';
- drillThroughTargetStr += 'outputLocale="'; drillThroughTargetStr += drillTargetRef.getOutputLocale(); drillThroughTargetStr += '" ';
- drillThroughTargetStr += 'label="'; drillThroughTargetStr += sXmlEncode(drillTargetLabel); drillThroughTargetStr += '" ';
- drillThroughTargetStr += 'path="'; drillThroughTargetStr += sXmlEncode(drillTargetRef.getPath()); drillThroughTargetStr += '" ';
- drillThroughTargetStr += 'showInNewWindow="'; drillThroughTargetStr += drillTargetRef.getShowInNewWindow(); drillThroughTargetStr += '" ';
- drillThroughTargetStr += 'method="'; drillThroughTargetStr += drillTargetRef.getMethod(); drillThroughTargetStr += '" ';
- drillThroughTargetStr += 'prompt="'; drillThroughTargetStr += drillTargetRef.getPrompt(); drillThroughTargetStr += '" ';
- drillThroughTargetStr += 'dynamicDrill="'; drillThroughTargetStr += drillTargetRef.isDynamicDrillThrough(); drillThroughTargetStr += '">';
- for(var drillParmIdx = 2; drillParmIdx < currentDrillThroughContext.length; ++drillParmIdx) {
- drillThroughTargetStr += currentDrillThroughContext[drillParmIdx];
- }
- drillThroughTargetStr += drillTargetRef.getParameters();
- drillThroughTargetStr += drillTargetRef.getObjectPaths();
- drillThroughTargetStr += '</drillTarget>';
- }
- drillThroughTargetStr += '</rvDrillTargets>';
- if (!cvId) {
- cvId = getCVId();
- }
-
- doMultipleDrills(drillThroughTargetStr, cvId);
- }
|