123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770 |
- /****************************************************************
- ** 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.
- var MINI_QUERY_SUCCESS = 1;
- var MINI_QUERY_INVALID_MINI_QUERY = 0;
- var MINI_QUERY_INVALID_INDEX = -1;
- var MINI_QUERY_NO_MINI_QUERY = -2;
- var MINI_QUERY_NO_COLUMN_FOUND = -3;
- var MINI_QUERY_ATTRIBUTE_NOT_FOUND = -4;
- var MINI_QUERY_NO_ELEMENT_FOUND = -5;
- var MINI_QUERY_SET_FAILED = -99;
- var MINI_QUERY_MAX_ROWS_DEFAULT = 0;
- var MINI_QUERY_GROUP_PIVOT = "pivot";
- var MINI_QUERY_GROUP_SECTION = "header";
- var MINI_QUERY_GROUP_LIST = "list";
- var MINI_QUERY_EMPTY_STRING_VALUE = "";
- var MINI_QUERY_NUMBER_STR = "number";
- var MINI_QUERY_RANGE_STR = "range";
- var MINI_QUERY_GROUP_STR = "group";
- var MINI_QUERY_STRING_STR = "string";
- var MINI_QUERY_DATE_STR = "date";
- var MINI_QUERY_TIME_STR = "time";
- var MINI_QUERY_DATETIME_STR = "datetime";
- var MINI_QUERY_INTERVAL_STR = "interval";
- var MINI_QUERY_MODEL_STR = "model";
- var MINI_QUERY_UNKNOWN_STR = "unknown";
- var MINI_QUERY_NONE_STR = "none";
- function CMiniQueryManager()
- {
- this.oMiniQueryDocument = null;
- this.m_sPreviousDataMode = null;
- this.MINI_QUERY_NONE_STR = MINI_QUERY_NONE_STR;
- this.MINI_QUERY_NO_COLUMN_FOUND = MINI_QUERY_NO_COLUMN_FOUND;
- };
- CMiniQueryManager.prototype = new CDictionary();
- CMiniQueryManager.prototype.init = function ()
- {
- this.resetState();
- };
- CMiniQueryManager.prototype.resetState = function ()
- {
-
- this.removeAll();
- this.add("decimalSeparatorDefault", ".");
- this.add("listSeparatorDefault", ",");
-
-
- var oCRQReport = this.getCRQReportNode();
- if (typeof oCRQReport == "object")
- {
- this.m_sPreviousDataMode = oCRQReport.getAttribute("limitData");
- }
- };
- CMiniQueryManager.prototype.setMiniQuery = function (sMiniQuery)
- {
- if (sMiniQuery === null || typeof sMiniQuery != "string" || sMiniQuery === MINI_QUERY_EMPTY_STRING_VALUE)
- {
- return MINI_QUERY_INVALID_MINI_QUERY;
- }
- var oXMLDocument = XMLBuilderLoadXMLFromString(sMiniQuery);
- if (oXMLDocument === null)
- {
- return MINI_QUERY_SET_FAILED;
- }
- this.oMiniQueryDocument = oXMLDocument;
- this.resetState();
- return MINI_QUERY_SUCCESS;
- };
- CMiniQueryManager.prototype.getElementById = function (sId)
- {
- if (typeof sId != "string" || sId === MINI_QUERY_EMPTY_STRING_VALUE)
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- if (this.oMiniQueryDocument === null)
- {
- return MINI_QUERY_NO_MINI_QUERY;
- }
- var aElements = XMLHelper_FindChildrenByAttribute(this.oMiniQueryDocument, "id", sId, true, true);
- if (aElements.length > 0)
- {
- return aElements[0];
- }
- else
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- };
- CMiniQueryManager.prototype.getElementsByAttribute = function (sName, sValue)
- {
- if (typeof sName != "string" || sName === MINI_QUERY_EMPTY_STRING_VALUE)
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- if (this.oMiniQueryDocument === null)
- {
- return MINI_QUERY_NO_MINI_QUERY;
- }
- var aElements = XMLHelper_FindChildrenByAttribute(this.oMiniQueryDocument, sName, sValue, true, false);
- if (aElements.length > 0)
- {
- return aElements;
- }
- else
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- };
- CMiniQueryManager.prototype.getElementsByTagName = function (sName, oNode)
- {
- if (typeof sName != "string" || sName === MINI_QUERY_EMPTY_STRING_VALUE || (typeof oNode != "undefined" && (oNode === null || typeof oNode != "object" || !this.isElementInMiniQuery(oNode))))
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- var oNodeToFind;
- if (typeof oNode != "undefined")
- {
- oNodeToFind = oNode;
- }
- else if (this.oMiniQueryDocument !== null)
- {
- oNodeToFind = this.oMiniQueryDocument;
- }
- else
- {
- return MINI_QUERY_NO_MINI_QUERY;
- }
- var aElements = XMLHelper_FindChildrenByTagName(oNodeToFind, sName, true);
- if (aElements.length > 0)
- {
- return aElements;
- }
- else
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- };
- CMiniQueryManager.prototype.getCRQReportNode = function ()
- {
- if (this.oMiniQueryDocument === null)
- {
- return MINI_QUERY_NO_MINI_QUERY;
- }
- return this.oMiniQueryDocument.documentElement;
- };
- CMiniQueryManager.prototype.getAllColumns = function ()
- {
- var aAllColumns = this.get("allColumnsArray");
- if (aAllColumns === null)
- {
- aAllColumns = this.getElementsByTagName("Column");
- this.add("allColumnsArray", aAllColumns);
- }
- try
- {
- if (aAllColumns instanceof Array)
- {
- return aAllColumns;
- }
- }
- catch (e)
- {
- }
- return ([]);
- };
- CMiniQueryManager.prototype.getMaxRows = function ()
- {
- var oCRQReport = this.getCRQReportNode();
- if (typeof oCRQReport == "object")
- {
- var sMaxRows = oCRQReport.getAttribute("maxRows");
- if (sMaxRows !== null && isNaN(parseInt(sMaxRows, 10)) === false)
- {
- var iMaxRows = parseInt(sMaxRows, 10);
- if (!isNaN(iMaxRows))
- {
- return iMaxRows;
- }
- }
- }
- return MINI_QUERY_MAX_ROWS_DEFAULT;
- };
- CMiniQueryManager.prototype.getPDFOptions = function ()
- {
- return this.getElement("PDFOptions");
- };
- CMiniQueryManager.prototype.getChart = function ()
- {
- return this.getElement("chart");
- };
- CMiniQueryManager.prototype.getDoc = function ()
- {
- return (this.oMiniQueryDocument);
- };
- CMiniQueryManager.prototype.getElement = function (sElementName)
- {
- var aElements = this.getElements(sElementName);
- if (aElements instanceof Array)
- {
- return aElements[0];
- }
- return MINI_QUERY_NO_ELEMENT_FOUND;
- };
- CMiniQueryManager.prototype.getElements = function (sElementName)
- {
- var aElements = this.getElementsByTagName(sElementName);
- if (aElements instanceof Array && aElements.length > 0)
- {
- return aElements;
- }
- return MINI_QUERY_NO_ELEMENT_FOUND;
- };
- CMiniQueryManager.prototype.hasPivottedColumns = function ()
- {
- var bHasPivotCols = this.get("HasPivotCols");
- if (bHasPivotCols !== null)
- {
- return bHasPivotCols;
- }
- var aAllCols = this.getAllColumns();
- for (var idxCols = 0; idxCols < aAllCols.length; idxCols++)
- {
- var bIsPivoted = this.isPivoted(aAllCols[idxCols]);
- if (bIsPivoted === true)
- {
- this.add("HasPivotCols", true);
- return true;
- }
- }
- this.add("HasPivotCols", false);
- return false;
- };
- CMiniQueryManager.prototype.hasGroupedColumns = function ()
- {
- var bHasGroupedCols = this.get("HasGroupedCols");
- if (bHasGroupedCols !== null)
- {
- return bHasGroupedCols;
- }
- var aAllCols = this.getAllColumns();
- for (var idxCols = 0; idxCols < aAllCols.length; idxCols++)
- {
- var bIsGrouped = this.isGrouped(aAllCols[idxCols]);
- if (bIsGrouped === true)
- {
- this.add("HasGroupedCols", true);
- return true;
- }
- }
- this.add("HasGroupedCols", false);
- return false;
- };
- CMiniQueryManager.prototype.hasHeaderColumns = function ()
- {
- var bHasHeaderCols = this.get("HasHeaderCols");
- if (bHasHeaderCols !== null)
- {
- return bHasHeaderCols;
- }
- var aAllCols = this.getAllColumns();
- for (var idxCols = 0; idxCols < aAllCols.length; idxCols++)
- {
- var bIsGrouped = this.isGrouped(aAllCols[idxCols]);
- var sGroupType = this.getGroupType(aAllCols[idxCols]);
- if (bIsGrouped === true && sGroupType === "header")
- {
- this.add("HasHeaderCols", true);
- return true;
- }
- }
- this.add("HasHeaderCols", false);
- return false;
- };
- CMiniQueryManager.prototype.hasRowNumColumn = function (oParameter)
- {
- var bHasRowNumCol = this.get("HasRowNumCol");
- if (bHasRowNumCol !== null)
- {
- return bHasRowNumCol;
- }
- var aAllCols = this.getAllColumns();
- for (var idxCols = 0; idxCols < aAllCols.length; idxCols++)
- {
- var bIsRowNumCol = this.isReportExpression(aAllCols[idxCols]);
- if (bIsRowNumCol === true)
- {
- this.add("HasRowNumCol", true);
- return true;
- }
- }
- this.add("HasRowNumCol", false);
- return false;
- };
- CMiniQueryManager.prototype.getColumnById = function (sId)
- {
- if (typeof sId != "string")
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- var oDictColId = this.get("ColumnID_" + sId);
- if (oDictColId !== null)
- {
- return oDictColId;
- }
- var aElements = this.getElementsByAttribute("id", sId);
- if (aElements.length === 0)
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- else
- {
- if (aElements.length === 1)
- {
- if (XMLHelper_GetLocalName(aElements[0]) == "Column")
- {
- this.add("ColumnID_" + sId, aElements[0]);
- return aElements[0];
- }
- else
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- }
- else
- {
- for (var idxElts = 0; idxElts < aElements.length; idxElts++)
- {
- if (XMLHelper_GetLocalName(aElements[idxElts]) == "Column")
- {
- this.add("ColumnID_" + sId, aElements[idxElts]);
- return aElements[idxElts];
- }
- }
- }
- }
- return MINI_QUERY_NO_COLUMN_FOUND;
- };
- CMiniQueryManager.prototype.getDecimalSeparator = function ()
- {
- var oCRQReport = this.getCRQReportNode();
- var sDecimalSeparator = this.get("decimalSeparator");
- if (sDecimalSeparator === null && typeof oCRQReport == "object")
- {
- sDecimalSeparator = oCRQReport.getAttribute("decimalSeparator");
- }
- if (sDecimalSeparator === null || sDecimalSeparator === MINI_QUERY_EMPTY_STRING_VALUE)
- {
- sDecimalSeparator = this.get("decimalSeparatorDefault");
- }
- return sDecimalSeparator;
- };
- CMiniQueryManager.prototype.getListSeparator = function ()
- {
- var oCRQReport = this.getCRQReportNode();
- var sListSeparator = this.get("listSeparator");
- if (sListSeparator === null && typeof oCRQReport == "object")
- {
- sListSeparator = oCRQReport.getAttribute("listSeparator");
- }
- if (sListSeparator === null || sListSeparator === MINI_QUERY_EMPTY_STRING_VALUE)
- {
- sListSeparator = this.get("listSeparatorDefault");
- }
- return sListSeparator;
- };
- CMiniQueryManager.prototype.getPageBreak = function ()
- {
- var oCRQReport = this.getCRQReportNode();
- if (typeof oCRQReport != "object")
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- var sPageBreak = oCRQReport.getAttribute("pageBreak");
- if (sPageBreak === null)
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- return sPageBreak;
- };
- CMiniQueryManager.prototype.isElementInMiniQuery = function (oColumn)
- {
- if (this.oMiniQueryDocument === null || oColumn === null || (typeof oColumn != "object" && typeof oColumn != "string"))
- {
- return false;
- }
- var sMQXML = XMLBuilderSerializeNode(this.oMiniQueryDocument);
- var sColumn;
- if (typeof oColumn == "string")
- {
- sColumn = oColumn;
- }
- else
- {
- sColumn = XMLBuilderSerializeNode(oColumn);
- }
- if (sMQXML !== MINI_QUERY_EMPTY_STRING_VALUE && sColumn !== MINI_QUERY_EMPTY_STRING_VALUE)
- {
- if (sMQXML.indexOf(sColumn) >= 0)
- {
- return true;
- }
- }
- return false;
- };
- CMiniQueryManager.prototype.getColFromExpression = function (sExpression)
- {
- if (typeof sExpression != "string")
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- var oDictExpr = this.get("Expression_" + sExpression);
- if (oDictExpr !== null)
- {
- return oDictExpr;
- }
- var aElements = this.getElementsByAttribute("expression", sExpression);
- if (aElements === MINI_QUERY_NO_COLUMN_FOUND || aElements === MINI_QUERY_NO_MINI_QUERY)
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- else if (aElements.length > 0)
- {
- this.add("Expression_" + sExpression, aElements[0]);
- return aElements[0];
- }
- else
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- };
- CMiniQueryManager.prototype.getColumnFromFilter = function(oFilter)
- {
- if (typeof oFilter == "string")
- {
- var aElements = this.getElementsByAttribute("id", oFilter);
- for (var idxElement = 0; idxElement < aElements.length; idxElement++)
- {
- if (aElements[idxElement].nodeName.match(/^filter$/i))
- {
- return this.getColumnFromFilter(aElements[idxElement]);
- }
- }
-
-
- var aElements = this.getElementsByAttribute("columnId", oFilter);
- for (var idxElement = 0; idxElement < aElements.length; idxElement++)
- {
- if (aElements[idxElement].nodeName.match(/^filter$/i))
- {
- return this.getColumnFromFilter(aElements[idxElement]);
- }
- }
-
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- else if (oFilter)
- {
- var sColumnId = oFilter.getAttribute("columnId");
- if (sColumnId)
- {
- return (this.getColumnById(sColumnId));
- }
- var oParentNode = oFilter.parentNode;
- while (oParentNode)
- {
- if (oParentNode.nodeName.match(/^column$/i))
- {
- return oParentNode;
- }
- oParentNode = oParentNode.parentNode;
- }
- }
- return MINI_QUERY_NO_COLUMN_FOUND;
- };
- CMiniQueryManager.prototype.getColumnFromIndex = function (iIndex)
- {
- if (typeof iIndex == "number")
- {
- var aColumns = this.getAllColumns();
- if (iIndex >= 0 && aColumns.length > iIndex)
- {
- return aColumns[iIndex];
- }
- }
- return MINI_QUERY_NO_COLUMN_FOUND;
- };
- CMiniQueryManager.prototype.getColumnFromXML = function (sXML)
- {
- if (typeof sXML == "string" && sXML.match(/^\s*<.*\/.*>\s*$/))
- {
- var aColumns = this.getAllColumns();
-
- var oColumn = XMLBuilderLoadXMLFromString(sXML);
- var sColumn = XMLBuilderSerializeNode(oColumn);
- if (sColumn !== null && typeof sColumn == "string" && sColumn !== MINI_QUERY_EMPTY_STRING_VALUE && this.isElementInMiniQuery(sColumn) === true)
- {
- for (var idxCols = 0; idxCols < aColumns.length; idxCols++)
- {
- oColumn = aColumns[idxCols];
- var sColumnInMQ = XMLBuilderSerializeNode(aColumns[idxCols]);
- if (sColumnInMQ !== MINI_QUERY_EMPTY_STRING_VALUE)
- {
- if (sColumnInMQ === sColumn)
- {
- return oColumn;
- }
- }
- }
- }
- }
- return MINI_QUERY_NO_COLUMN_FOUND;
- };
- CMiniQueryManager.prototype.getColumnFromParameter = function (oParameter)
- {
- var oColumn = null;
- if (typeof oParameter == "string")
- {
- oColumn = this.getColumnById(oParameter);
- if (oColumn === MINI_QUERY_NO_COLUMN_FOUND)
- {
- oColumn = this.getColFromExpression(oParameter);
- if (oColumn === MINI_QUERY_NO_COLUMN_FOUND)
- {
- oColumn = this.getColumnFromXML(oParameter);
- if (oColumn === MINI_QUERY_NO_COLUMN_FOUND)
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- }
- }
- }
- else if (typeof oParameter == "object")
- {
- if (this.isElementInMiniQuery(oParameter) === false)
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- oColumn = oParameter;
- }
- else if (typeof oParameter == "number")
- {
- var aAllCols = this.getAllColumns();
- try
- {
- if (oParameter >= 0 && aAllCols.length > 0 && oParameter < aAllCols.length)
- {
- return aAllCols[oParameter];
- }
- }
- catch (e)
- {
- }
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- else
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- return oColumn;
- };
- CMiniQueryManager.prototype.getDataType = function (oParameter)
- {
- return this.getAttributeOnColumn(oParameter, "type", "string");
- };
- CMiniQueryManager.prototype.getAttributeFromMetadataNode = function (oNode, sAttributeName, sDataType)
- {
- var attr = null;
- if (oNode && typeof oNode[sAttributeName] != "undefined")
- {
-
- attr = oNode[sAttributeName];
- }
- else
- {
- switch(sAttributeName)
- {
- case "type":
- attr = oNode["datatype"];
- break;
- }
- }
- return (
- attr === null || typeof attr == "undefined" ?
- MINI_QUERY_ATTRIBUTE_NOT_FOUND :
- this.formatAttribute(attr, sDataType)
- );
- };
- CMiniQueryManager.prototype.formatAttribute = function(sAttribute, sDataType)
- {
- var retval = sAttribute;
- if (sDataType === "integer")
- {
- var iNumber = parseInt(sAttribute, 10);
- if (!isNaN(iNumber))
- {
- return iNumber;
- }
- }
- if (sDataType === "boolean")
- {
- if (sAttribute.toLowerCase() === "true")
- {
- return true;
- }
- return false;
- }
- return sAttribute;
- };
- CMiniQueryManager.prototype.getAttributeOnColumn = function (oParameter, sAttributeName, sDataType)
- {
- var oColumn = this.getColumnFromParameter(oParameter);
- if (oColumn === MINI_QUERY_NO_COLUMN_FOUND)
- {
- if (oParameter && oParameter.bFromMetadata)
- {
- return this.getAttributeFromMetadataNode(oParameter, sAttributeName, sDataType);
- }
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- var sAttribute = oColumn.getAttribute(sAttributeName);
- if (sAttribute !== null && sAttribute !== MINI_QUERY_EMPTY_STRING_VALUE)
- {
- return this.formatAttribute(sAttribute, sDataType);
- }
- return MINI_QUERY_ATTRIBUTE_NOT_FOUND;
- };
- CMiniQueryManager.prototype.isColumnOfDataType = function (oParameter, sDataType, bCheckForMatch, sDataTypeConstant)
- {
- var sAttribute = this.getDataType(oParameter);
- if (sAttribute === MINI_QUERY_NO_COLUMN_FOUND || sAttribute === MINI_QUERY_ATTRIBUTE_NOT_FOUND)
- {
- return false;
- }
- if (sDataType !== null && sAttribute == sDataType)
- {
- return true;
- }
- else if (bCheckForMatch)
- {
- return isDataTypeMatch(sAttribute, sDataTypeConstant);
- }
- return false;
- };
- CMiniQueryManager.prototype.isReportExpression = function (oParameter)
- {
- return this.isColumnOfDataType(oParameter, "reportExpression", false, null);
- };
- CMiniQueryManager.prototype.isString = function (oParameter)
- {
- return this.isColumnOfDataType(oParameter, "string", true, DATA_TYPE_STRING);
- };
- CMiniQueryManager.prototype.isNumeric = function (oParameter)
- {
- return this.isColumnOfDataType(oParameter, "number", true, DATA_TYPE_NUMERIC);
- };
- CMiniQueryManager.prototype.isDate = function (oParameter)
- {
- return this.isColumnOfDataType(oParameter, "date", true, DATA_TYPE_DATE);
- };
- CMiniQueryManager.prototype.isTime = function (oParameter)
- {
- return this.isColumnOfDataType(oParameter, "time", true, DATA_TYPE_TIME);
- };
- CMiniQueryManager.prototype.isDateTime = function (oParameter)
- {
- return this.isColumnOfDataType(oParameter, "datetime", true, DATA_TYPE_DATETIME);
- };
- CMiniQueryManager.prototype.isInterval = function (oParameter)
- {
- return this.isColumnOfDataType(oParameter, "interval", true, DATA_TYPE_INTERVAL);
- };
- CMiniQueryManager.prototype.isBlob = function (oParameter)
- {
- return this.isColumnOfDataType(oParameter, null, true, DATA_TYPE_BLOB);
- };
- CMiniQueryManager.prototype.isAnyDateTime = function (oParameter)
- {
- var sDataType = this.getDataType(oParameter);
- if (sDataType === MINI_QUERY_NO_COLUMN_FOUND || sDataType === MINI_QUERY_ATTRIBUTE_NOT_FOUND)
- {
- return false;
- }
- var iDataType = parseInt(sDataType, 10);
-
- if (isNaN(iDataType) && sDataType != "date" && sDataType != "time" && sDataType != "datetime" && sDataType != "interval")
- {
- return false;
- }
- var iDeterminedDataType = determineDataType(iDataType);
- if (iDeterminedDataType >= DATA_TYPE_DATE && iDeterminedDataType <= DATA_TYPE_INTERVAL)
- {
- return true;
- }
- else
- {
- return false;
- }
- };
- CMiniQueryManager.prototype.isHierarchy = function (oParameter)
- {
- var oColumn = this.getColumnFromParameter(oParameter);
- if (oColumn !== MINI_QUERY_NO_COLUMN_FOUND)
- {
- var sHierarchy = oColumn.getAttribute("hierarchy");
- if (sHierarchy == "true")
- {
- return true;
- }
- }
- return false;
- };
- CMiniQueryManager.prototype.isLevel = function (oParameter)
- {
- var oColumn = this.getColumnFromParameter(oParameter);
- if (oColumn !== MINI_QUERY_NO_COLUMN_FOUND)
- {
- var sMetadataType = this.getMetadataType(oColumn);
- var sLevelNumber = this.getLevelNumber(oColumn);
- if (sMetadataType !== MINI_QUERY_ATTRIBUTE_NOT_FOUND && (sMetadataType == "level" || sMetadataType == "namedSet" || (sMetadataType === MINI_QUERY_EMPTY_STRING_VALUE && sLevelNumber !== MINI_QUERY_ATTRIBUTE_NOT_FOUND && sLevelNumber !== MINI_QUERY_EMPTY_STRING_VALUE)))
- {
- return true;
- }
- }
- return false;
- };
- CMiniQueryManager.prototype.isMember = function (oParameter)
- {
- var oColumn = this.getColumnFromParameter(oParameter);
- if (oColumn !== MINI_QUERY_NO_COLUMN_FOUND)
- {
- var sMetadataType = this.getMetadataType(oColumn);
- if (sMetadataType !== MINI_QUERY_ATTRIBUTE_NOT_FOUND && sMetadataType == "member")
- {
- return true;
- }
- }
- return false;
- };
- CMiniQueryManager.prototype.isMUN = function (oParameter)
- {
- var bHierarchy = this.isHierarchy(oParameter);
- var bLevel = this.isLevel(oParameter);
- var bMember = this.isMember(oParameter);
- if (bHierarchy === true || bLevel === true || bMember === true)
- {
- return true;
- }
- return false;
- };
- CMiniQueryManager.prototype.getColumnLabel = function (oParameter)
- {
- var oColumn = this.getColumnFromParameter(oParameter);
- if (oColumn === MINI_QUERY_NO_COLUMN_FOUND)
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- else
- {
- var sContentLocale = goApplicationManager.get("contentLocale");
- var sLabel = MINI_QUERY_EMPTY_STRING_VALUE;
- if (sContentLocale !== MINI_QUERY_EMPTY_STRING_VALUE && sContentLocale !== null && oColumn.hasChildNodes() === true)
- {
- for (var idxCol = 0; idxCol < oColumn.childNodes.length; idxCol++)
- {
- if (oColumn.childNodes[idxCol].nodeName == "ColumnTitle" && oColumn.childNodes[idxCol].getAttribute("locale") == sContentLocale)
- {
- sLabel = oColumn.childNodes[idxCol].getAttribute("text");
- break;
- }
- }
- }
- if (sLabel === MINI_QUERY_EMPTY_STRING_VALUE)
- {
- sLabel = oColumn.getAttribute("originalName");
- }
- return sLabel;
- }
- };
- CMiniQueryManager.prototype.getUsage = function (oParameter)
- {
- return this.getAttributeOnColumn(oParameter, "usage", "integer");
- };
- CMiniQueryManager.prototype.getHidden = function (oParameter)
- {
- var sHide = this.getAttributeOnColumn(oParameter, "hide", "string");
- if (sHide === "true")
- {
- sHide = "all";
- }
- else if (sHide === MINI_QUERY_ATTRIBUTE_NOT_FOUND)
- {
- sHide = MINI_QUERY_NONE_STR;
- }
- return sHide;
- };
- CMiniQueryManager.prototype.getCalcOp = function (oParameter)
- {
- return this.getAttributeOnColumn(oParameter, "calcOp", "string");
- };
- CMiniQueryManager.prototype.isCalculation = function (oParameter)
- {
- var sCalcOp = this.getCalcOp(oParameter);
- if (sCalcOp === MINI_QUERY_NO_COLUMN_FOUND || sCalcOp === MINI_QUERY_ATTRIBUTE_NOT_FOUND)
- {
- return false;
- }
- return true;
- };
- CMiniQueryManager.prototype.isCollapsed = function (oParameter)
- {
- var sCollapse = this.getCollapsed(oParameter);
- if (sCollapse !== MINI_QUERY_NO_COLUMN_FOUND && sCollapse !== MINI_QUERY_ATTRIBUTE_NOT_FOUND)
- {
- return true;
- }
- return false;
- };
- CMiniQueryManager.prototype.isMeasure = function (oParameter)
- {
- var iUsage = this.getUsage(oParameter);
- if (iUsage === USAGE_VALUE_MEASURE)
- {
- return true;
- }
- return false;
- };
- CMiniQueryManager.prototype.isFakeMeasure = function (oParameter)
- {
- var sFakeUsage = this.getAttributeOnColumn(oParameter, "oldUsage", "string");
- if (sFakeUsage === MINI_QUERY_ATTRIBUTE_NOT_FOUND || sFakeUsage === MINI_QUERY_NO_COLUMN_FOUND)
- {
- return false;
- }
- return true;
- };
- CMiniQueryManager.prototype.hasNumericDetailAggregate = function (oParameter)
- {
- var oColumn = this.getColumnFromParameter(oParameter);
- var bDetailAggNumeric = false;
- if (oColumn !== MINI_QUERY_NO_COLUMN_FOUND)
- {
-
-
- var iDataType = getDataType(oColumn);
- if (iDataType == DATA_TYPE_NUMERIC || this.isFakeMeasure(oColumn))
- {
- bDetailAggNumeric = true;
- }
-
- else if (iDataType == DATA_TYPE_STRING && this.isMeasure(oColumn))
- {
- var sRealDetailAggregate = this.getDetailAggregate(oColumn);
-
-
-
- if (! sRealDetailAggregate
- || sRealDetailAggregate == "none"
- || sRealDetailAggregate == "automatic"
- || sRealDetailAggregate == "calculated"
- )
- {
- sRealDetailAggregate = this.getRegularAggregate(oColumn);
- }
-
-
-
- if (sRealDetailAggregate == "maximum" || sRealDetailAggregate == "minimum")
- {
- bDetailAggNumeric = false;
- }
- else
- {
- bDetailAggNumeric = true;
- }
- }
-
- }
- return bDetailAggNumeric;
- };
- CMiniQueryManager.prototype.isPercentCalculation = function (oParameter)
- {
- var bRetval = false;
- switch( this.getCalcOp(oParameter) )
- {
- case "percent":
- case "percentDifference":
- case "percentTotal":
- case "percentile":
- bRetval = true;
- }
- return bRetval;
- };
- CMiniQueryManager.prototype.getExpression = function (oParameter)
- {
- var oColumn = this.getColumnFromParameter(oParameter);
- if (oColumn !== MINI_QUERY_NO_COLUMN_FOUND)
- {
- var oGroupExpression = this.getElementsByTagName("GroupExpression", oColumn);
- if (oGroupExpression !== MINI_QUERY_NO_COLUMN_FOUND && oGroupExpression instanceof Array && oGroupExpression.length > 0)
- {
- var sGeneratedExpression = oGroupExpression[0].getAttribute("generatedExpression");
- if (sGeneratedExpression !== MINI_QUERY_EMPTY_STRING_VALUE && sGeneratedExpression !== null)
- {
- return sGeneratedExpression;
- }
- }
- return this.getAttributeOnColumn(oParameter, "expression", "string");
- }
- return MINI_QUERY_NO_COLUMN_FOUND;
- };
- CMiniQueryManager.prototype.getCalculatedExpression = function (oParameter)
- {
- var oColumn = this.getColumnFromParameter(oParameter);
- if (oColumn !== MINI_QUERY_NO_COLUMN_FOUND)
- {
- var oCalculatedExpression = this.getElementsByTagName("CalculatedExpression", oColumn);
- if (oCalculatedExpression !== MINI_QUERY_NO_COLUMN_FOUND && oCalculatedExpression instanceof Array && oCalculatedExpression.length > 0)
- {
- var sGeneratedExpression = oCalculatedExpression[0].getAttribute("generatedExpression");
- if (sGeneratedExpression !== MINI_QUERY_EMPTY_STRING_VALUE && sGeneratedExpression !== null)
- {
- return sGeneratedExpression;
- }
- }
- return this.getAttributeOnColumn(oParameter, "calculatedExpression", "string");
- }
- return MINI_QUERY_NO_COLUMN_FOUND;
- };
- CMiniQueryManager.prototype.getDisplayType = function (oParameter)
- {
- var iDisplayType = this.getAttributeOnColumn(oParameter, "displayType", "integer");
- if (iDisplayType !== MINI_QUERY_NO_COLUMN_FOUND && iDisplayType !== MINI_QUERY_ATTRIBUTE_NOT_FOUND)
- {
-
- if (iDisplayType !== 4)
- {
- return iDisplayType;
- }
- else
- {
- return MINI_QUERY_ATTRIBUTE_NOT_FOUND;
- }
- }
- return iDisplayType;
- };
- CMiniQueryManager.prototype.isSummarised = function (oParameter)
- {
- var oColumn = this.getColumnFromParameter(oParameter);
- if (oColumn !== MINI_QUERY_NO_COLUMN_FOUND)
- {
- var sAgg = oColumn.getAttribute("agg");
- if (sAgg !== MINI_QUERY_EMPTY_STRING_VALUE & sAgg !== null)
- {
- return true;
- }
- }
- return false;
- };
- CMiniQueryManager.prototype.isGrouped = function (oParameter)
- {
- var oColumn = this.getColumnFromParameter(oParameter);
- if (oColumn !== MINI_QUERY_NO_COLUMN_FOUND)
- {
- var sIsGrouped = oColumn.getAttribute("group");
- if (sIsGrouped === "true")
- {
- return true;
- }
- }
- return false;
- };
- CMiniQueryManager.prototype.isPivoted = function (oParameter)
- {
- var oColumn = this.getColumnFromParameter(oParameter);
- if (oColumn !== MINI_QUERY_NO_COLUMN_FOUND)
- {
- var sPivot = oColumn.getAttribute("pivot");
- if (sPivot === "true")
- {
- return true;
- }
- }
- return false;
- };
- CMiniQueryManager.prototype.getGroupType = function (oParameter)
- {
- return this.getAttributeOnColumn(oParameter, "grouptype", "string");
- };
- CMiniQueryManager.prototype.getColumnRole = function (oParameter)
- {
- var bIsPivoted = this.isPivoted(oParameter);
- var bIsGrouped = this.isGrouped(oParameter);
- var sGroupType = this.getGroupType(oParameter);
- if (bIsPivoted === true)
- {
- return MINI_QUERY_GROUP_PIVOT;
- }
- else if (!bIsGrouped)
- {
- return MINI_QUERY_NONE_STR;
- }
- else if (sGroupType === "list")
- {
- return MINI_QUERY_GROUP_LIST;
- }
- else if (sGroupType === "header")
- {
- return MINI_QUERY_GROUP_SECTION;
- }
- return MINI_QUERY_NO_COLUMN_FOUND;
- };
- CMiniQueryManager.prototype.getFiltersForColumn = function (oParameter)
- {
- var aAllFiltersOnColumn = [];
- var oColumn = this.getColumnFromParameter(oParameter);
- if (oColumn === MINI_QUERY_NO_COLUMN_FOUND)
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- var sColId = oColumn.getAttribute("id");
- var aFilters = this.getElements("Filter");
- if (aFilters instanceof Array)
- {
- for (var idxFilter = 0; idxFilter < aFilters.length; idxFilter++)
- {
- if (aFilters[idxFilter].getAttribute("columnId") == sColId || aFilters[idxFilter].parentNode == oColumn)
- {
- aAllFiltersOnColumn[aAllFiltersOnColumn.length] = aFilters[idxFilter];
- }
- }
- }
- return aAllFiltersOnColumn;
- };
- CMiniQueryManager.prototype.getMetadataType = function (oParameter)
- {
- return this.getAttributeOnColumn(oParameter, "metadataType", "string");
- };
- CMiniQueryManager.prototype.getLevelNumber = function (oParameter)
- {
- return this.getAttributeOnColumn(oParameter, "levelNumber", "integer");
- };
- CMiniQueryManager.prototype.getTag = function (oParameter)
- {
- return this.getAttributeOnColumn(oParameter, "tag", "string");
- };
- CMiniQueryManager.prototype.getRegularAggregate = function (oParameter)
- {
- var sAggregate = this.getAttributeOnColumn(oParameter, "regularAggregate", "string");
- if (typeof sAggregate == "string")
- {
- return sAggregate;
- }
- else if (sAggregate == MINI_QUERY_NO_COLUMN_FOUND)
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- else
- {
- return "none";
- }
- };
- CMiniQueryManager.prototype.getDetailAggregate = function (oParameter)
- {
- var sAggregate = this.getAttributeOnColumn(oParameter, "detailAgg", "string");
- if (typeof sAggregate == "string")
- {
- return sAggregate;
- }
- else if (sAggregate == MINI_QUERY_NO_COLUMN_FOUND)
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- else
- {
- return "none";
- }
- };
- CMiniQueryManager.prototype.getSummaryAggregate = function (oParameter)
- {
- var sAggregate = this.getAttributeOnColumn(oParameter, "agg", "string");
- if (typeof sAggregate == "string")
- {
- return sAggregate;
- }
- else if (sAggregate == MINI_QUERY_NO_COLUMN_FOUND)
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- else
- {
- return "none";
- }
- };
- CMiniQueryManager.prototype.getSemiAdditive = function (oParameter)
- {
- var sSemiAdditive = this.getAttributeOnColumn(oParameter, "semiAdditive", "boolean");
- if (sSemiAdditive === MINI_QUERY_ATTRIBUTE_NOT_FOUND)
- {
- return MINI_QUERY_NONE_STR;
- }
- return sSemiAdditive;
- };
- CMiniQueryManager.prototype.getDecimalSize = function (oParameter)
- {
- return this.getAttributeOnColumn(oParameter, "decimalSize", "integer");
- };
- CMiniQueryManager.prototype.getCollapsed = function (oParameter)
- {
- return this.getAttributeOnColumn(oParameter, "collapse", "boolean");
- };
- CMiniQueryManager.prototype.getSort = function (oParameter)
- {
- return this.getAttributeOnColumn(oParameter, "sort", "string");
- };
- CMiniQueryManager.prototype.getSortBy = function (oParameter)
- {
- return this.getAttributeOnColumn(oParameter, "sortBy", "string");
- };
- CMiniQueryManager.prototype.getColumnId = function (oParameter)
- {
- return this.getAttributeOnColumn(oParameter, "id", "string");
- };
- CMiniQueryManager.prototype.getFormatType = function (oParameter)
- {
- return this.getFormatTypeGeneric(oParameter, "type");
- };
- CMiniQueryManager.prototype.getFormatTypeForAdvanced = function (oParameter)
- {
- return this.getFormatTypeGeneric(oParameter, "advanced");
- };
- CMiniQueryManager.prototype.getFormatTypeGeneric = function (oParameter, sGenericAttribute)
- {
- var oColumn = this.getColumnFromParameter(oParameter);
- if (oColumn !== MINI_QUERY_NO_COLUMN_FOUND)
- {
- var oFormat = this.getElementsByTagName("format", oColumn);
- if (oFormat === MINI_QUERY_NO_COLUMN_FOUND)
- {
- oFormat = this.getElementsByTagName("defaultFormat", oColumn);
- }
- if (oFormat !== MINI_QUERY_NO_COLUMN_FOUND && oFormat instanceof Array)
- {
- oFormat = oFormat[0];
- var sAttribute = oFormat.getAttribute(sGenericAttribute);
- if (sAttribute !== null && sAttribute !== MINI_QUERY_EMPTY_STRING_VALUE)
- {
- return sAttribute;
- }
- }
- return MINI_QUERY_ATTRIBUTE_NOT_FOUND;
- }
- return MINI_QUERY_NO_COLUMN_FOUND;
- };
- CMiniQueryManager.prototype.getPromptReferenceOnFilter = function (sId)
- {
- if (typeof sId == "string")
- {
- var oFilter = this.getElementById(sId);
- if (typeof oFilter == "object" && oFilter !== null)
- {
- var aFE_Elements = XMLHelper_FindChildrenByTagName(oFilter, "FE", true);
- if (aFE_Elements.length > 0 && typeof aFE_Elements[0] == "object" && aFE_Elements[0] != null && aFE_Elements[0].getAttribute("prompt") != "")
- {
- return aFE_Elements[0].getAttribute("prompt");
- }
- }
- }
- return MINI_QUERY_NO_COLUMN_FOUND;
- };
- CMiniQueryManager.prototype.getPromptType = function (oParameter)
- {
- var sPromptType = this.getAttributeOnColumn(oParameter, "promptType", "string");
- if (sPromptType === MINI_QUERY_ATTRIBUTE_NOT_FOUND)
- {
- return 0;
- }
- return sPromptType;
- };
- CMiniQueryManager.prototype.getPromptCascadeOnRef = function (oParameter)
- {
- var sCascade = this.getAttributeOnColumn(oParameter, "promptCascadeOnRef", "string");
- if (sCascade === MINI_QUERY_ATTRIBUTE_NOT_FOUND)
- {
- return MINI_QUERY_NONE_STR;
- }
- return sCascade;
- };
- CMiniQueryManager.prototype.getPromptFilterItemRef = function (oParameter)
- {
- var sFilterItem = this.getAttributeOnColumn(oParameter, "promptFilterItemRef", "string");
- if (sFilterItem == '' || sFilterItem === MINI_QUERY_ATTRIBUTE_NOT_FOUND)
- {
- return MINI_QUERY_NONE_STR;
- }
- return sFilterItem;
- };
- CMiniQueryManager.prototype.getFilterDataType = function (sId)
- {
- if (typeof sId == "string")
- {
- var oFilter = this.getElementById(sId);
- if (typeof oFilter == "object" && oFilter !== null)
- {
- var aFE_Elements = XMLHelper_FindChildrenByTagName(oFilter, "FE", true);
- if (aFE_Elements.length > 0 && typeof aFE_Elements[0] == "object" && aFE_Elements[0] != null && aFE_Elements[0].getAttribute("dataType") != "")
- {
- return aFE_Elements[0].getAttribute("dataType");
- }
- }
- }
- return MINI_QUERY_NO_COLUMN_FOUND;
- };
- CMiniQueryManager.prototype.isInvalid = function (obj)
- {
- return (obj === MINI_QUERY_ATTRIBUTE_NOT_FOUND || obj === MINI_QUERY_NO_COLUMN_FOUND);
- };
- CMiniQueryManager.prototype.isPromptFilterItemRefString = function (oParameter)
- {
- var bFilterItem = this.getAttributeOnColumn(oParameter, "promptFilterItemRefIsString", "boolean");
- if (bFilterItem === MINI_QUERY_ATTRIBUTE_NOT_FOUND || bFilterItem === MINI_QUERY_NO_COLUMN_FOUND)
- {
- return false;
- }
- return bFilterItem;
- };
- CMiniQueryManager.prototype.getPromptUseItemRef = function (oParameter)
- {
- var sUseItem = this.getAttributeOnColumn(oParameter, "promptUseItemRef", "string");
- if (sUseItem == '' || sUseItem === MINI_QUERY_ATTRIBUTE_NOT_FOUND)
- {
- return MINI_QUERY_NONE_STR;
- }
- return sUseItem;
- };
- CMiniQueryManager.prototype.isPromptUseItemRefString = function (oParameter)
- {
- var bUseItem = this.getAttributeOnColumn(oParameter, "promptUseItemRefIsString", "boolean");
- if (bUseItem === MINI_QUERY_ATTRIBUTE_NOT_FOUND || bUseItem === MINI_QUERY_NO_COLUMN_FOUND)
- {
- return false;
- }
- return bUseItem;
- };
- CMiniQueryManager.prototype.getPromptDisplayItemRef = function (oParameter)
- {
- var sDisplayItem = this.getAttributeOnColumn(oParameter, "promptDisplayItemRef", "string");
- if (sDisplayItem == '' || sDisplayItem === MINI_QUERY_ATTRIBUTE_NOT_FOUND)
- {
- return MINI_QUERY_NONE_STR;
- }
- return sDisplayItem;
- };
- CMiniQueryManager.prototype.getCalcType = function (oParameter)
- {
- var sCalcOp = this.getCalcOp(oParameter);
- if (sCalcOp === MINI_QUERY_NO_COLUMN_FOUND)
- {
- return MINI_QUERY_NO_COLUMN_FOUND;
- }
- if (sCalcOp !== MINI_QUERY_EMPTY_STRING_VALUE & sCalcOp !== null && sCalcOp !== MINI_QUERY_ATTRIBUTE_NOT_FOUND)
- {
- switch (sCalcOp)
- {
-
- case "sum":
- case "difference":
- case "division":
- case "product":
- case "average":
- case "maximum":
- case "minimum":
- case "percent":
- case "percentDifference":
- case "percentTotal":
- case "percentile":
- case "rank":
- case "quartile":
- case "quantile":
- case "number":
- case "round":
- case "round down":
- case "absolute":
- case "sqrt":
- case "power":
-
- case "yearDateTime":
- case "monthYearDateTime":
- case "hourDateTime":
- case "minuteDateTime":
- case "secondDateTime":
- case "dayWeekDateTime":
- case "dayMonthDateTime":
- case "dayYearDateTime":
-
- case "hourTime":
- case "minuteTime":
- case "secondTime":
- case "yearDate":
-
- case "monthYearDate":
- case "dayWeekDate":
- case "dayMonthDate":
- case "dayYearDate":
-
- case "rankInterval":
- case "daysInterval":
- case "daysBetweenDate":
- case "monthsBetweenDate":
- case "yearsBetweenDate":
- case "daysBetweenDateTime":
- case "monthsBetweenDateTime":
- case "yearsBetweenDateTime":
- return MINI_QUERY_NUMBER_STR;
-
- case "rangeString":
- case "rangeNumber":
- case "rangeDate":
- case "rangeTime":
- case "rangeInterval":
- case "rangeDateTime":
- return MINI_QUERY_RANGE_STR;
-
- case "groupString":
- case "groupNumber":
- return MINI_QUERY_GROUP_STR;
-
- case "left":
- case "right":
- case "trim":
-
- case "monthNameDate":
- case "dayNameDate":
-
- case "monthNameDateTime":
- case "dayNameDateTime":
-
- case "concatString":
- case "concatNumber":
- case "concatInterval":
- case "concatDatetime":
- case "concatDefault":
- return MINI_QUERY_STRING_STR;
-
- case "dayFirstDate":
- case "dayLastDate":
- case "adddaysDate":
- case "addmonthsDate":
- case "addyearsDate":
- case "maxDate":
- case "minDate":
- return MINI_QUERY_DATE_STR;
-
- case "maxTime":
- case "minTime":
- return MINI_QUERY_TIME_STR;
-
- case "dayFirstDateTime":
- case "dayLastDateTime":
- case "adddaysDateTime":
- case "addmonthsDateTime":
- case "addyearsDateTime":
- case "maxDateTime":
- case "minDateTime":
- return MINI_QUERY_DATETIME_STR;
-
- case "sumInterval":
- case "differenceDate":
- case "differenceTime":
- case "differenceDateTime":
- case "differenceInterval":
- case "minInterval":
- case "maxInterval":
- return MINI_QUERY_INTERVAL_STR;
-
- case "model":
- return MINI_QUERY_MODEL_STR;
- }
- return MINI_QUERY_UNKNOWN_STR;
- }
- return MINI_QUERY_ATTRIBUTE_NOT_FOUND;
- };
- CMiniQueryManager.prototype.getExpressionLocale = function()
- {
- var oCRQReportNode = this.getCRQReportNode();
- if (oCRQReportNode === MINI_QUERY_NO_MINI_QUERY)
- {
- return MINI_QUERY_EMPTY_STRING_VALUE;
- }
- var sExpressionLocale = oCRQReportNode.getAttribute("expressionLocale");
- if (sExpressionLocale === null || sExpressionLocale === MINI_QUERY_EMPTY_STRING_VALUE)
- {
- sExpressionLocale = oCRQReportNode.getAttribute("contentLocale");
- }
- if (sExpressionLocale === null)
- {
- return MINI_QUERY_EMPTY_STRING_VALUE;
- }
- return sExpressionLocale;
- };
- CMiniQueryManager.prototype.getColumnIndexByAttribute = function(sAttName, sAttValue)
- {
- if (typeof sAttName == "string" && typeof sAttValue == "string")
- {
- var aAllCols = this.getAllColumns();
- for (var idxCols = 0; idxCols < aAllCols.length; idxCols++)
- {
- if (aAllCols[idxCols].getAttribute(sAttName) === sAttValue)
- {
- return idxCols;
- }
- }
- }
- return MINI_QUERY_INVALID_INDEX;
- };
- CMiniQueryManager.prototype.findChildrenByNameWithAttribute = function(sElementName, sAttributeName, sAttributeValue)
- {
- var aAllCols = this.getElementsByTagName(sElementName);
- for (var idxCols = 0; idxCols < aAllCols.length; idxCols++)
- {
- if (aAllCols[idxCols].getAttribute(sAttributeName) == sAttributeValue)
- {
- return aAllCols[idxCols]
- }
- }
- return MINI_QUERY_NO_COLUMN_FOUND;
- };
- CMiniQueryManager.prototype.setAutoSummary = function(sAutoSummary)
- {
- var oCRQReportNode = this.getCRQReportNode();
- if(oCRQReportNode !== MINI_QUERY_NO_MINI_QUERY)
- {
- if(sAutoSummary === "false")
- {
- oCRQReportNode.setAttribute("autoSummary", sAutoSummary);
- }
- else
- oCRQReportNode.removeAttribute("autoSummary");
-
- }
- };
- CMiniQueryManager.prototype.setAutoFooterSummary = function(sAutoFooterSummary)
- {
- var oCRQReportNode = this.getCRQReportNode();
- if(oCRQReportNode !== MINI_QUERY_NO_MINI_QUERY)
- {
- if(sAutoFooterSummary === "false")
- oCRQReportNode.setAttribute("autoFooterSummary", sAutoFooterSummary);
- else
- oCRQReportNode.removeAttribute("autoFooterSummary");
-
- }
- };
- CMiniQueryManager.prototype.setEnableDrill = function(sEnableDrill)
- {
- var oCRQReportNode = this.getCRQReportNode();
- if(oCRQReportNode !== MINI_QUERY_NO_MINI_QUERY)
- {
- oCRQReportNode.setAttribute("enableDrill", sEnableDrill);
- }
- };
- CMiniQueryManager.prototype.setEnableModelDrill = function(sEnableModelDrill)
- {
- var oCRQReportNode = this.getCRQReportNode();
- if(oCRQReportNode !== MINI_QUERY_NO_MINI_QUERY)
- {
- oCRQReportNode.setAttribute("enableModelDrill", sEnableModelDrill);
- }
- };
- CMiniQueryManager.prototype.getAutoSummary = function()
- {
- var oCRQReportNode = this.getCRQReportNode();
- if(oCRQReportNode !== MINI_QUERY_NO_MINI_QUERY && oCRQReportNode.getAttribute("autoSummary") === "false")
- {
- return "false";
- }
- else
- {
- return "true"
- }
- };
- CMiniQueryManager.prototype.getAutoFooterSummary = function()
- {
- var oCRQReportNode = this.getCRQReportNode();
- if(oCRQReportNode !== MINI_QUERY_NO_MINI_QUERY && oCRQReportNode.getAttribute("autoFooterSummary") === "false")
- {
- return "false";
- }
- else
- {
- return "true"
- }
- };
- CMiniQueryManager.prototype.getEnableDrill = function()
- {
- var oCRQReportNode = this.getCRQReportNode();
- if(oCRQReportNode !== MINI_QUERY_NO_MINI_QUERY && oCRQReportNode.getAttribute("enableDrill") === "true")
- {
- return "true"
- }
- else
- {
- return "false"
- }
- };
- CMiniQueryManager.prototype.getEnableModelDrill = function()
- {
- var oCRQReportNode = this.getCRQReportNode();
- if(oCRQReportNode !== MINI_QUERY_NO_MINI_QUERY && oCRQReportNode.getAttribute("enableModelDrill") === "true")
- {
- return "true";
- }
- else
- {
- return "false";
- }
- };
- CMiniQueryManager.prototype.setLimitData = function(sLimitData)
- {
- var oCRQReportNode = this.getCRQReportNode();
- if (oCRQReportNode !== MINI_QUERY_NO_MINI_QUERY)
- {
-
- this.m_sPreviousDataMode = oCRQReportNode.getAttribute("limitData");
-
- switch (sLimitData)
- {
- case "partial":
- oCRQReportNode.setAttribute("limitData", sLimitData);
- break;
- case "nodata":
- case "none":
- sLimitData = "none";
- oCRQReportNode.setAttribute("limitData", sLimitData);
- break;
- case "full":
- default:
-
- oCRQReportNode.removeAttribute("limitData");
- break;
- }
- }
- };
- CMiniQueryManager.prototype.getLimitData = function()
- {
- var sLimitData = "full";
- var oCRQReportNode = this.getCRQReportNode();
- if (typeof oCRQReportNode === "object")
- {
- var limitData = oCRQReportNode.getAttribute("limitData");
- if (typeof limitData === "string")
- {
- sLimitData = limitData;
- }
- }
- return sLimitData;
- };
- CMiniQueryManager.prototype.hasLimitDataChanged = function()
- {
- var oCRQReportNode = this.getCRQReportNode();
- var bResult = false;
- if (oCRQReportNode !== MINI_QUERY_NO_MINI_QUERY)
- {
- var sCurrentDataMode = oCRQReportNode.getAttribute("limitData");
- bResult = (sCurrentDataMode !== this.m_sPreviousDataMode)
- }
- return bResult;
- };
- CMiniQueryManager.prototype.toString = function()
- {
- var sMiniQuery = null;
- var oMiniQueryMarkup = XMLParser(XMLBuilderSerializeNode(this.getCRQReportNode()));
- if (oMiniQueryMarkup !== null && typeof oMiniQueryMarkup === "object")
- {
- sMiniQuery = oMiniQueryMarkup.toString();
- }
- return sMiniQuery;
- };
- CMiniQueryManager.prototype.filterExists = function()
- {
- var aFilters = this.getElementsByTagName("Filter");
- if (aFilters !== MINI_QUERY_NO_COLUMN_FOUND && aFilters.length >= 1)
- {
- return true;
- }
- return false;
- };
- CMiniQueryManager.prototype.getModelFilterNode = function(filterName)
- {
- var modelFilterNode = null;
- var aFilters = this.getElementsByTagName("Filter");
- 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.getAttribute("name") == filterName || nFilter.getAttribute("modelFilter") == filterName))
- {
- modelFilterNode = nFilter;
- break;
- }
- }
- }
- return modelFilterNode;
- };
|