123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965 |
- /****************************************************************
- ** Licensed Materials - Property of IBM
- **
- ** BI and PM: qs
- **
- ** (C) Copyright IBM Corp. 2001, 2015
- **
- ** US Government Users Restricted Rights - Use, duplication or
- ** disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- *****************************************************************/
- // Copyright (C) 2008 Cognos ULC, an IBM Company. All Rights Reserved.
- // Cognos and the Cognos logo are trademarks of Cognos ULC (formerly Cognos Incorporated) in the United States and/or other countries. IBM and the IBM logo are trademarks of International Business Machines Corporation in the United States, or other countries, or both. Other company, product, or service names may be trademarks or service marks of others.
- function CFilterSimple()
- {
- this.m_bFeatureRequiresQualityOfService = true;
- };
- CFilterSimple.prototype = new AFeatureObject();
- CFilterSimple.prototype.setup = function (aFeatureParams)
- {
- var sId = null;
- var bWizard = false;
- if (typeof aFeatureParams != "undefined" && aFeatureParams instanceof Array && aFeatureParams.length > 0)
- {
- sId = aFeatureParams[0];
- if (aFeatureParams.length > 1)
- {
- bWizard = aFeatureParams[1];
- }
- }
- showFilter(sId, bWizard);
- };
- var uniqNameList = {};
- var giFILTERCPLXMODE_SIMPLE=0;
- var giFILTERCPLXMODE_WIZARD=1;
- var giFILTERCPLXMODE_PRE_WIZARD=2;
- var gdialogType=null;
- var gPromptyType_SELECT_VALUE="6";
- var gPromptyType_SERVER_DEFINED="0"
- function getFilterMode()
- {
- var iMode = dlgGlobalGetParm("xxFilterComplexMode");
-
- switch (iMode)
- {
- case giFILTERCPLXMODE_SIMPLE:
- case giFILTERCPLXMODE_WIZARD:
- case giFILTERCPLXMODE_PRE_WIZARD:
- break;
- default:
- iMode = giFILTERCPLXMODE_SIMPLE;
- }
- return iMode;
- };
- function setFilterMode(iMode)
- {
- var old_iMode = getFilterMode();
- if (old_iMode != giFILTERCPLXMODE_WIZARD)
- {
- dlgGlobalSetParm("xxFilterComplexMode", iMode);
- }
- };
- function showFilter(sFilterId, bWizard)
- {
- cfgSet("LAST_DIALOG", "filter");
- if (sFilterId)
- {
- dlgReset();
- dlgGlobalReset(["xxNewFilter", "xxFCtab", "xxFilterComplexMode"]);
- dlgGlobalSetParm("xxShowTypeInDropDown", cf.checkCalcFunctionAgainstDB("FLEXIBLE_FILTERS"));
- dlgSetParm("xxFilterIsString", dlgGlobalGetParm("xxFilterIsString"));
- if (canUseQueryStudioAdvancedMode)
- {
-
-
- var oCC = getCombinedFilter();
- if (oCC)
- {
- setFilterMode(bWizard ? giFILTERCPLXMODE_PRE_WIZARD : giFILTERCPLXMODE_SIMPLE);
- var oFilter = oCC.getFilterById(sFilterId);
- if(oFilter)
- {
- filterColWithCFilter(oFilter);
- return;
- }
- }
- }
- else if (!canUseQueryStudioAdvancedMode && getCombinedFilter())
- {
- dlgShowMessage("FILTER_TITLE", "", "FILTER_CANNOT_CHANGE_COMPLEX");
- return;
- }
- if (! isModelFilter(sFilterId))
- {
-
-
- dlgGlobalSetParm("xxFilterComplexMode", giFILTERCPLXMODE_SIMPLE);
- var oMQMgr = goApplicationManager.getMiniQueryManager();
- var oColumn = oMQMgr.getColumnFromFilter(sFilterId);
- if (oColumn !== MINI_QUERY_NO_COLUMN_FOUND)
- {
- var iColumnIndex = oMQMgr.getColumnIndexByAttribute("id", oColumn.getAttribute("id"));
- filterCol(iColumnIndex);
- }
- }
- else
- {
- showModelFilter(sFilterId);
- }
- }
- else
- {
- fc();
- }
- return;
- };
- function showModelFilter(sId)
- {
- goApplicationManager.getFeatureManager().launchFeature(MODELFILTER_FEATURE_ID, ["MODELFILTER", sId]);
- };
- function fc()
- {
- var oMQMgr = goApplicationManager.getMiniQueryManager();
- cfgSet("LAST_DIALOG", "filter");
- var selColSize = cfgSize("SelColumns");
- var sel = cfgGetAt("SelColumns", 0);
- if (canUseQueryStudioAdvancedMode)
- {
-
- if (getFilterMode() != giFILTERCPLXMODE_SIMPLE)
- {
-
-
-
- if (!dlgGlobalGetParm("xxNewFilter"))
- {
- return;
- }
- }
- else
- {
- if (!checkForValidSelection(false))
- {
- if (selColSize == 0)
- {
- dlgShowMessage("FILTER_TITLE", "", "FILTER_NO_COLUMN");
- return;
- }
- else if (selColSize > 1)
- {
- dlgShowMessage("FILTER_TITLE", "", "FILTER_TOO_MANY_SELECTIONS");
- return;
- }
- cfgRemove("LAST_DIALOG");
- return;
- }
- dlgReset();
- dlgGlobalReset();
-
- setFilterMode(getFilterMode());
- var oColumn = oMQMgr.getColumnFromIndex(sel);
- var aFilters = oMQMgr.getFiltersForColumn(oColumn);
-
- if (aFilters && aFilters.length > 0)
- {
-
- dlgSetParm("m", "/" + qs_dir + "/filterActions.xts");
- dlgAddParm("xxName", encodeURIComponent(oMQMgr.getColumnLabel(sel)));
- for (var i = 0; i < aFilters.length; i++)
- {
- dlgAddParm("xxFilterId", aFilters[i].getAttribute('id'));
- }
- dlgSubmit();
- return;
- }
- else
- {
- cf.dlgGlobalSetParm("xxNewFilter", true);
- }
- }
- }
- else if (!canUseQueryStudioAdvancedMode && getCombinedFilter())
- {
- dlgShowMessage("FILTER_TITLE", "", "FILTER_CANNOT_CHANGE_COMPLEX");
- return;
- }
- if (selColSize == 0)
- {
- dlgShowMessage("FILTER_TITLE", "", "FILTER_NO_COLUMN");
- return;
- }
- if (selColSize > 1)
- {
- dlgShowMessage("FILTER_TITLE", "", "FILTER_TOO_MANY_SELECTIONS");
- return;
- }
- if (goApplicationManager.getMiniQueryManager().isReportExpression(sel))
- {
- dlgShowMessage("FILTER_TITLE", "", "FILTER_REPORT_EXPRESSION");
- return;
- }
- if (goApplicationManager.getMiniQueryManager().isCalculation(sel))
- {
- if (getCalcType(sel) == "unknown")
- {
- dlgShowMessage("FILTER_TITLE", "", "FILTER_INVALID_SELECTION");
- return;
- }
- }
- if (!checkForValidSelection(false))
- {
- return;
- }
- filterCol(sel);
- };
- function filterCol(iColumnIndex)
- {
- var oMQMgr = goApplicationManager.getMiniQueryManager();
- var iFilterDialogMode = getFilterMode();
- var bComplexNewFilter = dlgGlobalGetParm("xxNewFilter");
- var oColumn = oMQMgr.getColumnFromIndex(iColumnIndex);
- dlgReset();
- dlgGlobalReset(["xxNewFilter", "xxFCtab", "xxFilterComplexMode"]);
- var sColumnId = oMQMgr.getColumnId(oColumn);
- var iFilterDialogMode = getFilterDialogMode(sColumnId);
- if (iFilterDialogMode != null)
- {
- setFilterMode(iFilterDialogMode);
- }
- var sFilterType = setupFilterType(iColumnIndex);
-
- var aFilters = oMQMgr.getFiltersForColumn(sColumnId);
- var sFilterExpr = "";
- if (aFilters && aFilters.length > 0 && bComplexNewFilter != true)
- {
- sFilterExpr = aFilters[0];
-
-
-
- if (aFilters[0].getAttribute("negate") === "true")
- {
- dlgGlobalSetParm("xxNOT", "true");
- }
- var oFilter = (aFilters[0] instanceof CFilter ? aFilters[0] : new CFilter("", aFilters[0]));
-
-
- var sCFilterType = setupFilterTypeWithCFilter(oFilter);
- sFilterType = sCFilterType ? sCFilterType : sFilterType;
- }
- setFilterDialogValues(
- iColumnIndex,
- sFilterType,
- sFilterExpr,
- oMQMgr.getExpression(iColumnIndex),
- oMQMgr.getColumnLabel(iColumnIndex),
- oMQMgr.getPromptUseItemRef(iColumnIndex) );
- dlgGlobalSetParm("xxShowTypeInDropDown", cf.checkCalcFunctionAgainstDB("FLEXIBLE_FILTERS"));
- dlgSetParm("xxShowTypeInDropDown", dlgGlobalGetParm("xxShowTypeInDropDown"));
- dlgSetParm("xxFilterIsString", dlgGlobalGetParm("xxFilterIsString"));
- dlgSubmit();
- };
- function getFilterDialogMode(sColumnId)
- {
- var bComplexNewFilter = dlgGlobalGetParm("xxNewFilter");
- var oMQMgr = goApplicationManager.getMiniQueryManager();
- var iFilterDialogMode = getFilterMode();
- if (canUseQueryStudioAdvancedMode)
- {
- var aFilters = oMQMgr.getElementsByTagName("Filter");
-
- var bShouldUseSimpleMode = false;
- if (aFilters !== MINI_QUERY_NO_COLUMN_FOUND && aFilters.length >= 1)
- {
- for (var idxFilter = 0; idxFilter < aFilters.length; idxFilter++)
- {
- var nFilter = aFilters[idxFilter];
- if (nFilter && nFilter.parentNode && nFilter.parentNode.nodeName.match(/^column$/i) && nFilter.parentNode.getAttribute("id") == sColumnId)
- {
- bShouldUseSimpleMode = true;
- break;
- }
- }
-
- if (!bComplexNewFilter && bShouldUseSimpleMode)
- {
-
- iFilterDialogMode = giFILTERCPLXMODE_SIMPLE;
- }
- else if (iFilterDialogMode == giFILTERCPLXMODE_SIMPLE)
- {
-
- iFilterDialogMode = giFILTERCPLXMODE_PRE_WIZARD;
- }
- }
- else
- {
-
- iFilterDialogMode = giFILTERCPLXMODE_SIMPLE;
- }
- }
- return iFilterDialogMode;
- };
- function filterColWithCFilter(nFilter)
- {
- var oMQMgr = goApplicationManager.getMiniQueryManager();
- var oFilter = (nFilter instanceof CFilter ? nFilter : new CFilter("", nFilter));
- if (oFilter.isModelFilter())
- {
- showModelFilter(oFilter.getId());
- return;
- }
- dlgReset();
- dlgGlobalReset(["xxNewFilter", "xxFCtab", "xxFilterComplexMode"]);
- var sColLabel = "";
- var sColExpr = "";
- var sUseItem = "";
- var oColumn = oMQMgr.getColumnById(oFilter.getReference());
- if (oColumn === MINI_QUERY_NO_COLUMN_FOUND)
- {
-
-
-
- var arExprs = oFilter.getCondition().match(/(\[\w+\]\.*)+/);
- sColExpr = sColLabel = (arExprs && arExprs.length ? arExprs[0] : oFilter.getCondition());
- }
- else
- {
- sColLabel = oMQMgr.getColumnLabel(oColumn);
- sColExpr = oMQMgr.getExpression(oColumn);
- sUseItem = oMQMgr.getPromptUseItemRef(oColumn);
- }
- setFilterDialogValues(
- oColumn,
- setupFilterTypeWithCFilter(oFilter),
- oFilter,
- sColExpr,
- sColLabel,
- sUseItem );
- if (oFilter.getType() == gsFILTER_MODEL)
- {
- dlgGlobalSetParm("xxModelFilterStr", oFilter.getText());
- }
- if (oFilter.isNot())
- {
- dlgGlobalSetParm("xxNOT", "true");
- }
- dlgGlobalSetParm("xxFCid", oFilter.getId());
- if (canUseQueryStudioAdvancedMode)
- {
- if (dlgGlobalGetParm("xxFCtab") == "r")
- {
- dlgGlobalSetParm("xxBasedOn", "raw");
- }
- }
- dlgGlobalSetParm("xxShowTypeInDropDown", cf.checkCalcFunctionAgainstDB("FLEXIBLE_FILTERS"));
- dlgSetParm("xxShowTypeInDropDown", dlgGlobalGetParm("xxShowTypeInDropDown"));
- dlgSetParm("xxFilterIsString", dlgGlobalGetParm("xxFilterIsString"));
- dlgSubmit();
- };
- function setFilterDialogValues(iColumnIdx, sFilterType, oFilter, sColExpr, sColLabel, sUseExpr)
- {
- var hasFilterableSummaries = false;
- var oMQMgr = goApplicationManager.getMiniQueryManager();
- if (sFilterType == "-1")
- {
- dlgShowMessage("FILTER_TITLE", "", "FILTER_INVALID_SELECTION");
- return;
- }
- else if (sFilterType == "")
- {
- if (oMQMgr.isSummarised(iColumnIdx) && (oMQMgr.hasHeaderColumns() || oMQMgr.hasGroupedColumns()))
- {
- hasFilterableSummaries = true;
- }
- if (oMQMgr.isCalculation(iColumnIdx) || oMQMgr.isFakeMeasure(iColumnIdx) || (!oMQMgr.isMeasure(iColumnIdx) && !hasFilterableSummaries))
- {
- if (oMQMgr.isPercentCalculation(iColumnIdx))
- {
- dlgSetParm("xxIsPercent", true);
- }
- sFilterType = "/" + qs_dir + "/filterNumRange.xts";
- }
- else
- {
- sFilterType = "/" + qs_dir + "/filterNumSumRange.xts";
- }
- gdialogType = "number";
- }
- if (checkCalcFunctionAgainstDB("ces_is_null") && checkCalcFunctionAgainstDB("ces_is_not_null"))
- {
- dlgGlobalSetParm("xxIsNullAllowed", true);
- }
- else
- {
- dlgGlobalSetParm("xxIsNullAllowed", false);
- }
- if (checkCalcFunctionAgainstDB("ces_starts_with") && checkCalcFunctionAgainstDB("ces_contains") &&
- checkCalcFunctionAgainstDB("MEMBER_SEARCH_STARTS_WITH") && checkCalcFunctionAgainstDB("MEMBER_SEARCH_ENDS_WITH") &&
- checkCalcFunctionAgainstDB("MEMBER_SEARCH_CONTAINS"))
- {
- dlgGlobalSetParm("xxIsSearchAllowed", true);
- }
- else
- {
- dlgGlobalSetParm("xxIsSearchAllowed", false);
- }
-
-
- var f_pickList = [];
- var f_fromValue = "";
- var f_toValue = "";
- var f_basedOn = "";
- var nFilter = (oFilter.m_nNode ? oFilter.m_nNode : oFilter);
- var nFE = null;
- if (nFilter && nFilter.nodeName)
- {
- nFE = XMLHelper_FindChildByTagName(nFilter, gsFE_NODE, true);
- if (nFE)
- {
-
-
- if (isFilterConversionRequired(oMQMgr, nFE, iColumnIdx))
- {
- convertFilterExpression(oMQMgr, nFE, iColumnIdx);
- }
- }
-
- var sSummary = nFilter.getAttribute("summary");
- if (sSummary == "true")
- {
- sSummary = "details";
- }
- else if (!sSummary || sSummary == "")
- {
- sSummary = "raw";
- }
- f_basedOn = sSummary;
-
- f_pickList = nFilter.getElementsByTagName("Value");
-
- f_fromValue = nFilter.getElementsByTagName("From");
- if (f_fromValue && f_fromValue.length)
- {
- f_fromValue = f_fromValue[0];
- }
- f_toValue = nFilter.getElementsByTagName("To");
- if (f_toValue && f_toValue.length)
- {
- f_toValue = f_toValue[0];
- }
- if (nFE)
- {
- var sNullOption = nFE.getAttribute("nullOption");
- if (sNullOption)
- {
- dlgGlobalSetParm("xxNullOption", sNullOption);
- }
- }
- }
- retrieveCreds();
- var bPrompts = null;
- var bTextFilter = isTextFilter(iColumnIdx, sFilterType);
- if (f_pickList && f_pickList.length > 0)
- {
- var pickStr = f_pickList[0];
- bPrompts = false;
- if (f_pickList.length == 1 && !pickStr.nodeName)
- {
- bPrompts = isPromptValue(pickStr);
- if(bPrompts)
- {
- if (!canRetrievePromptValuesFromSearchPath(pickStr, "xxPromptParam"))
- {
- retrievePicklistPromptValues(pickStr);
- }
- }
- }
- if (!bPrompts)
- {
- for (var i = 0 ; i < f_pickList.length; i++)
- {
- dlgGlobalSetParmAt("xxPickList", dlgGlobalSize("xxPickList"), f_pickList[i]);
- }
- }
- }
- var f_date = null;
- var f_time = null;
- if (f_fromValue && f_fromValue.nodeName)
- {
- dlgGlobalSetParm( "xxFromNode", f_fromValue );
- f_fromValue = f_fromValue.getAttribute("use");
- }
- if (f_fromValue && f_fromValue.length > 0)
- {
- bPrompts = isPromptValue(f_fromValue);
- if(bPrompts)
- {
- bPrompts = canRetrievePromptValuesFromSearchPath(f_fromValue, "xxFromParamName");
- if (!bPrompts)
- {
- bPrompts = retrievePromptValuesFromCfg(f_fromValue, "xxFromValue", "xxFromParamName");
- }
- }
- if (!bPrompts && (f_fromValue.indexOf("?") != 0))
- {
- if (bTextFilter)
- {
- f_fromValue = encodeURIComponent(f_fromValue);
- }
- else
- {
- setDlgPercentValue("From", f_fromValue);
- }
- dlgSetParm("xxFromValue", f_fromValue);
- }
- f_date = dlgGetParm("xxFromValue");
- if (f_date != null)
- {
- f_date = getDateValue(f_date);
- }
- if (f_date != null)
- {
- dlgSetParm("xxFromDate", f_date);
- }
- f_time = dlgGetParm("xxFromValue");
- if (f_time != null)
- {
- f_time = getTimeValue(f_time);
- }
- if (f_time != null)
- {
- dlgSetParm("xxFromTime", f_time);
- }
- }
- if (f_toValue && f_toValue.nodeName)
- {
- dlgGlobalSetParm( "xxToNode", f_toValue );
- f_toValue = f_toValue.getAttribute("use");
- }
- if (f_toValue && f_toValue.length > 0)
- {
- bPrompts = isPromptValue(f_toValue);
- if(bPrompts)
- {
- bPrompts = canRetrievePromptValuesFromSearchPath(f_toValue, "xxToParamName");
- if (!bPrompts)
- {
- bPrompts = retrievePromptValuesFromCfg(f_toValue, "xxToValue", "xxToParamName");
- }
- }
- if (!bPrompts && (f_toValue.indexOf("?") != 0))
- {
- if (bTextFilter)
- {
- f_toValue = encodeURIComponent(f_toValue);
- }
- else
- {
- setDlgPercentValue("To", f_toValue);
- }
- dlgSetParm("xxToValue", f_toValue);
- }
- f_date = dlgGetParm("xxToValue");
- if (f_date != null)
- {
- f_date = getDateValue(f_date);
- }
- if (f_date != null)
- {
- dlgSetParm("xxToDate", f_date);
- }
- f_time = dlgGetParm("xxToValue");
- if (f_time != null)
- {
- f_time = getTimeValue(f_time);
- }
- if (f_time != null)
- {
- dlgSetParm("xxToTime", f_time);
- }
- }
- if (f_basedOn)
- {
- if (sFilterType == "/" + qs_dir + "/filterNumSumRange.xts")
- {
- if (f_basedOn == "raw" || f_basedOn == "details")
- {
- dlgGlobalSetParm("xxBasedOn", f_basedOn);
- }
- else
- {
- dlgGlobalSetParm("xxBasedOn", "summary");
- dlgGlobalSetParm("xxSummaryOf", oMQMgr.getColumnIndexByAttribute("id", f_basedOn));
- }
- }
- else
- {
- dlgGlobalSetParm("xxBasedOn", f_basedOn);
- }
- }
- if (bTextFilter)
- {
- dlgGlobalSetParm("xxFilterIsString", true);
- dlgRemoveParm("xxFromParamName");
- dlgRemoveParm("xxToParamName");
- }
- else
- {
- dlgGlobalSetParm("xxFilterIsString", false);
- }
- if (oMQMgr.isFakeMeasure(iColumnIdx))
- {
- sColExpr = "count(" + sColExpr + ")";
- }
- else
- {
- setupPromptFilterRefDialogValues(iColumnIdx);
- }
- dlgGlobalSetParm("xxFullColExpression", sColExpr);
- dlgGlobalSetParm("xxColName", sColLabel);
- dlgGlobalSetParm("xxFCid", oMQMgr.getColumnId(iColumnIdx));
- var iDataType = oMQMgr.getDataType(iColumnIdx);
- dlgGlobalSetParm("xxDataType", iDataType);
- switch (iDataType)
- {
- case "2":
- case "10":
- case "11":
- case "12":
- dlgSetParm("xxIntegerNumeric", true);
- default:
-
- }
- var fpID = "";
- var encoded_fpID = "";
- if (nFE)
- {
- fpID = nFE.getAttribute("prompt");
- encoded_fpID = encodeURIComponent(fpID);
- }
- if (fpID)
- {
- var nSelectChoices = goApplicationManager.getReportManager().getParameterManager().getValueForParameter(fpID);
- if (nSelectChoices)
- {
- dlgGlobalSetParm("xxSelectChoicesNode", nSelectChoices);
- }
- dlgGlobalSetParm("xxPromptID", encoded_fpID);
- dlgSetParm("xxPromptParam", encoded_fpID);
- dlgGlobalSetParm("xxPromptParam", encoded_fpID);
- dlgGlobalSetParm("xxPromptParamAndIDEncoded", true);
- retrievePicklistPromptValues(fpID);
- if ( (nFE && (nFE.getAttribute(gsFE_FILTERTYPE_ATTR) == gsFE_FILTERTYPE_TYPEINRANGE ||nFE.getAttribute(gsFE_FILTERTYPE_ATTR) == gsFE_FILTERTYPE_RANGE) ) )
- {
- retrievePromptValuesFromCfg(fpID, "xxFromValue", "xxFromParamName");
- retrievePromptValuesFromCfg(fpID, "xxToValue", "xxToParamName");
- }
- }
- else
- {
- var pID = oMQMgr.getColumnId(iColumnIdx);
- setXTSPromptId(pID);
- }
-
-
- if (oMQMgr.isCalculation(iColumnIdx))
- {
- dlgGlobalSetParm("xxCalcOp", oMQMgr.getCalcOp(iColumnIdx));
- if (oMQMgr.isPercentCalculation(iColumnIdx))
- {
- dlgSetParm("xxIsPercent", true);
- }
- }
- dlgSetParm("m", sFilterType);
-
- dlgGlobalSetParm("xxColid", getUniqColumnName(sColExpr));
-
- dlgGlobalSetParm("xxModelName", cfgGet("cmLastModel"));
- dlgGlobalSetParm("xxExprLocale", oMQMgr.getExpressionLocale());
- if (bTextFilter)
- {
-
- for (var i = 0; i < cfgSize("filter_promptValuesXML"); i++)
- {
- dlgGlobalSetParmAt("xxPromptValues", dlgGlobalSize("xxPromptValues"), cfgGetAt("filter_promptValuesXML", i));
- }
- try
- {
- if (goApplicationManager.getReportManager().getParameterManager().getExecutionParameters())
- {
- dlgGlobalSetParm("xxExecutionParameters", goApplicationManager.getReportManager().getParameterManager().getExecutionParameters());
- }
- }
- catch (e)
- {
- }
-
- if (getConfigFrame().getPreviewType() == "partial")
- {
- dlgGlobalSetParm("xxDesignMode", "true");
- }
-
- if (oMQMgr.getPromptCascadeOnRef(iColumnIdx) != "none")
- {
- var promptCascade = oMQMgr.getPromptCascadeOnRef(iColumnIdx);
- var promptChain = [];
- var promptChainAlive = 0;
- while (promptChainAlive > -1)
- {
- promptChainAlive = promptChain.length;
- for (var i = 0; i < oMQMgr.getAllColumns().length; i++)
- {
- if (oMQMgr.getExpression(i) == promptCascade)
- {
- promptChain[promptChain.length] = i;
- if (oMQMgr.getPromptCascadeOnRef(i) == "none")
- {
- promptChainAlive = -1;
- }
- else
- {
- promptCascade = oMQMgr.getPromptCascadeOnRef(i);
- }
- break;
- }
- }
- if (promptChainAlive == promptChain.length)
- {
- promptChainAlive = -1;
- }
- }
- for (var i = 0; i < promptChain.length; i++)
- {
- var aFilterIdx = cfgGetAt("ColFilterIdx", promptChain[i]);
- var filter = cfgGetAt("ExpFilter", (aFilterIdx&&aFilterIdx.length?aFilterIdx[0]:null));
- if (filter == null)
- {
- continue;
- }
-
- filter = filter.replace(/^\s*<\s*filter\s*/gi, "");
- filter = filter.replace(/^\s*use\s*=\s*"optional"\s*/g, "");
- filter = filter.replace(/^\s*summary\s*=\s*".*"\s*/g, "");
- filter = filter.replace(/^\s*>\s*/gi, "");
- filter = filter.substring(0, filter.lastIndexOf("</Filter>"));
- if (filter)
- {
- dlgGlobalSetParmAt("xxPromptCascade", dlgGlobalSize('xxPromptCascade'), filter);
- }
- }
- }
-
- var mqObject = cfgGet("MiniQueryObj");
-
- var c = (mqObject != null ? mqObject.findChildWithAttribute('id', oMQMgr.getColumnId(iColumnIdx)) : null);
- if (c!=null)
- {
- if (c.getAttribute("metadataType") == "attribute")
- {
- dlgGlobalSetParm("xxIsAttribute", true);
- }
- if (isMUN(c))
- {
- dlgGlobalSetParm("xxUseMUN", true);
- }
- if (isHierarchy(c))
- {
- dlgGlobalSetParm("xxIsHierarchy", true);
- if (sFilterType == "/" + qs_dir + "/filterPickList.xts")
- {
- sFilterType = "/" + qs_dir + "/filterTree.xts";
- dlgSetParm("m", sFilterType);
- }
- }
- dlgGlobalSetParm("xxHun", c.getAttribute("hun"));
- dlgGlobalSetParm("xxLevelNumber", c.getAttribute("levelNumber"));
- dlgSetParm("xxLevelNumber", c.getAttribute("levelNumber"));
- }
- else if (iColumnIdx.nodeMetaType && typeof iColumnIdx.nodeMetaType != "undefined")
- {
-
- if (iColumnIdx.nodeMetaType == "attribute")
- {
- dlgGlobalSetParm("xxIsAttribute", true);
- }
- if (isMUNFromMetadata(iColumnIdx))
- {
- dlgGlobalSetParm("xxUseMUN", true);
- }
- if (iColumnIdx.isHierarchy == true)
- {
- dlgGlobalSetParm("xxIsHierarchy", true);
- if (sFilterType == "/" + qs_dir + "/filterPickList.xts")
- {
- sFilterType = "/" + qs_dir + "/filterTree.xts";
- dlgSetParm("m", sFilterType);
- }
- }
- dlgGlobalSetParm("xxHun", iColumnIdx.hun);
- dlgGlobalSetParm("xxLevelNumber", iColumnIdx.levelOrdinal);
- dlgSetParm("xxLevelNumber", iColumnIdx.levelOrdinal);
- }
- }
- else if (sFilterType == "/" + qs_dir + "/filterNumSumRange.xts")
- {
-
- dlgAddParm("xxMeasure", ((!oMQMgr.isMeasure(iColumnIdx)) ? "Non-" : "" ) + "Measure");
-
- if (oMQMgr.hasPivottedColumns() && oMQMgr.isSummarised(iColumnIdx))
- {
- hasFilterableSummaries = true;
- }
- dlgAddParm("xxSummarized", (!hasFilterableSummaries ? "Un" : "" ) + "Summarized");
- var oMQ = cfgGet("MiniQueryObj");
- var oGroupedColumn = null;
- if (hasFilterableSummaries)
- {
- var hasPivot = false;
- var groupings = [];
- var sHidden = "";
- for (i = 0; i < oMQMgr.getAllColumns().length; i++)
- {
- if (oMQMgr.isPivoted(i))
- {
- hasPivot = true;
- break;
- }
- sHidden = oMQMgr.getHidden(i);
- if ((oMQMgr.getColumnRole(i) === MINI_QUERY_GROUP_LIST || oMQMgr.getColumnRole(i) === MINI_QUERY_GROUP_SECTION) && !(sHidden == "all" || sHidden == "layout"))
- {
-
- oGroupedColumn = (oMQ ? oMQ.findChildWithAttribute('id', oMQMgr.getColumnId(i)) : null);
- if (!isMUN(oGroupedColumn) || isLevel(oGroupedColumn))
- {
- groupings[groupings.length] = i;
- }
- }
- }
- if (hasPivot == true)
- {
- groupings = [];
- for (i = 0; i < oMQMgr.getAllColumns().length; i++)
- {
- sHidden = oMQMgr.getHidden(i);
- if (oMQMgr.isMeasure(i) === false && !(sHidden == "all" || sHidden == "layout"))
- {
-
- oGroupedColumn = (oMQ ? oMQ.findChildWithAttribute('id', oMQMgr.getColumnId(i)) : null);
- if (!isMUN(oGroupedColumn) || isLevel(oGroupedColumn))
- {
- groupings[groupings.length] = i;
- }
- }
- }
- }
- for (i = 0; i < groupings.length; i++)
- {
- dlgGlobalSetParmAt("xxFilterDependancy", dlgGlobalSize('xxFilterDependancy'), [groupings[i], oMQMgr.getColumnLabel(groupings[i])]);
- }
- }
- }
- else
- {
-
-
- var mqObject = cfgGet("MiniQueryObj");
- var c = (mqObject != null ? mqObject.findChildWithAttribute('id', oMQMgr.getColumnId(iColumnIdx)) : null);
- if (c!=null)
- {
- if (c.getAttribute("metadataType") == "attribute")
- {
- dlgGlobalSetParm("xxIsAttribute", true);
- }
- if (isMUN(c))
- {
- dlgGlobalSetParm("xxUseMUN", true);
- }
- if (isHierarchy(c))
- {
- dlgGlobalSetParm("xxIsHierarchy", true);
- sFilterType = "/" + qs_dir + "/filterTree.xts";
- dlgSetParm("m", sFilterType);
- }
- dlgGlobalSetParm("xxHun", c.getAttribute("hun"));
- dlgGlobalSetParm("xxLevelNumber", c.getAttribute("levelNumber"));
- dlgSetParm("xxLevelNumber", c.getAttribute("levelNumber"));
- }
- else if (iColumnIdx.nodeMetaType && typeof iColumnIdx.nodeMetaType != "undefined")
- {
-
- if (iColumnIdx.nodeMetaType == "attribute")
- {
- dlgGlobalSetParm("xxIsAttribute", true);
- }
- if (isMUNFromMetadata(iColumnIdx))
- {
- dlgGlobalSetParm("xxUseMUN", true);
- }
- if (iColumnIdx.isHierarchy == true)
- {
- dlgGlobalSetParm("xxIsHierarchy", true);
- sFilterType = "/" + qs_dir + "/filterTree.xts";
- dlgSetParm("m", sFilterType);
- }
- dlgGlobalSetParm("xxHun", iColumnIdx.hun);
- dlgGlobalSetParm("xxLevelNumber", iColumnIdx.levelOrdinal);
- dlgSetParm("xxLevelNumber", iColumnIdx.levelOrdinal);
- }
- }
- setCalculatedOtherColDialogValues(iColumnIdx);
-
-
-
- dlgSetParm("xxIsMeasure", oMQMgr.isMeasure(iColumnIdx));
- };
- function isFilterConversionRequired(oMQMgr, nFilterExpression, iColumnIndex)
- {
- var modificationRequired = false;
- if (nFilterExpression)
- {
- var sFilterType = nFilterExpression.getAttribute(gsFE_FILTERTYPE_ATTR);
- var sColumnPromptType = oMQMgr.getPromptType(iColumnIndex);
-
- if (((sFilterType === gsFE_FILTERTYPE_RANGE) && (sColumnPromptType === gPromptyType_SELECT_VALUE))
- || ((sFilterType === gsFE_FILTERTYPE_ENUM)
- && (!sColumnPromptType || sColumnPromptType === gPromptyType_SERVER_DEFINED)
- && (setupFilterType(iColumnIndex) != "/qs/filterPickList.xts") ))
- {
- modificationRequired = true;
- }
- }
-
- return modificationRequired;
- };
- function convertFilterExpression(oMQMgr, nFilterExpression, iColumnIndex)
- {
- if (nFilterExpression)
- {
- var sFilterType = nFilterExpression.getAttribute(gsFE_FILTERTYPE_ATTR);
- var sColumnPromptType = oMQMgr.getPromptType(iColumnIndex);
-
-
-
-
- if (sFilterType === gsFE_FILTERTYPE_RANGE)
- {
- if (sColumnPromptType === gPromptyType_SELECT_VALUE)
- {
- convertRangeFilterToEnumFilter(oMQMgr, nFilterExpression, iColumnIndex);
- }
- }
- else if (sFilterType === gsFE_FILTERTYPE_ENUM)
- {
- if (!sColumnPromptType || sColumnPromptType === gPromptyType_SERVER_DEFINED)
- {
- convertEnumFilterToRangeFilter(nFilterExpression);
- }
- }
- }
- };
- function convertRangeFilterToEnumFilter(oMQMgr, nFilterElement, iColumnIndex)
- {
- var oColumn = oMQMgr.getColumnFromIndex(iColumnIndex);
- var sColumnId = oMQMgr.getColumnId(oColumn);
- var aFilterCollection = oMQMgr.getFiltersForColumn(sColumnId);
- var filter = aFilterCollection[0];
- if (filter && filter.nodeName)
- {
- var f_fromValue;
- var f_toValue;
-
- f_fromValue = filter.getElementsByTagName(gsFE_FROM_NODE);
- if (f_fromValue && f_fromValue.length)
- {
- f_fromValue = f_fromValue[0];
- }
- f_toValue = filter.getElementsByTagName(gsFE_TO_NODE);
- if (f_toValue && f_toValue.length)
- {
- f_toValue = f_toValue[0];
- }
- dlgGlobalSetParm("xxConvertRangeFromValue", f_fromValue);
- dlgGlobalSetParm("xxConvertRangeToValue", f_toValue);
-
-
-
-
-
-
-
- dlgGlobalSetParm("xxConvertRangeToENUM", "true");
- }
- else
- {
- nFilterElement.setAttribute(gsFE_FILTERTYPE_ATTR, gsFE_FILTERTYPE_ENUM);
- }
- };
- function convertEnumFilterToRangeFilter(nFilterElement)
- {
-
-
- var isNumber = true;
- var pickListElement;
- var pickListValue;
-
- for (var iChild=nFilterElement.childNodes.length-1; iChild>=0; iChild--)
- {
- pickListElement = nFilterElement.childNodes[iChild];
- pickListValue = pickListElement.getAttribute("use");
- if (isNaN(pickListValue))
- {
- isNumber = false;
- break;
- }
- }
- var minValue;
- var maxValue;
-
-
-
-
-
-
- for (var iChild=nFilterElement.childNodes.length-1; iChild>=0; iChild--)
- {
- pickListElement = nFilterElement.childNodes[iChild];
- pickListValue = pickListElement.getAttribute("use");
- if (isNumber)
- {
- pickListValue = +pickListValue;
- }
- if (!minValue || minValue > pickListValue)
- {
- minValue = pickListValue;
- }
- if (!maxValue || maxValue < pickListValue)
- {
- maxValue = pickListValue;
- }
- }
- var fromRangeNode = nFilterElement.ownerDocument.createElement( gsFE_FROM_NODE);
- fromRangeNode.setAttribute(gsFE_USE_ATTR, minValue);
- fromRangeNode.setAttribute(gsFE_DISPLAY_ATTR, minValue);
- var toRangeNode = nFilterElement.ownerDocument.createElement(gsFE_TO_NODE);
- toRangeNode.setAttribute(gsFE_USE_ATTR, maxValue);
- toRangeNode.setAttribute(gsFE_DISPLAY_ATTR, maxValue);
-
- nFilterElement.setAttribute(gsFE_FILTERTYPE_ATTR, gsFE_FILTERTYPE_RANGE);
- nFilterElement.appendChild(fromRangeNode);
- nFilterElement.appendChild(toRangeNode);
- dlgGlobalSetParm("xxConvertENUMToRange", "true");
- };
- function setCalculatedOtherColDialogValues (iColumnIdx)
- {
- var oMQMgr = goApplicationManager.getMiniQueryManager();
- var sCalcOp = oMQMgr.getCalcOp(iColumnIdx);
- if ((sCalcOp !== MINI_QUERY_NO_COLUMN_FOUND && sCalcOp !== MINI_QUERY_ATTRIBUTE_NOT_FOUND) && ((sCalcOp.substring(0, 5) == "range") || (sCalcOp.substring(0, 5) == "group")))
- {
- for (var i = 0; i < oMQMgr.getAllColumns().length; i++)
- {
- var sColumnId = oMQMgr.getColumnId(i);
- if (
- sColumnId != oMQMgr.getColumnId(iColumnIdx)
- && oMQMgr.isMeasure(i) === false
- && oMQMgr.isReportExpression(i)
- )
- {
- dlgGlobalSetParmAt("xxOtherColIds", dlgGlobalSize('xxOtherColIds'), oMQMgr.getColumnId(i));
- dlgGlobalSetParmAt("xxOtherColExps", dlgGlobalSize('xxOtherColExps'), encodeURIComponent(oMQMgr.getExpression(i)));
- }
- }
- }
- };
- function setupPromptFilterRefDialogValues (iColumnIdx)
- {
- var oMQMgr = goApplicationManager.getMiniQueryManager();
- var bFilterItemRef = false;
- var bDisplayItemRef = false;
-
- var sFilterItemRef = oMQMgr.getPromptFilterItemRef(iColumnIdx);
- if (sFilterItemRef !== MINI_QUERY_NO_COLUMN_FOUND && sFilterItemRef !== MINI_QUERY_NONE_STR)
- {
- bFilterItemRef = true;
- dlgGlobalSetParm("xxFilterItemRefExp", sFilterItemRef);
- dlgGlobalSetParm("xxFilterItemRef", getUniqColumnName(sFilterItemRef));
- dlgGlobalSetParm("xxFilterIsString", false);
- var sPromptFilterRefIsString = oMQMgr.isPromptFilterItemRefString(iColumnIdx);
- if (sPromptFilterRefIsString === true)
- {
- dlgGlobalSetParm("xxFilterIsString", true);
- }
-
-
- dlgGlobalSetParm("xxUseItemRefExp", dlgGlobalGetParm("xxFilterItemRefExp"));
- dlgGlobalSetParm("xxUseItemRef", dlgGlobalGetParm("xxFilterItemRef"));
- }
-
- var sDisplayItemRef = oMQMgr.getPromptDisplayItemRef(iColumnIdx);
- if (sDisplayItemRef !== MINI_QUERY_NO_COLUMN_FOUND && sDisplayItemRef !== MINI_QUERY_NONE_STR)
- {
- bDisplayItemRef = true;
- dlgGlobalSetParm("xxDisplayItemRefExp", sDisplayItemRef);
- dlgGlobalSetParm("xxDisplayItemRef", getUniqColumnName(sDisplayItemRef));
- }
- var sUseItemRef = oMQMgr.getPromptUseItemRef(iColumnIdx);
- if (sUseItemRef !== MINI_QUERY_NO_COLUMN_FOUND && sUseItemRef !== MINI_QUERY_NONE_STR)
- {
- dlgGlobalSetParm("xxUseItemRefExp", sUseItemRef);
- dlgGlobalSetParm("xxUseItemRef", getUniqColumnName(sUseItemRef));
-
-
- if (! bFilterItemRef && ! bDisplayItemRef)
- {
- dlgGlobalSetParm("xxDisplayItemRefExp", sUseItemRef);
- dlgGlobalSetParm("xxDisplayItemRef", getUniqColumnName(sUseItemRef));
- }
- }
-
- return null;
- };
- function retrieveCreds()
- {
- var promptCreds = cfgGet("filter_promptCreds");
- if (promptCreds != null)
- {
- var numCreds = cfgSize("filter_promptCreds");
- var j = 0;
- while (j < numCreds)
- {
- dlgGlobalSetParmAt("xxCreds", dlgGlobalSize('xxCreds'), promptCreds[j][1]);
- j++;
- }
- }
- };
- function isPromptValue(promptVal)
- {
- if (typeof promptVal != "string")
- {
- promptVal = String(promptVal);
- }
- if ((promptVal.charAt(0) == '?') && (promptVal.charAt(promptVal.length - 1) == "?"))
- {
- return true;
- }
- return false;
- };
- function canRetrievePromptValuesFromSearchPath(promptVal, promptParam)
- {
- if (typeof promptVal != "string")
- {
- promptVal = String(promptVal);
- }
- var paramName = promptVal.substr(1,promptVal.length - 2);
- dlgGlobalSetParm(promptParam, paramName);
- dlgAddParm(promptParam, cEscape(paramName));
- var searchPath = cfgGet("SearchPath");
- if (searchPath != null)
- {
- dlgGlobalSetParm("xxRetrievePrompt", true);
- dlgGlobalSetParm("xxSearchPath", searchPath);
- dlgSetParm("xxRetrievePrompt", true);
- dlgSetParm("xxSearchPath", cEscape(searchPath));
- return true;
- }
- return false;
- };
- function retrievePromptValuesFromCfg(promptVal, dlgVarName, promptParam)
- {
- if (typeof promptVal != "string")
- {
- promptVal = String(promptVal);
- }
- var promptVals = getPromptPageParameterValues();
- if (promptVals != null)
- {
- var numPrompts = -1;
- var aPPP = goApplicationManager.getReportManager().getParameterManager().getPromptPageParameters();
- numPrompts = getArrayLength(aPPP);
- var j = 0;
- var paramName = "p_";
- if (promptVal.match(/^\?.*\?$/))
- {
- paramName += promptVal.substr(1,promptVal.length - 2);
- }
- else
- {
- paramName += promptVal;
- }
- while (j < numPrompts)
- {
- if (promptVals[j][0] == paramName)
- {
- if (promptParam == "xxToParamName" || promptParam == "xxFromParamName")
- {
- dlgSetParm(promptParam, encodeURIComponent(promptVals[j][1]));
- }
- else
- {
- dlgSetParm(dlgVarName, promptVals[j][1]);
- }
- return true;
- }
- j++;
- }
- }
- return false;
- };
- function retrievePicklistPromptValues(promptVal)
- {
- if (typeof promptVal != "string")
- {
- promptVal = String(promptVal);
- }
- var promptVals = getPromptPageParameterValues();
- if (promptVals != null)
- {
- var numPrompts = -1;
- var aPPP = goApplicationManager.getReportManager().getParameterManager().getPromptPageParameters();
- numPrompts = getArrayLength(aPPP);
- var j = 0;
- var paramName = "p_";
- if (promptVal.match(/^\?.*\?$/))
- {
- paramName += promptVal.substr(1,promptVal.length - 2);
- }
- else
- {
- paramName += promptVal;
- }
- while (j < numPrompts)
- {
- if (promptVals[j][0] == paramName)
- {
- var pVals = promptVals[j][1];
- var scXML = new XMLParser(pVals);
- if (scXML instanceof XMLElement)
- {
- var opts = scXML.getElementsByTagName('selectOption');
- for (var i = 0; i < opts.length; i++)
- {
- dlgGlobalSetParmAt("xxSelects", dlgGlobalSize("xxSelects"), sXmlDecode(opts[i].getAttribute('displayValue')));
- dlgGlobalSetParmAt("xxSelects", dlgGlobalSize("xxSelects"), sXmlDecode(opts[i].getAttribute('useValue')));
- }
- }
- return true;
- }
- j++;
- }
- }
- return false;
- };
- function getUniqColumnName(exp)
- {
- if ( uniqNameList[exp] == null )
- {
- var iCounter = (Math.round(Math.random()*(10000-1)))+1;
- while (isUniqNameExist(iCounter))
- {
- iCounter = (Math.round(Math.random()*(10000-1)))+1;
- }
- uniqNameList[exp] = "n-" + iCounter;
- }
- return uniqNameList[exp];
- };
- function isUniqNameExist(iCounter)
- {
- for (var i in uniqNameList)
- {
- if ( uniqNameList[i] == "n-" + iCounter )
- {
- return true;
- }
- }
- return false;
- };
- function extractColumn(exp)
- {
-
-
-
-
-
-
-
-
-
- return exp.replace(/\[[^\]](\]\]|[^\]])*\]\./g,"");
- };
- function dofc(command, onlyPrompt, summaryFilter, bIsNot)
- {
- var fID = dlgGlobalGetParm("xxFCid");
- if (fID === null || fID === "")
- {
- fID = dlgGlobalGetParm("xxPromptID");
- }
- var meta = "[" + fID + "]";
- if (command != meta && command.length > 0)
- {
- command = escapeParam(command);
- command += "," + (bIsNot ? "true" : "none");
- if (summaryFilter)
- {
- command += "," + escapeParam(summaryFilter);
- }
- sendFilterCmd(command, true);
- }
- else if (onlyPrompt)
- {
- sendFilterCmd("", true);
- }
- else
- {
- sendFilterCmd("", false);
- }
- };
- function sendFilterCmd(cmd, bAddFilter)
- {
-
-
-
- var fID = dlgGlobalGetParm("xxFCid");
- if (fID === null || fID === "")
- {
- fID = dlgGlobalGetParm("xxPromptID");
- }
- if (bAddFilter)
- {
- addFilter("refColumn", fID, cmd);
- }
- else
- {
- removeFilter("refColumn", fID,"");
- }
- hideDialogFrame();
- };
- function addFilter(paramType, queryIDOrFilterName, filterExp)
- {
-
-
-
- var cmd = generateAddFilterCmd(paramType, queryIDOrFilterName, filterExp);
- cmd = wrapCmdWithCreateColumnBasedonMetadataItem(cmd, queryIDOrFilterName);
- addColumnsForReselection();
- sendCmd(cmd, "", true);
- };
- function generateAddFilterCmd(paramType, queryIDOrFilterName, filterExp)
- {
- var cmd = createCommand("O", "D", [paramType, escapeParam(queryIDOrFilterName), filterExp]);
- return cmd;
- };
- function removeFilter(paramType, queryIDOrFilterName)
- {
-
-
- var cmd = generateRemoveFilterCmd(paramType, queryIDOrFilterName);
- cmd = wrapCmdWithCreateColumnBasedonMetadataItem(cmd, queryIDOrFilterName);
- addColumnsForReselection();
- sendCmd(cmd, "", true);
- };
- function generateRemoveFilterCmd(paramType, queryIDOrFilterName)
- {
- var cmd = createCommand("O", "D", [paramType, escapeParam(queryIDOrFilterName)]);
- return cmd;
- };
- function invokeOtherFilterDlg(filterPageID, bPromptState, sNullOption, bRawFilter, sNot, sDefaultFilter)
- {
- var filterXTSPage = null;
- if (sDefaultFilter === null || typeof sDefaultFilter == "undefined")
- {
- filterXTSPage = "/" + qs_dir + "/filterPickList.xts";
- }
- else
- {
- filterXTSPage = "/" + qs_dir + "/" + sDefaultFilter + ".xts";
- }
- filterXTSPage = getXTSPageForFilterPageID(filterPageID, filterXTSPage);
- dlgGlobalSetParm("xxPromptState", bPromptState);
- dlgGlobalSetParm("xxNullOption", sNullOption);
- dlgGlobalSetParm("xxNOT", sNot);
- dlgGlobalSetParm("xxBasedOn", (bRawFilter ? 'raw' : 'details'));
- dlgSetParm("m", filterXTSPage);
-
- dlgSetParm("xxFilterIsString", dlgGlobalGetParm("xxFilterIsString"));
- dlgSetParm("xxShowTypeInDropDown", dlgGlobalGetParm("xxShowTypeInDropDown"));
- dlgSubmit();
- };
- function getXTSPageForFilterPageID(filterPageID, defaultFilterPage)
- {
- switch(filterPageID)
- {
- case "filterSearch":
- case "filterTypeInExactlyMatches":
- case "filterTypeInStartsWith":
- case "filterTypeInEndsWith":
- case "filterTypeInContains":
- case "filterTypeInMatchesSQLPattern":
- case "filterTypeInRange":
- case "filterDateRange":
- case "filterDateTimeRange":
- case "filterDaysBeforeToday":
- return "/" + qs_dir + "/" + filterPageID + ".xts";
- default:
- return defaultFilterPage;
- }
- };
- function updateOrAddPromptParm(paramName, val)
- {
- var oRepMgr = goApplicationManager.getReportManager();
- var oParmMgr = oRepMgr.getParameterManager();
- oParmMgr.addPromptPageParameter(stripPFromParam(paramName), val);
- };
- function getFilterXTSPathFromDataType(iDataType)
- {
- if (typeof iDataType == "string")
- {
- iDataType = parseInt(iDataType,10);
- }
- var sPath = "/" + qs_dir + "/";
- switch (iDataType)
- {
- case 6:
- case 7:
- sPath = -1;
- break;
- case 5:
- sPath += "filterPickList.xts";
- break;
- case 3:
- sPath += "filterDateTimeRange.xts";
- cf.dlgGlobalSetParm("xxPreviousFilter", "filterDateTimeRange");
- gdialogType = "datetime";
- break;
- case 1:
- sPath += "filterDateRange.xts";
- gdialogType = "date";
- break;
- case 2:
- sPath += "filterTimeRange.xts";
- gdialogType = "time";
- break;
- case 4:
- sPath += "filterIntervalRange.xts";
- gdialogType = "interval";
- break;
- default:
- sPath = "";
- }
- return sPath;
- };
- function getFilterXTSPathFromPromptType(sPromptType, bIsMunBased)
- {
- var sPath = "/" + qs_dir + "/";
- switch (sPromptType)
- {
- case "1":
- sPath += "filterTypeInExactlyMatches.xts";
- break;
- case "2":
- sPath += "filterDateRange.xts";
- gdialogType = "date";
- break;
- case "3":
- sPath += "filterDateTimeRange.xts";
- cf.dlgGlobalSetParm("xxPreviousFilter", "filterDateTimeRange");
- gdialogType = "datetime";
- break;
- case "4":
- sPath += "filterIntervalRange.xts";
- gdialogType = "interval";
- break;
- case "5":
- sPath += "filterTimeRange.xts";
- gdialogType = "time";
- break;
- case "7":
- sPath += "filterSearch.xts";
- break;
- case "8":
- sPath += (bIsMunBased === false ? "filterPickList.xts" : "filterTree.xts");
- break;
- default:
- sPath += "filterPickList.xts";
- }
- return sPath;
- };
- function setXTSPromptId(pID)
- {
- if ( !pID )
- {
- pID = "p";
- }
- pID = (""+pID).replace( /('|"|&|\\|\s|\.|\/|<|>)/g, "_" );
-
- if(pID.match(/^_(.*)$/))
- {
- pID = "param" + pID;
- }
- var pIdx = "";
- var aPValues = getPromptPageParameterValues();
- if (typeof aPValues == "object")
- {
- for (var i = 0; i < aPValues.length; i++)
- {
- if (aPValues[i][0] == ("p_" + pID + pIdx))
- {
- ++pIdx;
- i = -1;
- }
- }
- }
- pID += pIdx;
- dlgGlobalSetParm("xxPromptID", pID);
- };
- function setupFilterType(iColumnIndex)
- {
- var filterType = "";
- var oMQMgr = goApplicationManager.getMiniQueryManager();
- if (hasPromptType(iColumnIndex))
- {
- filterType = getFilterXTSPathFromPromptType(oMQMgr.getPromptType(iColumnIndex), oMQMgr.isMUN(iColumnIndex));
- }
- else
- {
- var bHasNumericDetailAgg = oMQMgr.hasNumericDetailAggregate(iColumnIndex);
- if (isString(iColumnIndex) && ! bHasNumericDetailAgg)
- {
-
-
-
-
-
- var oUserPreference = goApplicationManager.getUserPreferenceManager().getPreference("defaultFilterDialogType");
- var sFilterPreference = "";
- if (typeof oUserPreference === "object")
- {
- sFilterPreference = oUserPreference.getValue();
- }
-
- if (sFilterPreference === "typein" && ! cf.checkCalcFunctionAgainstDB("FLEXIBLE_FILTERS"))
- {
- sFilterPreference = "default";
- }
-
-
-
- switch (sFilterPreference)
- {
- case "search":
- filterType = "/" + qs_dir + "/filterSearch.xts";
- break;
- case "typein":
- filterType = "/" + qs_dir + "/filterTypeInExactlyMatches.xts";
- break;
- case "default":
- case "picklist":
- default:
- filterType = "/" + qs_dir + "/filterPickList.xts";
- break;
- }
- }
- else
- {
- var colType = oMQMgr.getDataType(iColumnIndex);
- if (colType == 0 || colType == 2)
- {
- return -1;
- }
- var iDataType = determineDataType(parseInt(colType, 10));
-
-
- if (iDataType == 5 && bHasNumericDetailAgg)
- {
- iDataType = 0;
- }
- filterType = getFilterXTSPathFromDataType(iDataType);
- }
- }
- return filterType;
- };
- function hasPromptType(iColumnIndex)
- {
- var oMQMgr = goApplicationManager.getMiniQueryManager();
- var sPromptType = oMQMgr.getPromptType(iColumnIndex);
- if ((sPromptType !== 0) && (!oMQMgr.isMeasure(iColumnIndex)))
- {
- return true;
- }
- return false;
- };
- function setupFilterTypeWithCFilter(oFilter)
- {
- var filterType = "";
- switch (oFilter.getType())
- {
- case "editBox":
- case "exactlyMatches":
- filterType = "/" + qs_dir + "/filterTypeInExactlyMatches.xts";
- break;
- case "measure":
- filterType = "";
- break;
- case "numeric":
- filterType = "/" + qs_dir + "/filterNumRange.xts";
- gdialogType = "number";
- break;
- case "selectDate":
- filterType = "/" + qs_dir + "/filterDateRange.xts";
- gdialogType = "date";
- break;
- case "selectDateTime":
- filterType = "/" + qs_dir + "/filterDateTimeRange.xts";
- gdialogType = "datetime";
- break;
- case "selectInterval":
- filterType = "/" + qs_dir + "/filterIntervalRange.xts";
- gdialogType = "interval";
- break;
- case "selectTime":
- filterType = "/" + qs_dir + "/filterTimeRange.xts";
- gdialogType = "time";
- break;
- case "selectWithSearch":
- case "search":
- filterType = "/" + qs_dir + "/filterSearch.xts";
- break;
- case gsFILTER_MODEL:
- filterType = "/" + qs_dir + "/filterModel.xts";
- break;
- case gsFE_FILTERTYPE_TYPEINRANGE:
- filterType = "/" + qs_dir + "/filterTypeInRange.xts";
- break;
- case gsFE_FILTERTYPE_STARTSWITH:
- filterType = "/" + qs_dir + "/filterTypeInStartsWith.xts";
- break;
- case gsFE_FILTERTYPE_ENDSWITH:
- filterType = "/" + qs_dir + "/filterTypeInEndsWith.xts";
- break;
- case gsFE_FILTERTYPE_CONTAINS:
- filterType = "/" + qs_dir + "/filterTypeInContains.xts";
- break;
- case gsFE_FILTERTYPE_ISLIKE:
- filterType = "/" + qs_dir + "/filterTypeInMatchesSQLPattern.xts";
- break;
- case gsFE_FILTERTYPE_DAYS_BEFORE_TODAY:
- var oMQMgr = goApplicationManager.getMiniQueryManager();
- iColumnIndex = oMQMgr.getColumnIndexByAttribute("id", oFilter.getColumnId());
- filterType = setupFilterType(iColumnIndex);
- filterType = "/" + qs_dir + "/filterDaysBeforeToday.xts";
- break;
- default:
- var oMQMgr = goApplicationManager.getMiniQueryManager();
- iColumnIndex = oMQMgr.getColumnIndexByAttribute("id", oFilter.getColumnId());
- if (hasPromptType(iColumnIndex))
- {
- filterType = getFilterXTSPathFromPromptType(oMQMgr.getPromptType(iColumnIndex), oMQMgr.isMUN(iColumnIndex));
- }
- else if (isString(iColumnIndex))
- {
- filterType = "/" + qs_dir + "/filterPickList.xts";
- }
- }
- return filterType;
- };
- function filterContextMenu(sFilterState)
- {
- var sContextMenuType = cfgGet("contextMenuType");
- if (typeof sContextMenuType != "string")
- {
- sContextMenuType = "";
- }
- if (sFilterState == "EDIT")
- {
- if (sContextMenuType.indexOf("FILTERICON") >= 0)
- {
- complexFilter(cfgGet("contextMenuId"));
- }
- else
- {
- goApplicationManager.getFeatureManager().launchFeature('FilterSimple', cfgGet("contextMenuId"));
- }
- cfgRemove("contextMenuType");
- cfgRemove("contextMenuId");
- }
- else if (sFilterState == "DELETE")
- {
- var oCF = getCombinedFilter();
- if (oCF)
- {
- if (sContextMenuType.indexOf("FILTERICON") >= 0)
- {
- var oRawFilters = oCF.getRawFilter();
- var oSummaryFilters = oCF.getSummaryFilter();
- var sId = cfgGet("contextMenuId");
- var aDeleteIds = [];
- if ( (XMLHelper_FindChildrenByAttribute(oRawFilters.m_nNode, "id", sId, true)).length )
- {
- aDeleteIds.push(oRawFilters.getId());
- }
- if ( (XMLHelper_FindChildrenByAttribute(oSummaryFilters.m_nNode, "id", sId, true)).length )
- {
- aDeleteIds.push(oSummaryFilters.getId());
- }
- if (aDeleteIds.length)
- {
- oCF.deleteFilters( aDeleteIds );
- sendCmd(oCF.getCommand(), "", true);
- }
- }
- else
- {
- oCF.deleteFilters( [cfgGet("contextMenuId")] );
- sendCmd(oCF.getCommand(), "", true);
- }
- }
- else
- {
- sendCmd( createCommand( "O", "D", [cfgGet("contextMenuId")] ), "", true );
- }
- cfgRemove("contextMenuType");
- cfgRemove("contextMenuId");
- }
- };
- function getDateValue(str)
- {
-
-
-
- var a = str.toString().match(/(\d*-){1,}\d*/g);
- if (a != null && a[0] != null)
- {
- return a[0];
- }
- return null;
- };
- function getTimeValue(str)
- {
-
-
-
- var a = str.toString().match(/(\d*:){1,}\d*\.\d*/g);
- if (a != null && a[0] != null)
- {
- return a[0];
- }
- return null;
- };
- function setDlgPercentValue( sName, sValue )
- {
- var sPercentValue = "";
- var sDecimalSeparator = goApplicationManager.getMiniQueryManager().getDecimalSeparator();
- if (typeof sValue == "string")
- {
-
- sPercentValue = sValue.replace(sDecimalSeparator, "\.");
- sPercentValue = sPercentValue * 1000 / 10;
- sPercentValue = sPercentValue.toString().replace("\.", sDecimalSeparator);
- }
- if (sPercentValue != "")
- {
- dlgSetParm("xxPercentValue" + sName, sPercentValue);
- }
- return sPercentValue;
- };
- function isModelFilter(sFilterId)
- {
- var oMQMgr = goApplicationManager.getMiniQueryManager();
- var oColumn = oMQMgr.getColumnFromFilter(sFilterId);
- return oColumn === MINI_QUERY_NO_COLUMN_FOUND;
- };
- function isTextFilter (oNode, sFilterType)
- {
- var bTextFilter = true;
- var oMQMgr = goApplicationManager.getMiniQueryManager();
-
-
- if (sFilterType && sFilterType.length)
- {
- var reFilterTypes = new RegExp("/" + qs_dir + "/filter(PickList|Search|TypeInExactlyMatches|TypeInEndsWith|TypeInStartsWith|TypeInContains|TypeInMatchesSQLPattern|TypeInRange|DaysBeforeToday|Tree).xts");
- bTextFilter = (sFilterType.match(reFilterTypes) ? true : false);
- }
-
-
-
- if (typeof oNode !== "undefined" && getDataType(oNode) === 0 && ! oMQMgr.isFakeMeasure(oNode))
- {
- bTextFilter = false;
- }
-
-
-
-
- if (isMUNFromMetadata(oNode) || oMQMgr.isMUN(oNode))
- {
- bTextFilter = false;
- }
-
-
-
- var oMQNode = oMQMgr.getColumnFromParameter(oNode);
- if (oMQNode && typeof oMQNode == "object")
- {
- if (oMQNode.getAttribute("promptUseItemRefIsString") === "true")
- {
- bTextFilter = true;
- }
- }
-
- return bTextFilter;
- };
|