var calcList; var sizeofCalcListItem = 2; function populateCalculationList (calcType, validCalcs, calcNumberType) { var calcNumberBreaks = new Array(0, 9, 13, 21, 22); var calcNumberBreaks = new Array(0, 9, 12, 20, 21); var calcNumberList = false; switch (calcType) { case "number": calcNumberList = new Array( "", "", "" /***** TEMPORARY *****/ //, //"" /***** TEMPORARY *****/ ); calcList = new Array( //Arithmetic "", "+", "", "-", "", "*", "", "/", "", "power", "", "absolute", "", "round", "", "round down", "", "sqrt", //Percentage "", "%", "", "% total Percentage", "", "% footer Percentage", "", "% difference", //Analytic "", "average", "", "maximum", "", "minimum", "", "rank", "", "% total Analytic", "", "percentile", "", "quartile", "", "quantile" /***** TEMPORARY *****/ //, //"", "concat" /***** TEMPORARY *****/ ); break; case "string": calcList = new Array( "", "left", "", "right", "", "concat", "", "trim" ); break; case "date": calcList = new Array( "", "-", "", "daysBetween", "", "monthsBetween", "", "yearsBetween", "", "addDays", "", "addMonths", "", "addYears", "", "min", "", "max", "", "year", "", "month", "", "week", "", "day" /***** TEMPORARY *****/ //, //"", "concat" /***** TEMPORARY *****/ ); break; case "time": calcList = new Array( "", "-", "", "min", "", "max", "", "hour", "", "minute", "", "second" /***** TEMPORARY *****/ //, //"", "concat" /***** TEMPORARY *****/ ); break; case "datetime": calcList = new Array( "", "-", "", "daysBetween", "", "monthsBetween", "", "yearsBetween", "", "addDays", "", "addMonths", "", "addYears", "", "min", "", "max", "", "year", "", "month", "", "week", "", "day", "", "hour", "", "minute", "", "second" /***** TEMPORARY *****/ //, //"", "concat" /***** TEMPORARY *****/ ); break; case "interval": calcList = new Array( "", "+", "", "-", "", "days", "", "max", "", "min", "", "rank" /***** TEMPORARY *****/ //, //"", "concat" /***** TEMPORARY *****/ ); break; default: calcList = new Array( "", "concat" ); break; } if (calcNumberList) { var ii, iiEnd; // populate calculation list switch (calcNumberType) { case "arithmetic": ii = 0; iiEnd = calcNumberBreaks[1]; break; case "percentage": ii = calcNumberBreaks[1]; iiEnd = calcNumberBreaks[2]; break; case "analytic": ii = calcNumberBreaks[2]; iiEnd = calcNumberBreaks[3]; break; default: ii = calcNumberBreaks[3]; iiEnd = calcNumberBreaks[4]; break; } for (var i = 0; i < validCalcs.length; i++) { if ((validCalcs[i] >= ii) && (validCalcs[i] < iiEnd)) { // calcList load var o = new Option(); o.name = calcList[validCalcs[i] * sizeofCalcListItem]; o.text = calcList[validCalcs[i] * sizeofCalcListItem]; o.value = calcList[validCalcs[i] * sizeofCalcListItem + 1]; document.f.calcList.options[document.f.calcList.options.length] = o; } } for (ii = 0; ii < calcNumberList.length; ii++) { // calcNumberList load var o = new Option(); o.name = calcNumberList[ii]; o.text = calcNumberList[ii]; o.value = calcNumberBreaks[ii]; document.f.calcNumberList.options[document.f.calcNumberList.options.length] = o; } } else { // populate calculation list for (var i = 0; i < validCalcs.length; i++) { // calcList load var o = new Option(); o.name = calcList[validCalcs[i] * sizeofCalcListItem]; o.text = calcList[validCalcs[i] * sizeofCalcListItem]; o.value = calcList[validCalcs[i] * sizeofCalcListItem + 1]; document.f.calcList.options[document.f.calcList.options.length] = o; } } getConfigFrame().cfgRemove("CALCULATION_REFRESH"); } function loadHint() { if (document.f.calc_hint != null) document.f.calc_hint.value = generateName(true); else setTimeout("loadHint()", 10); } function onSelOperation() { if (typeof load == "function") load (); setGlobals(calcType, false); if (!getConfigFrame().refreshNewCalculation(calcType, getConfigFrame().cfgGet("CALCULATION_REFRESH"))) loadHint (); } function setGlobals(calcType, bClear) { var cf = getConfigFrame(); // keep previous selection var _calcIndex = cf.cfgGet("CALCULATION_INDEX_" + calcType.toUpperCase()); if (_calcIndex != null) cf.cfgSet("CALCULATION_PREVIOUS_INDEX_" + calcType.toUpperCase(), _calcIndex); if (bClear) { cf.cfgRemove("CALCULATION_INDEX_" + calcType.toUpperCase()); cf.cfgRemove("CALCULATION_INDEX_" + calcType.toUpperCase() + "_BUMPER"); } else { if (document.f.calcNumberList) { cf.cfgSet("CALCULATION_INDEX_NUMERIC_TYPE", document.f.calcNumberList.selectedIndex); cf.cfgSet("CALCULATION_INDEX_NUMERIC_TYPE_VALUE", document.f.calcNumberList[document.f.calcNumberList.selectedIndex].value); var indexToUse = -1; for (var i = 0; i < calcList.length; i++) { if (document.f.calcList.value == calcList[i]) { indexToUse = (i - 1) / sizeofCalcListItem; indexToUse -= document.f.calcNumberList[document.f.calcNumberList.selectedIndex].value; break; } } if (indexToUse >= 0) cf.cfgSet("CALCULATION_INDEX_" + calcType.toUpperCase() + "_BUMPER", indexToUse); else cf.cfgRemove("CALCULATION_INDEX_" + calcType.toUpperCase() + "_BUMPER"); } else cf.cfgRemove("CALCULATION_INDEX_" + calcType.toUpperCase() + "_BUMPER"); cf.cfgSet("CALCULATION_INDEX_" + calcType.toUpperCase(), document.f.calcList.selectedIndex); } if (cf && cf.showDialogFrame) cf.showDialogFrame(475); cf.showDialogFrame(410); } function removeInsert() { document.getElementById("calcInsert").removeAttribute("href"); } function addInsert() { document.getElementById("calcInsert").setAttribute("href", "javascript:doInsert(null)"); } function doInsert(evt) { if(goDialogManager.isSpaceOrEnterKeyEvent(evt)) { setGlobals(calcType, true); execute(); } } function cancelDialog(evt) { if(goDialogManager.isSpaceOrEnterKeyEvent(evt)) { setGlobals(calcType, true); getConfigFrame().hideDialogFrame(); } } function stringReplace(origString, valToReplace, newString) { var strRegExp = new RegExp(); strRegExp.compile(valToReplace, "g"); //if we have $ in string then replace $ lteral with $$ literal as $ carries special meaning of "End of String" var repNewString = new String(newString); repNewString = repNewString.replace(/\$/g,"$$$$"); return origString.replace(strRegExp, repNewString); } function catchSubmit(iKeyCode) { //catch the Enter key code if (iKeyCode == 13) { execute(); } } function updateValueField(substString, substValue) { //the case where text boxes need to be seamlessley hidden and shown depending on the type of data if (document.getElementById("textBoxNumeric")) { if (substString == null) { if (getDisplayStyle("textBoxNumeric") != "none" && textBoxnumberValue && textBoxnumberValue.isValid()) { textBoxnumberValue.m_oForm.select(); } else { if (textBoxstringValue) { textBoxstringValue.clear(); } setDisplayStyle("textBoxString", "none"); if (document.all) setDisplayStyle("textBoxNumeric", "inline"); else setDisplayStyle("textBoxNumeric", "table-cell"); if (textBoxnumberValue && textBoxnumberValue.m_oForm) { textBoxnumberValue.m_oForm.select(); } redrawHint(); } } else { if (textBoxnumberValue) { textBoxnumberValue.clear(); } setDisplayStyle("textBoxNumeric", "none"); if (document.all) setDisplayStyle("textBoxString", "inline"); else setDisplayStyle("textBoxString", "table-cell"); if (textBoxstringValue && textBoxstringValue.m_oForm) { textBoxstringValue.m_oForm.value=substString; } substVarValue = substValue; redrawHint(); } } //the case where the textbox does not need to be hidden since a radio button is provided else { document.f.inputValueRadio[1].checked = true; if (textBoxstringValue && textBoxstringValue.m_oForm) { textBoxstringValue.m_oForm.value = substString; } substVarValue = substValue; redrawHint(); } } function setDisplayStyle(id, styleValue) { var obj = document.getElementById(id); if (obj && obj.style && obj.style) { obj.style.display = styleValue; } } function getDisplayStyle(id) { var obj = document.getElementById(id); if (obj && obj.style && obj.style.display) { return obj.style.display; } return null; } function checkOverflowOnSelect(selectObj) { var minimumWidth = 260; selectObj.style.width = "auto"; if (selectObj.offsetWidth <= minimumWidth) selectObj.style.width = minimumWidth + "px"; } function getCalcName() { var calcName = ""; if (document.f.calc_label[1].checked == true) { calcName = document.f.calc_label_text.value; if (calcName == "") { calcName = generateName(); } } else { calcName = generateName(); } return calcName; }
javascript:if (event.keyCode == 13) execute();
var buttonContainerStyle = new CUIStyle('mainHeader3', '', '', '', ''); var buttonStyle = new CUIStyle('dialogButton', 'dialogButtonOver', '', '', ''); var menuItemStyle = new CUIStyle('menuItem_normal', 'menuItem_hover', '', '', 'menuItem_disabled'); var menuStyle = new CUIStyle('clsMenu', '', '', '', ''); var substButtonContainer = new CBar('buttonContainer', buttonContainerStyle, null, '/common/images/toolbar/'); var bHideMenuButton = true; var substButton = new CToolbarButton(substButtonContainer, '', '/qs/images/substitution_variables.gif', '', buttonStyle, true, null, null, ''); var substButtonDropDown = substButton.createDropDownMenu(menuStyle); new CMenuItem(substButtonDropDown, '', 'javascript:updateValueField(null, null);', '', menuItemStyle, '', ''); var numConstants = cf.dlgGlobalSize("xxSubstVarPair"); for (var i = 0; i < numConstants; i++) { var substVarPair = cf.dlgGlobalGetParmAt('xxSubstVarPair', i) new CMenuItem(substButtonDropDown, substVarPair[0], 'javascript:updateValueField("' + substVarPair[0] + '", "' + substVarPair[1] + '");', '', menuItemStyle, '', ''); } substButtonContainer.setMenuType(cHorizonalBar); substButtonContainer.setAlign('left'); substButtonContainer.draw();