CReportManager.js 53 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165
  1. /****************************************************************
  2. ** Licensed Materials - Property of IBM
  3. **
  4. ** BI and PM: qs
  5. **
  6. ** (C) Copyright IBM Corp. 2001, 2015
  7. **
  8. ** US Government Users Restricted Rights - Use, duplication or
  9. ** disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  10. *****************************************************************/
  11. // Copyright (C) 2008 Cognos ULC, an IBM Company. All Rights Reserved.
  12. // 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.
  13. var REPORT_MANAGER = -1;
  14. function CReportManager()
  15. {
  16. this.m_oWindowMgr = null;
  17. this.m_oReportFrame = null;
  18. this.m_oCVObject = null;
  19. this.m_oApplicationMgr = null;
  20. this.m_oParameterManager = null;
  21. this.m_oUndoManager = null;
  22. this.m_oDrillThroughParameterValues = null;
  23. this.m_bIsCommandRunning = false;
  24. this.m_aQueuedRequests = new Array();
  25. };
  26. CReportManager.prototype = new CDictionary();
  27. CReportManager.prototype.init = function ()
  28. {
  29. if (typeof CWindowManager == "function")
  30. {
  31. this.m_oWindowMgr = goApplicationManager.getWindowManager();
  32. }
  33. else
  34. {
  35. this.m_oWindowMgr = self;
  36. }
  37. this.m_oReportFrame = goApplicationManager.getReportFrame();
  38. this.setupDefaultVariables();
  39. this.m_oParameterManager = new CParameterManager();
  40. this.m_oParameterManager.init();
  41. this.createNewUndoManager();
  42. };
  43. CReportManager.prototype.setupDefaultVariables = function ()
  44. {
  45. this.add("currentMode", "reporting");
  46. this.add("bReportReady", false);
  47. this.add("reportState", "");
  48. this.add("onloadState", -1);
  49. };
  50. CReportManager.prototype.onLoadSetup = function (iReportState)
  51. {
  52. this.add("onloadState", iReportState);
  53. this.setupValuesFromCVObj();
  54. this.updateStateFromCVObj();
  55. clearReportFrameOnUnload();
  56. if (typeof goApplicationManager != "undefined" && typeof goApplicationManager.getReportFrame == "function" && goApplicationManager.getReportFrame() && typeof goApplicationManager.getReportFrame().window == "object")
  57. {
  58. var iframeWindow = goApplicationManager.getReportFrame().window;
  59. if (iframeWindow.attachEvent)
  60. {
  61. iframeWindow.attachEvent("onunload", unloadReportFrame);
  62. }
  63. else if (iframeWindow.addEventListener)
  64. {
  65. iframeWindow.addEventListener("unload", unloadReportFrame, false);
  66. }
  67. else
  68. {
  69. try
  70. {
  71. var oUnload = iframeWindow.onunload;
  72. if ( !(""+oUnload).match(/unloadReportFrame/gi) )
  73. {
  74. iframeWindow.oUnloadQS_onunload = window.onunload;
  75. iframeWindow.onunload = function()
  76. {
  77. iframeWindow.oUnloadQS_onunload();
  78. unloadReportFrame();
  79. };
  80. }
  81. }
  82. catch (e)
  83. {
  84. }
  85. }
  86. }
  87. var oCVObj = this.getCVObj();
  88. if (oCVObj !== null)
  89. {
  90. if (oCVObj.getStatus() === "working" || oCVObj.getStatus() === "stillWorking")
  91. {
  92. this.showSpinner(true);
  93. }
  94. else
  95. {
  96. this.showSpinner(false);
  97. }
  98. }
  99. };
  100. CReportManager.prototype.asyncSubmit = function(bLeaveDialog, oQSRequest)
  101. {
  102. if (!bLeaveDialog && typeof (hideDialogFrame) == "function")
  103. {
  104. hideDialogFrame();
  105. }
  106. if (this.isCommandRunning() == true)
  107. {
  108. this.queueRequest(oQSRequest);
  109. return;
  110. }
  111. this.setCommandRunning(true);
  112. var bUpdateMiniQueryWithUserPreference = cfgGet("updateMiniQueryWithUserPreference");
  113. var bOverwriteSetting = cfgGet("overwriteSetting");
  114. var bIsNewReport = cfgGet("NewReport");
  115. if ( bOverwriteSetting === "true" )
  116. {
  117. this.persistQueryOptions();
  118. }
  119. else if (bIsNewReport || bUpdateMiniQueryWithUserPreference === "true")
  120. {
  121. this.updateMiniQueryWithUserPreference();
  122. this.persistQueryOptions();
  123. }
  124. else
  125. {
  126. this.persistQueryOptions();
  127. }
  128. if (bUpdateMiniQueryWithUserPreference === "true")
  129. {
  130. cfgRemove("updateMiniQueryWithUserPreference");
  131. }
  132. if (! oQSRequest.getOption("ui.spec"))
  133. {
  134. var sMiniQuery = this.getApplicationManager().getMiniQueryManager().toString();
  135. oQSRequest.addOption("ui.spec", sMiniQuery);
  136. var aPromptValues = this.getParameterManager().getPromptPageParameters();
  137. if (this.isFilterCommand(oQSRequest.getOption("ui.command")) && oQSRequest.getOption("qs.addParameterValues") === "true")
  138. {
  139. aPromptValues = this.getParameterManager().getPreviousPromptPageParameters();
  140. }
  141. this.getUndoManager().addToUndo(cfgGet("conversation_qs_spec"), null, aPromptValues);
  142. }
  143. var sTracking = cfgGet("m_tracking");
  144. if (sTracking != null && sTracking != "")
  145. {
  146. oQSRequest.addOption("m_tracking", sTracking);
  147. }
  148. if (oQSRequest.getOption("ui.conversation"))
  149. {
  150. oQSRequest.addOption("ui.conversation", this.get("uiConversation"));
  151. }
  152. if (typeof cafContextId === "string")
  153. {
  154. oQSRequest.addOption("ui.cafcontextid", cafContextId);
  155. }
  156. if (typeof routingServerGroup == "string")
  157. {
  158. oQSRequest.addOption("ui.routingServerGroup", routingServerGroup);
  159. }
  160. var oldUnload = window.onbeforeunload;
  161. window.onbeforeunload = null;
  162. this.sendQSRequest(oQSRequest);
  163. window.onbeforeunload = oldUnload;
  164. };
  165. CReportManager.prototype.setDrillAndQueryParameters = function (spec)
  166. {
  167. if(!spec)
  168. return;
  169. var CRQReport = XMLBuilderLoadXMLFromString(spec);
  170. if(CRQReport!== null && CRQReport.documentElement!== null)
  171. {
  172. var selectionController = this.getCVSelectionController();
  173. if(typeof selectionController !== "undefined")
  174. {
  175. var sEnableModelDrill = CRQReport.documentElement.getAttribute("enableModelDrill");
  176. if(sEnableModelDrill === "true")
  177. selectionController.setModelDrillThroughEnabled(true);
  178. else
  179. selectionController.setModelDrillThroughEnabled(false);
  180. var sEnableDrill = CRQReport.documentElement.getAttribute("enableDrill")
  181. if(sEnableDrill === "true")
  182. selectionController.setDrillUpDownEnabled(true);
  183. else
  184. selectionController.setDrillUpDownEnabled(false);
  185. if (cfgGet("manageFileMode") != "true")
  186. {
  187. cfgSet("enableDrill", sEnableDrill);
  188. cfgSet("enableModelDrill", sEnableModelDrill);
  189. var sAutoSummary = CRQReport.documentElement.getAttribute("autoSummary");
  190. if (sAutoSummary == null)
  191. {
  192. cfgSet("autoSummary", true);
  193. } else {
  194. cfgSet("autoSummary", sAutoSummary);
  195. }
  196. var sAutoFooterSummary = CRQReport.documentElement.getAttribute("autoFooterSummary");
  197. if (sAutoFooterSummary == null)
  198. {
  199. cfgSet("autoFooterSummary", true);
  200. } else {
  201. cfgSet("autoFooterSummary", sAutoFooterSummary);
  202. }
  203. }
  204. }
  205. }
  206. };
  207. CReportManager.prototype.setupLiveReport = function ()
  208. {
  209. if (this.get("setNewReport") === true && cfgGet("ReportName") == null && cfgGet("NewReport") == null)
  210. {
  211. cfgSet("NewReport", true);
  212. }
  213. if (this.get("asyncObjValue") !== null)
  214. {
  215. cfgSet("ASYNC_OBJ", this.get("asyncObjValue"));
  216. }
  217. this.add("bReportReady", true);
  218. cfgSet("SearchPath", this.get("searchPathValue"));
  219. if (typeof clearCommandBuffer == "function")
  220. {
  221. clearCommandBuffer();
  222. }
  223. this.setupMiniQuery(this.get("sMiniQueryMarkup"));
  224. qsDefaults();
  225. var oMQMgr = this.getApplicationManager().getMiniQueryManager();
  226. if (oMQMgr != null)
  227. {
  228. var aAllCols = oMQMgr.getAllColumns();
  229. for (var idxSize = 0; idxSize < aAllCols.length; idxSize++)
  230. {
  231. cfgSetDefaultAt(idxSize);
  232. if (aAllCols[idxSize].hasChildNodes() === true)
  233. {
  234. for (var idxCol = 0; idxCol < aAllCols[idxSize].childNodes.length; idxCol++)
  235. {
  236. if ((aAllCols[idxSize].childNodes[idxCol].nodeName == "format" || aAllCols[idxSize].childNodes[idxCol].nodeName == "defaultFormat") && aAllCols[idxSize].childNodes[idxCol].hasChildNodes())
  237. {
  238. var aColFormat = [aAllCols[idxSize].childNodes[idxCol].childNodes[0].nodeName];
  239. for (var idxAttr = 0; idxAttr < aAllCols[idxSize].childNodes[idxCol].childNodes[0].attributes.length; idxAttr++)
  240. {
  241. aColFormat[aColFormat.length] = aAllCols[idxSize].childNodes[idxCol].childNodes[0].attributes[idxAttr].nodeName;
  242. aColFormat[aColFormat.length] = aAllCols[idxSize].childNodes[idxCol].childNodes[0].attributes[idxAttr].nodeValue;
  243. }
  244. cf.cfgSetAt("ColFormat", idxSize, aColFormat);
  245. }
  246. }
  247. }
  248. }
  249. }
  250. if (typeof gsUiSpec !== "undefined" && typeof this.m_oReportFrame !== "undefined" && typeof this.m_oReportFrame.document.formWarpRequest !== "undefined")
  251. {
  252. this.m_oReportFrame.document.formWarpRequest['ui.spec'].value = gsUiSpec;
  253. }
  254. this.setDataModeFromMiniQuery();
  255. this.drawPreview();
  256. this.handleNotifiers();
  257. this.setConversationHiddenInputInFormWarpRequest();
  258. if (this.getCVSelectionController())
  259. {
  260. this.getCVSelectionController().onSelectionChange();
  261. }
  262. if (typeof reselectColumns == "function")
  263. {
  264. reselectColumns();
  265. }
  266. if (typeof showMetadataLoading == "function")
  267. {
  268. this.getApplicationManager().getFeatureManager().launchFeature("DBar");
  269. showMetadataLoading();
  270. }
  271. this.loadTextInStartPage();
  272. this.setDataModeAfterPreview();
  273. cfgSet("conversation_qs_spec", oMQMgr.toString());
  274. cfgSet("MiniQueryObj", XMLParser(XMLBuilderSerializeNode(oMQMgr.getCRQReportNode())));
  275. this.setCommandRunning(false);
  276. var oNextQSRequest = this.getNextRequest();
  277. if (oNextQSRequest && typeof oNextQSRequest === "object")
  278. {
  279. this.asyncSubmit(false, oNextQSRequest);
  280. }
  281. };
  282. CReportManager.prototype.setupMiniQuery = function (sMiniQuery)
  283. {
  284. if (sMiniQuery !== null)
  285. {
  286. var oMQMgr = this.getApplicationManager().getMiniQueryManager();
  287. oMQMgr.setMiniQuery(stripSignature(sMiniQuery));
  288. var reportName = cfgGet("ReportName");
  289. if (typeof reportName != "undefined" && reportName.length)
  290. {
  291. oMQMgr.getCRQReportNode().setAttribute("queryName", reportName);
  292. }
  293. }
  294. };
  295. CReportManager.prototype.handleNotifiers = function ()
  296. {
  297. try
  298. {
  299. if (typeof toolbarNotifier != "undefined")
  300. {
  301. var oObserver = null;
  302. if (this.getCVSelectionController() && typeof this.getCVSelectionController().attachObserver == "function")
  303. {
  304. oObserver = this.getCVSelectionController().getObservers();
  305. if (!oObserver.hasObserver(toolbarNotifier))
  306. {
  307. this.getCVSelectionController().attachObserver(toolbarNotifier);
  308. }
  309. }
  310. if (this.m_oReportFrame.g_reportSelectionController && typeof this.m_oReportFrame.g_reportSelectionController.attachObserver == "function")
  311. {
  312. oObserver = this.m_oReportFrame.g_reportSelectionController.getObservers();
  313. if (!oObserver.hasObserver(toolbarNotifier))
  314. {
  315. this.m_oReportFrame.g_reportSelectionController.attachObserver(toolbarNotifier);
  316. }
  317. }
  318. }
  319. if (typeof this.m_oReportFrame.reselectReportSelections == "function")
  320. {
  321. this.m_oReportFrame.reselectReportSelections();
  322. }
  323. this.setupReportEvents();
  324. }
  325. catch (e)
  326. {
  327. }
  328. };
  329. CReportManager.prototype.cancel = function ()
  330. {
  331. this.setCommandRunning(false);
  332. clearReportFrameOnUnload();
  333. if (this.get("bReportReady") === false && this.get("currentMode") == "prompting")
  334. {
  335. this.cancelFirstPrompt();
  336. }
  337. else if (this.get("bReportReady") === false)
  338. {
  339. closeLink(true);
  340. }
  341. else if (this.get("currentMode") == "busy")
  342. {
  343. this.cancelBusy();
  344. }
  345. else if (this.get("currentMode") == "prompting")
  346. {
  347. this.cancelPrompting();
  348. }
  349. };
  350. CReportManager.prototype.cancelFirstPrompt = function ()
  351. {
  352. var oUndoManager = this.getUndoManager();
  353. if (typeof oUndoManager === "object" && oUndoManager)
  354. {
  355. var sMiniQuery = this.get("sMiniQueryMarkup");
  356. if (sMiniQuery && sMiniQuery.length)
  357. {
  358. oUndoManager.executeSpec(sMiniQuery);
  359. }
  360. else
  361. {
  362. bannerHome(cfgGet("gsCognosHome"));
  363. }
  364. }
  365. };
  366. CReportManager.prototype.cancelPrompting = function ()
  367. {
  368. var oUndoManager = this.getUndoManager();
  369. if (typeof oUndoManager === "object" && oUndoManager)
  370. {
  371. if (oUndoManager.canUndo())
  372. {
  373. oUndoManager.undo();
  374. }
  375. else
  376. {
  377. window.history.back();
  378. }
  379. }
  380. };
  381. CReportManager.prototype.cancelBusy = function ()
  382. {
  383. if (!this.get("cancelClicked"))
  384. {
  385. this.add("cancelClicked", true);
  386. }
  387. };
  388. CReportManager.prototype.setReportParameters = function (oParams)
  389. {
  390. if (typeof oParams == "object")
  391. {
  392. for (var idxParams in oParams)
  393. {
  394. this.add(idxParams, oParams[idxParams]);
  395. }
  396. }
  397. this.setupCVCallbacksForQS();
  398. };
  399. CReportManager.prototype.drawPreview = function ()
  400. {
  401. if (typeof showPreview === "undefined")
  402. {
  403. return;
  404. }
  405. var oMQMgr = this.getApplicationManager().getMiniQueryManager();
  406. var oCRQReport = oMQMgr.getCRQReportNode();
  407. if (typeof oCRQReport == "object" && (oCRQReport.getAttribute("limitData") == "partial" || oCRQReport.getAttribute("limitData") == "none"))
  408. {
  409. redrawSelf();
  410. showPreview(true);
  411. }
  412. else
  413. {
  414. showPreview();
  415. }
  416. };
  417. CReportManager.prototype.loadTextInStartPage = function ()
  418. {
  419. var oMQMgr = this.getApplicationManager().getMiniQueryManager();
  420. var aAllColumns = oMQMgr.getAllColumns();
  421. var aAllHiddenColumns = oMQMgr.getElementsByAttribute("hide", "true");
  422. if ((aAllColumns.length == 0 || (typeof aAllHiddenColumns == "object" && (aAllColumns.length == aAllHiddenColumns.length)) || this.m_oReportFrame.document.getElementById("startPageDragDropLine1")) && this.m_oReportFrame)
  423. {
  424. this.getApplicationManager().add("showStartPage", true);
  425. var oStartPageDragDropLine1 = this.m_oReportFrame.document.getElementById("startPageDragDropLine1");
  426. if (oStartPageDragDropLine1)
  427. {
  428. while (oStartPageDragDropLine1.hasChildNodes())
  429. {
  430. oStartPageDragDropLine1.removeChild(oStartPageDragDropLine1.firstChild);
  431. }
  432. oStartPageDragDropLine1.appendChild(this.m_oReportFrame.document.createTextNode(StartPageDragDropLine1));
  433. }
  434. var oStartPageDragDropLine2 = this.m_oReportFrame.document.getElementById("startPageDragDropLine2");
  435. if (oStartPageDragDropLine2)
  436. {
  437. while (oStartPageDragDropLine2.hasChildNodes())
  438. {
  439. oStartPageDragDropLine2.removeChild(oStartPageDragDropLine2.firstChild);
  440. }
  441. oStartPageDragDropLine2.appendChild(this.m_oReportFrame.document.createTextNode(StartPageDragDropLine2));
  442. }
  443. var oStartPageTipsLine1 = this.m_oReportFrame.document.getElementById("startPageTipsLine1");
  444. if (oStartPageTipsLine1)
  445. {
  446. while (oStartPageTipsLine1.hasChildNodes())
  447. {
  448. oStartPageTipsLine1.removeChild(oStartPageTipsLine1.firstChild);
  449. }
  450. oStartPageTipsLine1.appendChild(this.m_oReportFrame.document.createTextNode(StartPageTipsLine1));
  451. }
  452. var oStartPageTipsLine2 = this.m_oReportFrame.document.getElementById("startPageTipsLine2");
  453. if (oStartPageTipsLine2)
  454. {
  455. while (oStartPageTipsLine2.hasChildNodes())
  456. {
  457. oStartPageTipsLine2.removeChild(oStartPageTipsLine2.firstChild);
  458. }
  459. oStartPageTipsLine2.appendChild(this.m_oReportFrame.document.createTextNode(StartPageTipsLine2));
  460. }
  461. }
  462. else
  463. {
  464. this.getApplicationManager().remove("showStartPage");
  465. }
  466. };
  467. CReportManager.prototype.setConversationHiddenInputInFormWarpRequest = function ()
  468. {
  469. var oRepMgr = this.getApplicationManager().getReportManager();
  470. if (! oRepMgr.m_oReportFrame)
  471. {
  472. return;
  473. }
  474. var sPrimReq = cfgGet('conversation_primaryRequest');
  475. if (sPrimReq !== null && oRepMgr.get("bReportReady"))
  476. {
  477. var oFWR = oRepMgr.m_oReportFrame.document.formWarpRequest;
  478. if (oFWR)
  479. {
  480. if (oFWR["ui.conversation"])
  481. {
  482. oFWR["ui.conversation"].value = sPrimReq;
  483. }
  484. if (oFWR.parameterValues)
  485. {
  486. oFWR.parameterValues.value = cfgGet('parameterValues');
  487. }
  488. if (oFWR.m_tracking)
  489. {
  490. oFWR.m_tracking.value = cfgGet('m_tracking');
  491. }
  492. if (oFWR.m_tracking)
  493. {
  494. oFWR.m_tracking.value = cfgGet('m_tracking');
  495. }
  496. }
  497. }
  498. else
  499. {
  500. setTimeout(oRepMgr.setConversationHiddenInputInFormWarpRequest, 10);
  501. }
  502. var oReportTitleLink = oRepMgr.m_oReportFrame.document.getElementById("reportTitleLink");
  503. if (oReportTitleLink)
  504. {
  505. oReportTitleLink.setAttribute("title", reportTitleTip);
  506. }
  507. };
  508. CReportManager.prototype.setupReportEvents = function ()
  509. {
  510. if (document.all)
  511. {
  512. var oReportDocumentBody = this.m_oReportFrame.document.body;
  513. oReportDocumentBody.attachEvent("onkeydown", keydown);
  514. oReportDocumentBody.attachEvent("onmouseup", mainMouseUp);
  515. oReportDocumentBody.attachEvent("onmousemove", mouseMove);
  516. oReportDocumentBody.attachEvent("ondragenter", dragEnter);
  517. oReportDocumentBody.attachEvent("ondragover", dragOver);
  518. oReportDocumentBody.attachEvent("ondragleave", dragLeave);
  519. oReportDocumentBody.attachEvent("ondrop", tempDropColumn);
  520. }
  521. else
  522. {
  523. var oReportDocumentBody = this.m_oReportFrame.document;
  524. oReportDocumentBody.addEventListener("keydown", keydown, true);
  525. oReportDocumentBody.addEventListener("mouseup", mainMouseUp, true);
  526. oReportDocumentBody.addEventListener("mousemove", mouseMove, true);
  527. oReportDocumentBody.addEventListener("dragenter", dragEnter, true);
  528. oReportDocumentBody.addEventListener("dragover", dragOver, true);
  529. oReportDocumentBody.addEventListener("dragleave", dragLeave, true);
  530. oReportDocumentBody.addEventListener("drop", tempDropColumn ,true);
  531. }
  532. };
  533. CReportManager.prototype.getCVObj = function ()
  534. {
  535. if (typeof this.m_oReportFrame == "undefined" || this.m_oReportFrame === null)
  536. {
  537. this.m_oReportFrame = goApplicationManager.getReportFrame();
  538. }
  539. if (!this.m_oReportFrame)
  540. {
  541. return null;
  542. }
  543. var oCVQS = this.m_oReportFrame.oCVQS;
  544. if (typeof oCVQS == "undefined" || oCVQS === null)
  545. {
  546. return null;
  547. }
  548. this.setupCVCallbacksForQS(oCVQS);
  549. return oCVQS;
  550. };
  551. CReportManager.prototype.getCVSelectionController = function ()
  552. {
  553. if (typeof this.m_oReportFrame == "undefined" || this.m_oReportFrame === null)
  554. {
  555. this.m_oReportFrame = goApplicationManager.getReportFrame();
  556. }
  557. if (!this.m_oReportFrame)
  558. {
  559. return null;
  560. }
  561. try
  562. {
  563. if (typeof this.m_oReportFrame.oCVSCQS == "undefined")
  564. {
  565. return null;
  566. }
  567. return this.m_oReportFrame.oCVSCQS;
  568. }
  569. catch (exception)
  570. {
  571. }
  572. return null;
  573. };
  574. CReportManager.prototype.setupCVCallbacksForQS = function (oCVObj)
  575. {
  576. if (typeof oCVObj == "undefined")
  577. {
  578. oCVObj = this.getCVObj();
  579. }
  580. if (oCVObj !== null && !oCVObj.QSCallbacksSet)
  581. {
  582. oCVObj.addCallback("cancel", cancelRequest, false);
  583. oCVObj.addCallback("done", reportIsReadyCallback, false);
  584. oCVObj.addCallback("error", reportHasErrorCallback, false);
  585. oCVObj.addCallback("prompt", reportIsPromptingCallback, true);
  586. oCVObj.addCallback("wait", reportIsWaitingCallback, false);
  587. oCVObj.QSCallbacksSet = true;
  588. }
  589. };
  590. CReportManager.prototype.createRequest = function (sAction)
  591. {
  592. var oQSRequest = new CCognosViewerRequest(sAction);
  593. var oCVObj = this.getCVObj();
  594. if (oCVObj !== null && typeof sAction == "string")
  595. {
  596. this.m_oReportFrame.oQSRequest = oQSRequest;
  597. }
  598. return oQSRequest;
  599. };
  600. CReportManager.prototype.sendRequest = function (oQSRequest)
  601. {
  602. var oCVObj = this.getCVObj();
  603. if (oCVObj === null || typeof oQSRequest != "object")
  604. {
  605. return this.sendQSRequest(oQSRequest);
  606. }
  607. clearReportFrameOnUnload();
  608. oCVObj.setUsePageRequest(true);
  609. if (! oQSRequest.hasOption("b_action"))
  610. {
  611. oQSRequest.addOption("b_action", "cognosViewer");
  612. oQSRequest.addOption("cv.responseFormat", "qs");
  613. oQSRequest.addOption("run.outputFormat", "HTMLFragment");
  614. oQSRequest.addOption("run.xslURL", "qs.xsl");
  615. oQSRequest.addOption("specificationType", "reportServiceQuerySpecification");
  616. oQSRequest.addOption("cv.id", "QS");
  617. oQSRequest.addOption("cv.header", "false");
  618. oQSRequest.addOption("cv.toolbar", "false");
  619. oQSRequest.addOption("cv.useAjax", "false");
  620. if (cfgGet("FirstRunQS"))
  621. {
  622. oQSRequest.addOption("qs.firstRun", "true");
  623. }
  624. var sParams = this.getParameterManager().getParameterValues(false);
  625. if (sParams != "")
  626. {
  627. oQSRequest.addOption("parameterValues", sParams);
  628. oQSRequest.addOption("qs.addParameterValues", "true");
  629. }
  630. }
  631. oCVObj.sendRequest(oQSRequest);
  632. return true;
  633. };
  634. CReportManager.prototype.sendQSRequest = function (oQSRequest)
  635. {
  636. var rf = goApplicationManager.getReportFrame();
  637. if (!rf)
  638. {
  639. return false;
  640. }
  641. var f = rf.document.createElement("FORM");
  642. f.method = "POST";
  643. f.action = goApplicationManager.get("scriptEngine");
  644. f.target = "";
  645. f.style.margin = "0px";
  646. var b = rf.document.getElementsByTagName("BODY");
  647. if (b != null && b[0] != null)
  648. {
  649. b = b[0];
  650. }
  651. else
  652. {
  653. b = rf.document.documentElement;
  654. }
  655. b.appendChild(f);
  656. while (f.hasChildNodes())
  657. {
  658. f.removeChild(f.firstChild);
  659. }
  660. for (var n in oQSRequest.m_oOptions.m_aValues)
  661. {
  662. var values = makeArray(oQSRequest.m_oOptions.m_aValues[n]);
  663. for (var v in values)
  664. {
  665. createHiddenInput(rf, f, n, values[v]);
  666. }
  667. }
  668. var oldUnload = window.onbeforeunload;
  669. window.onbeforeunload = null;
  670. clearReportFrameOnUnload();
  671. f.submit();
  672. window.onbeforeunload = oldUnload;
  673. return true;
  674. };
  675. CReportManager.prototype.setRequestDefaultOptions = function (oQSRequest)
  676. {
  677. if (!oQSRequest || ! typeof oQSRequest === "object")
  678. {
  679. return;
  680. }
  681. oQSRequest.addOption("b_action", "xts.run");
  682. oQSRequest.addOption("app", cfgGet("APPLICATION_NAME"));
  683. var productLocale = goApplicationManager.get("productLocale");
  684. if (productLocale != null && productLocale != "")
  685. oQSRequest.addOption("productLocale", productLocale);
  686. var contentLocale = goApplicationManager.get("contentLocale");
  687. if (contentLocale != null && contentLocale != "")
  688. oQSRequest.addOption("contentLocale", contentLocale);
  689. return oQSRequest;
  690. };
  691. CReportManager.prototype.setRequestDefaultOptionsForCV = function (bPassConversation, bPassURLParameters, sPassParameterValues, oQSRequest)
  692. {
  693. oQSRequest.addOption("b_action", "cognosViewer");
  694. oQSRequest.addOption("cv.responseFormat", "qs");
  695. oQSRequest.addOption("run.outputFormat", "HTMLFragment");
  696. oQSRequest.addOption("run.xslURL", "qs.xsl");
  697. oQSRequest.addOption("specificationType", "reportServiceQuerySpecification");
  698. oQSRequest.addOption("cv.id", "QS");
  699. oQSRequest.addOption("cv.header", "false");
  700. oQSRequest.addOption("cv.toolbar", "false");
  701. oQSRequest.addOption("cv.useAjax", "false");
  702. if (cfgGet("FirstRunQS"))
  703. {
  704. oQSRequest.addOption("qs.firstRun", "true");
  705. if (this.getParameterManager().getDrillThroughParameterValues())
  706. {
  707. oQSRequest.addOption("ui.drillThroughTargetParameterValues", this.getParameterManager().getDrillThroughParameterValues().toString());
  708. }
  709. }
  710. var oParamMgr = this.getParameterManager();
  711. if (bPassConversation === true)
  712. {
  713. oQSRequest.addOption("ui.conversation", this.get("uiConversation"));
  714. }
  715. if (bPassURLParameters !== false)
  716. {
  717. var aParams = oParamMgr.getParametersArray();
  718. if (getArrayLength(aParams) > 0)
  719. {
  720. for (var idxParm in aParams)
  721. {
  722. oQSRequest.addOption(idxParm, aParams[idxParm]);
  723. }
  724. }
  725. }
  726. if (typeof sPassParameterValues == "string")
  727. {
  728. var sMetaParams = oParamMgr.getMetadataParameters();
  729. if (sMetaParams !== null && oParamMgr.getMetadataParametersPassed() === false && sPassParameterValues.match(/any|meta/))
  730. {
  731. oQSRequest.addOption("parameterValues", oParamMgr.getCompleteMetadataParameters());
  732. oQSRequest.addOption("qs.addParameterValues", "true");
  733. oParamMgr.setMetadataParametersPassed(true);
  734. }
  735. else if (oParamMgr.getExecutionParameters() && sPassParameterValues.match(/any|exec/))
  736. {
  737. oQSRequest.addOption("parameterValues", oParamMgr.getExecutionParameters());
  738. oQSRequest.addOption("qs.addParameterValues", "true");
  739. }
  740. else if (cfgGet("parameterValues") && sPassParameterValues.match(/any|pv/))
  741. {
  742. oQSRequest.addOption("parameterValues", cfgGet("parameterValues"));
  743. oQSRequest.addOption("qs.addParameterValues", "true");
  744. }
  745. }
  746. };
  747. CReportManager.prototype.queueRequest = function (oQSRequest)
  748. {
  749. this.m_aQueuedRequests.push(oQSRequest);
  750. };
  751. CReportManager.prototype.getNextRequest = function ()
  752. {
  753. return this.m_aQueuedRequests.shift();
  754. };
  755. CReportManager.prototype.handleNavigationLinks = function ()
  756. {
  757. var oCVObj = this.getCVObj();
  758. if (oCVObj !== null)
  759. {
  760. var aSecondaryRequests = oCVObj.m_aSecRequests;
  761. var bHasNextPage = false;
  762. var bHasPreviousPage = false;
  763. for (var idxSecReqs = 0; idxSecReqs < aSecondaryRequests.length; idxSecReqs++)
  764. {
  765. if (aSecondaryRequests[idxSecReqs] == "nextPage")
  766. {
  767. bHasNextPage = true;
  768. continue;
  769. }
  770. if (aSecondaryRequests[idxSecReqs] == "previousPage")
  771. {
  772. bHasPreviousPage = true;
  773. continue;
  774. }
  775. }
  776. changeNavigationLinks(bHasPreviousPage, bHasNextPage, false, false);
  777. }
  778. };
  779. CReportManager.prototype.setupValuesFromCVObj = function ()
  780. {
  781. var oCVObj = this.getCVObj();
  782. if (oCVObj !== null)
  783. {
  784. if (typeof oLimitedDataPreference === "object" && oLimitedDataPreference.getProperty("noDataAfterCancel") === false)
  785. {
  786. if (cfgGet("qsBrowserBackPerformedOnCancel") != true)
  787. {
  788. cfgSet("m_tracking", oCVObj.getTracking());
  789. }
  790. cfgRemove("qsBrowserBackPerformedOnCancel");
  791. }
  792. else
  793. {
  794. cfgSet("m_tracking", oCVObj.getTracking());
  795. }
  796. this.add("uiConversation", oCVObj.getConversation());
  797. }
  798. this.getParameterManager().setupParameters();
  799. };
  800. CReportManager.prototype.getApplicationManager = function ()
  801. {
  802. if (this.m_oApplicationMgr === null)
  803. {
  804. this.m_oApplicationMgr = this.getApplicationFrame().goApplicationManager;
  805. }
  806. return this.m_oApplicationMgr;
  807. };
  808. CReportManager.prototype.getApplicationFrame = function ()
  809. {
  810. return this.m_oWindowMgr.getApplicationFrame();
  811. };
  812. CReportManager.prototype.updateStateFromCVObj = function ()
  813. {
  814. var oCVObj = this.getCVObj();
  815. if (oCVObj !== null)
  816. {
  817. var sStatus = oCVObj.getStatus();
  818. if (oCVObj.getResponseSpecification())
  819. {
  820. this.add("sMiniQueryMarkup", stripSignature(oCVObj.getResponseSpecification()));
  821. var spec = this.get("sMiniQueryMarkup");
  822. this.setDrillAndQueryParameters(spec);
  823. }
  824. if (this.get("currentMode") == "reporting")
  825. {
  826. this.handleNotifiers();
  827. if (this.getCVSelectionController())
  828. {
  829. this.getCVSelectionController().onSelectionChange();
  830. }
  831. }
  832. var sCurrentMode = "reporting";
  833. if (sStatus == "working" || sStatus == "stillWorking")
  834. {
  835. sCurrentMode = "busy";
  836. }
  837. else if (sStatus == "prompting")
  838. {
  839. sCurrentMode = "prompting";
  840. }
  841. this.add("currentMode", sCurrentMode);
  842. this.add("reportState", sStatus);
  843. }
  844. };
  845. CReportManager.prototype.getParameterManager = function ()
  846. {
  847. return this.m_oParameterManager;
  848. };
  849. CReportManager.prototype.handlePromptAction = function (sAction, sUrl)
  850. {
  851. var oReq = new this.m_oReportFrame.CCognosViewerRequest( sAction == "back" ? "back" : "forward" );
  852. if (typeof oReq == "object" && oReq != null)
  853. {
  854. oReq = this.getCVObj().preparePromptValues(oReq);
  855. if (typeof oReq == "object" && oReq != null)
  856. {
  857. if (typeof oReq.m_oParams == "object" && oReq.m_oParams != null)
  858. {
  859. var oParamsDict = oReq.m_oParams;
  860. var aAllPrompts = [];
  861. var aParamsKeys = oParamsDict.keys();
  862. for (var idxParams = 0; idxParams < aParamsKeys.length; idxParams++)
  863. {
  864. var sKey = aParamsKeys[idxParams];
  865. var sKeyNoP = stripPFromParam(sKey);
  866. aAllPrompts[sKeyNoP] = oReq.getParameter(sKey);
  867. }
  868. if ( sAction == "cancel" )
  869. {
  870. this.getParameterManager().deletePromptPageParameter( sKeyNoP );
  871. }
  872. else
  873. {
  874. this.getParameterManager().addPromptPageParameters(aAllPrompts);
  875. }
  876. }
  877. oReq = null;
  878. return true;
  879. }
  880. }
  881. oReq = null;
  882. return false;
  883. };
  884. CReportManager.prototype.getUndoManager = function()
  885. {
  886. return this.m_oUndoManager;
  887. };
  888. CReportManager.prototype.handleUndoRedoBackJax = function()
  889. {
  890. if (this.get("currentMode") != "reporting")
  891. {
  892. return;
  893. }
  894. var stateForm = this.m_oReportFrame.document.backJaxState;
  895. if (stateForm == null)
  896. {
  897. return;
  898. }
  899. var id = stateForm.id;
  900. var undoCnt = stateForm.undoCnt;
  901. var redoCnt = stateForm.redoCnt;
  902. if (id.value != "empty" && id.value != this.m_oUndoManager.getId())
  903. {
  904. this.m_oUndoManager.init();
  905. }
  906. else if (undoCnt.value == "empty" && redoCnt.value == "empty" && id.value == "empty")
  907. {
  908. stateForm.id.value = this.m_oUndoManager.getId();
  909. undoCnt.value = this.m_oUndoManager.getUndoStackSize();
  910. redoCnt.value = this.m_oUndoManager.getRedoStackSize();
  911. this.m_oUndoManager.m_sCurrentSpec = this.get("sMiniQueryMarkup");
  912. }
  913. else
  914. {
  915. var iUndoCnt = undoCnt.value == "empty" ? 0 : parseInt(undoCnt.value);
  916. var iRedoCnt = redoCnt.value == "empty" ? 0 : parseInt(redoCnt.value);
  917. this.m_oUndoManager.updateUndoManagerState(iUndoCnt, iRedoCnt, this.get("sMiniQueryMarkup"), this.getParameterManager().getPromptPageParameters());
  918. }
  919. };
  920. CReportManager.prototype.createNewUndoManager = function()
  921. {
  922. this.m_oUndoManager = new CUndoManager();
  923. };
  924. CReportManager.prototype.updateMiniQueryWithUserPreference = function()
  925. {
  926. var oMQMgr = this.getApplicationManager().getMiniQueryManager();
  927. var oUserPreferenceManager = this.getApplicationManager().getUserPreferenceManager();
  928. var oAutoSummaryUserPreference = oUserPreferenceManager.getPreference("autoSummary");
  929. var oAutoFooterSummaryUserPreference = oUserPreferenceManager.getPreference("autoFooterSummary");
  930. var oEnableDrillUserPreference = oUserPreferenceManager.getPreference("enableDrill");
  931. var oEnableModelDrillUserPreference = oUserPreferenceManager.getPreference("enableModelDrill");
  932. var sAutoFooterSummary;
  933. var sAutoSummary;
  934. var sEnableDrill;
  935. var sEnableModelDrill;
  936. if (typeof oAutoFooterSummaryUserPreference === "object")
  937. {
  938. sAutoFooterSummary = oAutoFooterSummaryUserPreference.getValue();
  939. }
  940. if (typeof oAutoSummaryUserPreference === "object")
  941. {
  942. sAutoSummary = oAutoSummaryUserPreference.getValue();
  943. }
  944. if (typeof oEnableDrillUserPreference === "object")
  945. {
  946. sEnableDrill = oEnableDrillUserPreference.getValue();
  947. }
  948. if (typeof oEnableModelDrillUserPreference === "object")
  949. {
  950. sEnableModelDrill = oEnableModelDrillUserPreference.getValue();
  951. }
  952. oMQMgr.setAutoFooterSummary(sAutoFooterSummary);
  953. oMQMgr.setAutoSummary(sAutoSummary);
  954. oMQMgr.setEnableDrill(sEnableDrill);
  955. oMQMgr.setEnableModelDrill(sEnableModelDrill);
  956. };
  957. CReportManager.prototype.setDataModeFromMiniQuery = function()
  958. {
  959. if (!cfgGet("NewReportFirstRun"))
  960. {
  961. if (! (typeof oLimitedDataPreference === "object" && oLimitedDataPreference.getProperty("forceNoDataOnNextRun") === true))
  962. {
  963. return;
  964. }
  965. }
  966. cfgSet("NewReportFirstRun", false);
  967. cfgRemove("amountOfData");
  968. var oMQMgr = this.getApplicationManager().getMiniQueryManager();
  969. var oUserPreferenceManager = this.getApplicationManager().getUserPreferenceManager();
  970. var oCRQReportNode = oMQMgr.getCRQReportNode();
  971. if (typeof oCRQReportNode == "object")
  972. {
  973. var oDataDisplayUserPreference = oUserPreferenceManager.getPreference("limitedDataMode");
  974. if (typeof oDataDisplayUserPreference === "object")
  975. {
  976. var sLimitData = oCRQReportNode.getAttribute("limitData");
  977. if (sLimitData && sLimitData.length)
  978. {
  979. oDataDisplayUserPreference.setSystemValue(sLimitData);
  980. oLimitedDataPreference.setUserOverrideAllowed(false);
  981. }
  982. else
  983. {
  984. sLimitData = oDataDisplayUserPreference.getValue();
  985. this.getApplicationManager().getMiniQueryManager().setLimitData(sLimitData);
  986. }
  987. oLimitedDataPreference.setProperty("forceNoDataOnNextRun", false);
  988. }
  989. }
  990. };
  991. CReportManager.prototype.setDataModeAfterPreview = function()
  992. {
  993. var sRunType;
  994. if (cfgGet("isRunAsPreview"))
  995. {
  996. var oMQMgr = this.getApplicationManager().getMiniQueryManager();
  997. var oCRQReportNode = oMQMgr.getCRQReportNode();
  998. if (typeof oCRQReportNode == "object")
  999. {
  1000. sRunType = cfgGet("amountOfData");
  1001. if (sRunType)
  1002. {
  1003. this.getApplicationManager().getMiniQueryManager().setLimitData(sRunType);
  1004. }
  1005. cfgRemove("isRunAsPreview");
  1006. }
  1007. }
  1008. return sRunType;
  1009. };
  1010. CReportManager.prototype.isCommandRunning = function ()
  1011. {
  1012. return this.m_bIsCommandRunning;
  1013. };
  1014. CReportManager.prototype.setCommandRunning = function (bRunning)
  1015. {
  1016. if (bRunning)
  1017. {
  1018. this.m_bIsCommandRunning = true;
  1019. this.showSpinner(true);
  1020. }
  1021. else
  1022. {
  1023. this.m_bIsCommandRunning = false;
  1024. this.showSpinner(false);
  1025. }
  1026. };
  1027. CReportManager.prototype.showSpinner = function (bShowSpinner)
  1028. {
  1029. var oSpinnerDiv = document.getElementById("spinner");
  1030. if (bShowSpinner)
  1031. {
  1032. if (oSpinnerDiv)
  1033. {
  1034. oSpinnerDiv.style.visibility = "visible";
  1035. }
  1036. }
  1037. else
  1038. {
  1039. if (oSpinnerDiv)
  1040. {
  1041. oSpinnerDiv.style.visibility = "hidden";
  1042. }
  1043. }
  1044. };
  1045. CReportManager.prototype.clearReportFrameOnUnload = clearReportFrameOnUnload;
  1046. function clearReportFrameOnUnload()
  1047. {
  1048. if (goApplicationManager.getReportFrame() && goApplicationManager.getReportFrame().window)
  1049. {
  1050. if (document.all)
  1051. {
  1052. goApplicationManager.getReportFrame().window.detachEvent("onunload", unloadReportFrame);
  1053. }
  1054. else
  1055. {
  1056. goApplicationManager.getReportFrame().window.removeEventListener("unload", unloadReportFrame, false);
  1057. }
  1058. }
  1059. };
  1060. CReportManager.prototype.unloadReportFrame = unloadReportFrame;
  1061. function unloadReportFrame()
  1062. {
  1063. if (goApplicationManager && goApplicationManager.getReportFrame())
  1064. {
  1065. goApplicationManager.getReportFrame().frameClicked();
  1066. }
  1067. };
  1068. CReportManager.prototype.isFilterCommand = function (sCommand)
  1069. {
  1070. var bMatch = false;
  1071. if (sCommand)
  1072. {
  1073. var sMatch = sCommand.match(/^OD:/)
  1074. || sCommand.match(/^OX:/)
  1075. || sCommand.match(/[A-Z][A-Z];OD:./)
  1076. || sCommand.match(/[A-Z][A-Z];OX:./);
  1077. bMatch = (sMatch && sMatch.length > 0) ? true : false;
  1078. }
  1079. return bMatch;
  1080. };
  1081. CReportManager.prototype.persistQueryOptions = function ()
  1082. {
  1083. var bUpdateMiniQueryWithUserPreference = cfgGet("updateMiniQueryWithUserPreference");
  1084. if (bUpdateMiniQueryWithUserPreference !== "true")
  1085. {
  1086. var bPersistOptions = cfgGet("persistOptions");
  1087. if ((bPersistOptions == null) || (bPersistOptions == "undefined"))
  1088. {
  1089. cfgSet("manageFileMode", "true");
  1090. return;
  1091. }
  1092. if (bPersistOptions === "false")
  1093. {
  1094. cfgSet("manageFileMode", "false");
  1095. cfgRemove("persistOptions");
  1096. return;
  1097. }
  1098. }
  1099. var oMQMgr = this.getApplicationManager().getMiniQueryManager();
  1100. if(typeof oMQMgr != "undefined" && oMQMgr !== null)
  1101. {
  1102. cfgSet("autoFooterSummary", oMQMgr.getAutoFooterSummary());
  1103. cfgSet("autoSummary", oMQMgr.getAutoSummary());
  1104. cfgSet("enableDrill", oMQMgr.getEnableDrill());
  1105. cfgSet("enableModelDrill", oMQMgr.getEnableModelDrill());
  1106. }
  1107. cfgSet("manageFileMode", "true");
  1108. };
  1109. CReportManager.prototype.restoreQueryOptions = function ()
  1110. {
  1111. if(this.getApplicationManager().getMiniQueryManager().toString() != null)
  1112. {
  1113. this.setupMiniQuery(this.get("sMiniQueryMarkup"));
  1114. var oMQMgr = this.getApplicationManager().getMiniQueryManager();
  1115. var sAutoFooterSummary = cfgGet("autoFooterSummary");
  1116. var sAutoSummary = cfgGet("autoSummary");
  1117. var sEnableDrill = cfgGet("enableDrill");
  1118. var sEnableModelDrill = cfgGet("enableModelDrill");
  1119. typeof sAutoFooterSummary == "undefined" ? oMQMgr.setAutoFooterSummary("true") : oMQMgr.setAutoFooterSummary(sAutoFooterSummary);
  1120. typeof sAutoSummary == "undefined" ? oMQMgr.setAutoSummary("true") : oMQMgr.setAutoSummary(sAutoSummary);
  1121. typeof sEnableDrill == "undefined" ? oMQMgr.setEnableDrill("true") : oMQMgr.setEnableDrill(sEnableDrill);
  1122. typeof sEnableModelDrill == "undefined" ? oMQMgr.setEnableModelDrill("true") : oMQMgr.setEnableModelDrill(sEnableModelDrill);
  1123. this.add("sMiniQueryMarkup", oMQMgr.toString());
  1124. }
  1125. };
  1126. function CParameterManager()
  1127. {
  1128. this.m_oReportManager = null;
  1129. };
  1130. CParameterManager.prototype = new CDictionary();
  1131. CParameterManager.prototype.init = function ()
  1132. {
  1133. this.m_oReportManager = goApplicationManager.getReportManager();
  1134. this.add("metadataParametersPassed", false);
  1135. this.add("aPromptPageParameters", []);
  1136. };
  1137. CParameterManager.prototype.getReportManager = function ()
  1138. {
  1139. return this.m_oReportManager;
  1140. };
  1141. CParameterManager.prototype.setupParameters = function ()
  1142. {
  1143. var oCVObj = this.getReportManager().getCVObj();
  1144. if (oCVObj !== null)
  1145. {
  1146. if (this.getExecutionParameters() != oCVObj.getExecutionParameters())
  1147. {
  1148. this.add("executionParameters", oCVObj.getExecutionParameters());
  1149. }
  1150. }
  1151. };
  1152. CParameterManager.prototype.getExecutionParameters = function ()
  1153. {
  1154. return this.get("executionParameters");
  1155. };
  1156. CParameterManager.prototype.clearExecutionParameters = function ()
  1157. {
  1158. this.remove("executionParameters");
  1159. };
  1160. CParameterManager.prototype.setMetadataParameters = function (sValue)
  1161. {
  1162. this.add("metadataParameters", sValue);
  1163. };
  1164. CParameterManager.prototype.getMetadataParameters = function ()
  1165. {
  1166. return this.get("metadataParameters");
  1167. };
  1168. CParameterManager.prototype.getMetadataParametersPassed = function ()
  1169. {
  1170. return this.get("metadataParametersPassed");
  1171. };
  1172. CParameterManager.prototype.getPromptPageParameters = function ()
  1173. {
  1174. return this.get("aPromptPageParameters");
  1175. };
  1176. CParameterManager.prototype.getPreviousPromptPageParameters = function ()
  1177. {
  1178. return this.get("aPreviousPromptPageParameters");
  1179. };
  1180. CParameterManager.prototype.addPromptPageParameter = function (sParamName, sValue)
  1181. {
  1182. if (typeof sParamName == "number" || typeof sParamName == "string")
  1183. {
  1184. var aNewParams = [];
  1185. try
  1186. {
  1187. aNewParams[sParamName] = sValue;
  1188. }
  1189. catch (e)
  1190. {
  1191. }
  1192. if (getArrayLength(aNewParams) > 0)
  1193. {
  1194. this.addPromptPageParameters(aNewParams);
  1195. }
  1196. }
  1197. };
  1198. CParameterManager.prototype.deletePromptPageParameter = function (sParamName)
  1199. {
  1200. if (typeof sParamName == "number" || typeof sParamName == "string")
  1201. {
  1202. var aPromptPageParams = this.getPromptPageParameters();
  1203. if (getArrayLength(aPromptPageParams) > 0)
  1204. {
  1205. var aNewParams = [];
  1206. var bIsFound = false;
  1207. for (var idxParm in aPromptPageParams)
  1208. {
  1209. if (idxParm == sParamName)
  1210. {
  1211. bIsFound = true;
  1212. }
  1213. else
  1214. {
  1215. aNewParams[idxParm] = aPromptPageParams[idxParm];
  1216. }
  1217. }
  1218. if (bIsFound === true)
  1219. {
  1220. if (getArrayLength(aNewParams) == 0)
  1221. {
  1222. this.clearPromptPageParameters();
  1223. }
  1224. else
  1225. {
  1226. this.add("aPromptPageParameters", aNewParams);
  1227. }
  1228. this.clearExecutionParameters();
  1229. this.setMetadataParametersPassed(false);
  1230. }
  1231. }
  1232. }
  1233. };
  1234. CParameterManager.prototype.addPromptPageParameters = function (aNewParams)
  1235. {
  1236. var aCurrentParams = this.getPromptPageParameters();
  1237. if (aCurrentParams instanceof Array)
  1238. {
  1239. this.add("aPreviousPromptPageParameters", aCurrentParams);
  1240. }
  1241. if (aNewParams instanceof Array)
  1242. {
  1243. this.add("aPromptPageParameters", concatAssociativeArrays(this.getPromptPageParameters(), aNewParams));
  1244. }
  1245. };
  1246. CParameterManager.prototype.clearPromptPageParameters = function ()
  1247. {
  1248. this.add("aPromptPageParameters", []);
  1249. };
  1250. CParameterManager.prototype.setMetadataParametersPassed = function (bValue)
  1251. {
  1252. if (bValue === true)
  1253. {
  1254. this.add("metadataParametersPassed", true);
  1255. }
  1256. else
  1257. {
  1258. this.add("metadataParametersPassed", false);
  1259. }
  1260. };
  1261. CParameterManager.prototype.getParametersURL = function (bSetMetaParamsPassed)
  1262. {
  1263. var oParameters = this.getAllParametersAsObject();
  1264. var sParameters = "";
  1265. if (oParameters.promptPageParameters !== null)
  1266. {
  1267. for (var idxParams in oParameters.promptPageParameters)
  1268. {
  1269. if (sParameters !== "")
  1270. {
  1271. sParameters += "&";
  1272. }
  1273. if (typeof idxParm == "string" && idxParm.length > 0 && idxParm.charAt(0) != "_")
  1274. {
  1275. sParameters += "p_";
  1276. }
  1277. sParameters += idxParams + "=" + oParameters.promptPageParameters[idxParams];
  1278. }
  1279. }
  1280. return sParameters;
  1281. };
  1282. CParameterManager.prototype.getParametersArray = function (bSetMetaParamsPassed)
  1283. {
  1284. var aParams = this.getPromptPageParameters();
  1285. if (getArrayLength(aParams) > 0)
  1286. {
  1287. var aParametersWithP = [];
  1288. for (var idxParm in aParams)
  1289. {
  1290. if (typeof idxParm == "string" && idxParm.length > 0 && idxParm.charAt(0) != "_")
  1291. {
  1292. aParametersWithP["p_" + idxParm] = aParams[idxParm];
  1293. }
  1294. else
  1295. {
  1296. aParametersWithP[idxParm] = aParams[idxParm];
  1297. }
  1298. }
  1299. return aParametersWithP;
  1300. }
  1301. return aParams;
  1302. };
  1303. CParameterManager.prototype.getParameterValues = function (bSetMetaParamsPassed)
  1304. {
  1305. var oParameters = this.getAllParametersAsObject();
  1306. var sParameters = "";
  1307. if (oParameters.metadataParameters !== null && this.getMetadataParametersPassed() === false)
  1308. {
  1309. sParameters = oParameters.metadataParameters;
  1310. if (bSetMetaParamsPassed === true)
  1311. {
  1312. this.setMetadataParametersPassed(true);
  1313. }
  1314. }
  1315. else if (oParameters.executionParameters !== null)
  1316. {
  1317. sParameters = oParameters.executionParameters;
  1318. }
  1319. else if (oParameters.parameterValues !== null)
  1320. {
  1321. sParameters = oParameters.parameterValues;
  1322. }
  1323. return sParameters;
  1324. };
  1325. CParameterManager.prototype.getAllParametersAsObject = function ()
  1326. {
  1327. var oParameters = {};
  1328. if (getArrayLength(this.getPromptPageParameters()) > 0)
  1329. {
  1330. oParameters.promptPageParameters = this.getPromptPageParameters();
  1331. }
  1332. else
  1333. {
  1334. oParameters.promptPageParameters = null;
  1335. }
  1336. if (this.getMetadataParameters() !== null)
  1337. {
  1338. oParameters.metadataParameters = this.getCompleteMetadataParameters();
  1339. }
  1340. else
  1341. {
  1342. oParameters.metadataParameters = null;
  1343. }
  1344. if (this.getExecutionParameters())
  1345. {
  1346. oParameters.executionParameters = this.getExecutionParameters();
  1347. }
  1348. else
  1349. {
  1350. oParameters.executionParameters = null;
  1351. }
  1352. if (cfgGet("parameterValues"))
  1353. {
  1354. oParameters.parameterValues = cfgGet("parameterValues");
  1355. }
  1356. else
  1357. {
  1358. oParameters.parameterValues = null;
  1359. }
  1360. return oParameters;
  1361. };
  1362. CParameterManager.prototype.isPrompted = function (sPromptParamName)
  1363. {
  1364. var bIsPrompted = false;
  1365. if (getArrayLength(this.get("aPromptPageParameters")) > 0)
  1366. {
  1367. var oPromptParameters = this.get("aPromptPageParameters");
  1368. for (var idxObj in oPromptParameters)
  1369. {
  1370. if (typeof idxObj == "string" && idxObj.length > 0 && idxObj.charAt(0) != "_" && idxObj == sPromptParamName)
  1371. {
  1372. bIsPrompted = true;
  1373. break;
  1374. }
  1375. }
  1376. }
  1377. return bIsPrompted;
  1378. };
  1379. CParameterManager.prototype.getCompleteMetadataParameters = function ()
  1380. {
  1381. return this.getCompleteParameters(this.getMetadataParameters());
  1382. };
  1383. CParameterManager.prototype.getCompleteParameters = function (sParams)
  1384. {
  1385. var sParams = "<parameterValues xmlns:bus=\"http://developer.cognos.com/schemas/bibus/3/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"SOAP-ENC:Array\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" SOAP-ENC:arrayType=\"bus:parameterValue[]\">" + sParams + "</parameterValues>";
  1386. return sParams;
  1387. };
  1388. CParameterManager.prototype.getValueForParameter = function (sName)
  1389. {
  1390. var nRetval = null;
  1391. var aPPP = this.getPromptPageParameters();
  1392. var sValue = aPPP[sName];
  1393. if (sValue)
  1394. {
  1395. nRetval = new XMLParser( sValue );
  1396. }
  1397. return nRetval;
  1398. };
  1399. CParameterManager.prototype.getRangePromptValues = function( sFromUse, sFromDisplay, sToUse, sToDisplay, bFromInclusive, bToInclusive )
  1400. {
  1401. if ( typeof sFromUse == "undefined" ) { sFromUse = null; }
  1402. if ( typeof sFromDisplay == "undefined" ) { sFromDisplay = sFromUse; }
  1403. if ( typeof sToUse == "undefined" ) { sToUse = null; }
  1404. if ( typeof sToDisplay == "undefined" ) { sToDisplay = sToUse; }
  1405. if ( typeof bFromInclusive == "undefined" ) { bFromInclusive = null; }
  1406. if ( typeof bToInclusive == "undefined" ) { bToInclusive = null; }
  1407. var promptValues = '<selectChoices>';
  1408. if (sFromUse === null && sToUse === null)
  1409. {
  1410. if ( typeof onlyPrompt != "undefined")
  1411. {
  1412. onlyPrompt = true;
  1413. }
  1414. promptValues = '<selectChoices/>';
  1415. }
  1416. else
  1417. {
  1418. if (sFromUse === null)
  1419. {
  1420. promptValues += '<selectUnboundedStartRange selected="true">';
  1421. promptValues += '<end displayValue="' + sXmlEncode(sToDisplay) + '" useValue="' + sXmlEncode(sToUse) + '"' + (bToInclusive === false ? ' inclusive="false"' : '') + '/>';
  1422. promptValues += '</selectUnboundedStartRange>';
  1423. }
  1424. else if (sToUse === null)
  1425. {
  1426. promptValues += '<selectUnboundedEndRange selected="true">';
  1427. promptValues += '<start displayValue="' + sXmlEncode(sFromDisplay) + '" useValue="' + sXmlEncode(sFromUse) + '"' + (bFromInclusive === false ? ' inclusive="false"' : '') + '/>';
  1428. promptValues += '</selectUnboundedEndRange>';
  1429. }
  1430. else if (sFromUse == sToUse)
  1431. {
  1432. promptValues += '<selectOption displayValue="' + sXmlEncode(sFromDisplay) + '" useValue="' + sXmlEncode(sFromUse) + '" selected="true"/>';
  1433. }
  1434. else
  1435. {
  1436. if (sFromDisplay !== null && sToDisplay !== null) {
  1437. promptValues += '<selectBoundRange selected="true">';
  1438. promptValues += '<start displayValue="' + sXmlEncode(sFromDisplay) + '" useValue="' + sXmlEncode(sFromUse) + '"' + (bFromInclusive === false ? ' inclusive="false"' : '') + '/>';
  1439. promptValues += '<end displayValue="' + sXmlEncode(sToDisplay) + '" useValue="' + sXmlEncode(sToUse) + '"' + (bToInclusive === false ? ' inclusive="false"' : '') + '/>';
  1440. promptValues += '</selectBoundRange>';
  1441. }
  1442. else
  1443. {
  1444. promptValues += '<selectBoundRange selected="true">';
  1445. promptValues += '<start useValue="' + sXmlEncode(sFromUse) + '"' + (bFromInclusive === false ? ' inclusive="false"' : '') + '/>';
  1446. promptValues += '<end useValue="' + sXmlEncode(sToUse) + '"' + (bToInclusive === false ? ' inclusive="false"' : '') + '/>';
  1447. promptValues += '</selectBoundRange>';
  1448. }
  1449. }
  1450. promptValues += '</selectChoices>';
  1451. }
  1452. return promptValues;
  1453. };
  1454. CParameterManager.prototype.getOptionPromptValues = function (aUseDisplayValues)
  1455. {
  1456. var sPromptValues = '<selectChoices>';
  1457. for (var sKey in aUseDisplayValues)
  1458. {
  1459. sPromptValues += '<selectOption displayValue="' + sXmlEncode(aUseDisplayValues[sKey]);
  1460. sPromptValues += '" useValue="' + sXmlEncode(sKey);
  1461. sPromptValues += '" selected="true"/>';
  1462. }
  1463. sPromptValues += '</selectChoices>';
  1464. return (sPromptValues);
  1465. };
  1466. CParameterManager.prototype.setDrillThroughParameterValues = function (sDrillThroughXML)
  1467. {
  1468. var oDrillXML = new XMLParser("<dummyDrillRoot>" + sDrillThroughXML + "</dummyDrillRoot>");
  1469. var oBusElements = oDrillXML.getElementsByTagName('bus:parameters', false);
  1470. var oDrillBusParameterElement = oBusElements[0];
  1471. for (var iBusElementIndex = 1; iBusElementIndex < oBusElements.length; iBusElementIndex++)
  1472. {
  1473. var oItemElements = oBusElements[iBusElementIndex].getElementsByTagName('item', false);
  1474. for (var iItemElementIndex = 0; iItemElementIndex < oItemElements.length; iItemElementIndex++)
  1475. {
  1476. oDrillBusParameterElement.appendChild(oItemElements[iItemElementIndex]);
  1477. }
  1478. }
  1479. this.m_oDrillThroughParameterValues = oDrillBusParameterElement;
  1480. this.convertDrillThroughParametersToPromptParameters();
  1481. };
  1482. CParameterManager.prototype.getDrillThroughParameterValues = function ()
  1483. {
  1484. return this.m_oDrillThroughParameterValues;
  1485. };
  1486. CParameterManager.prototype.convertDrillThroughParametersToPromptParameters = function ()
  1487. {
  1488. var oDrillThroughXML = this.getDrillThroughParameterValues();
  1489. if (oDrillThroughXML instanceof XMLElement)
  1490. {
  1491. var oItemElements = oDrillThroughXML.getElementsByTagName('item', false);
  1492. for (var iItemElementIndex = 0; iItemElementIndex < oItemElements.length; iItemElementIndex++)
  1493. {
  1494. var aPromptValues = new Object();
  1495. var sPromptId = "";
  1496. var oItem = oItemElements[iItemElementIndex];
  1497. var oName = oItem.findChildByName('bus:name');
  1498. if (oName)
  1499. {
  1500. sPromptId = oName.nodeValue;
  1501. }
  1502. var oValueItemElements = oItem.getElementsByTagName('item', true);
  1503. for (var iValueItemElementIndex = 0; iValueItemElementIndex < oValueItemElements.length; iValueItemElementIndex++)
  1504. {
  1505. var sInclusive = "";
  1506. var sDisplay = "";
  1507. var sUse = "";
  1508. var oValueItem = oValueItemElements[iValueItemElementIndex];
  1509. var oStart = oValueItem.findChildByName('bus:start');
  1510. if(oStart)
  1511. {
  1512. var sFromInclusive = null;
  1513. var sFromDisplay = null;
  1514. var sFromUse = null;
  1515. var sToInclusive = null;
  1516. var sToDisplay = null;
  1517. var sToUse = null;
  1518. var oFromInclusive = oStart.findChildByName('bus:inclusive');
  1519. if(oFromInclusive)
  1520. sFromInclusive = sXmlDecode(oFromInclusive.nodeValue);
  1521. var oFromDisplay = oStart.findChildByName('bus:display');
  1522. if(oFromDisplay)
  1523. sFromDisplay = sXmlDecode(oFromDisplay.nodeValue);
  1524. var oFromUse = oStart.findChildByName('bus:use');
  1525. if(oFromUse)
  1526. sFromUse = sXmlDecode(oFromUse.nodeValue);
  1527. var oEnd = oValueItem.findChildByName('bus:end');
  1528. if(oEnd)
  1529. {
  1530. var oToInclusive = oEnd.findChildByName('bus:inclusive');
  1531. if(oToInclusive)
  1532. sToInclusive = sXmlDecode(oToInclusive.nodeValue);
  1533. var oToDisplay = oEnd.findChildByName('bus:display');
  1534. if(oFromDisplay)
  1535. sToDisplay = sXmlDecode(oToDisplay.nodeValue);
  1536. var oToUse = oEnd.findChildByName('bus:use');
  1537. if(oFromUse)
  1538. sToUse = sXmlDecode(oToUse.nodeValue);
  1539. }
  1540. var sPromptValues = this.getRangePromptValues( sFromUse, sFromDisplay, sToUse, sToDisplay, sFromInclusive, sToInclusive );
  1541. }
  1542. else
  1543. {
  1544. var oInclusive = oValueItem.findChildByName('bus:inclusive');
  1545. if (oInclusive)
  1546. {
  1547. sInclusive = sXmlDecode(oInclusive.nodeValue);
  1548. }
  1549. var oDisplay = oValueItem.findChildByName('bus:display');
  1550. if (oDisplay)
  1551. {
  1552. sDisplay = sXmlDecode(oDisplay.nodeValue);
  1553. }
  1554. var oUse = oValueItem.findChildByName('bus:use');
  1555. if (oUse)
  1556. {
  1557. sUse = sXmlDecode(oUse.nodeValue);
  1558. }
  1559. aPromptValues[sUse] = sDisplay;
  1560. var sPromptValues = this.getOptionPromptValues(aPromptValues);
  1561. }
  1562. }
  1563. this.addPromptPageParameter(sPromptId, sPromptValues);
  1564. }
  1565. }
  1566. return null;
  1567. };
  1568. function reportIsReadyCallback()
  1569. {
  1570. var oRepMgr = goApplicationManager.getReportManager();
  1571. oRepMgr.add("bReportReady", true);
  1572. oRepMgr.updateStateFromCVObj();
  1573. oRepMgr.restoreQueryOptions();
  1574. oRepMgr.handleNavigationLinks();
  1575. oRepMgr.handleUndoRedoBackJax();
  1576. oRepMgr.getParameterManager().setupParameters();
  1577. oRepMgr.setupLiveReport();
  1578. };
  1579. function reportHasErrorCallback()
  1580. {
  1581. var oRepMgr = goApplicationManager.getReportManager();
  1582. oRepMgr.getUndoManager().m_redoStack = new Array();
  1583. };
  1584. function reportIsPromptingCallback()
  1585. {
  1586. var oRepMgr = goApplicationManager.getReportManager();
  1587. oRepMgr.updateStateFromCVObj();
  1588. oRepMgr.handleNavigationLinks();
  1589. oRepMgr.getParameterManager().setupParameters();
  1590. oRepMgr.getCVObj().showWaitPage(false);
  1591. oRepMgr.getCVObj().cancelPrompt = function()
  1592. {
  1593. goApplicationManager.getReportManager().cancel();
  1594. }
  1595. if (typeof oRepMgr.getCVObj().promptActionOrig != "function")
  1596. {
  1597. oRepMgr.getCVObj().promptActionOrig = oRepMgr.getCVObj().promptAction;
  1598. }
  1599. oRepMgr.getCVObj().promptAction = function(sAction, sUrl)
  1600. {
  1601. var bProceedWithPrompt = goApplicationManager.getReportManager().handlePromptAction(sAction, sUrl);
  1602. if (bProceedWithPrompt && typeof this.promptActionOrig == "function")
  1603. {
  1604. oRepMgr.setCommandRunning(true);
  1605. this.promptActionOrig(sAction, sUrl);
  1606. }
  1607. }
  1608. };
  1609. function reportIsWaitingCallback()
  1610. {
  1611. var oRepMgr = goApplicationManager.getReportManager();
  1612. oRepMgr.updateStateFromCVObj();
  1613. oRepMgr.handleNavigationLinks();
  1614. };
  1615. function tempDropColumn(event)
  1616. {
  1617. if(dropColumn)
  1618. {
  1619. dropColumn(event, null);
  1620. }
  1621. };
  1622. function mouseMove(event)
  1623. {
  1624. if (typeof resizeMenuPane === "function")
  1625. {
  1626. resizeMenuPane(event, true);
  1627. }
  1628. if (typeof resizeDialogFrame === "function")
  1629. {
  1630. var iTop = 0;
  1631. if (document.all)
  1632. {
  1633. var oRepFrame = document.getElementById("reportFrame");
  1634. while (oRepFrame !== null)
  1635. {
  1636. if (oRepFrame.tagName != "TR" && typeof oRepFrame.offsetTop == "number")
  1637. {
  1638. iTop += oRepFrame.offsetTop;
  1639. }
  1640. oRepFrame = oRepFrame.offsetParent;
  1641. }
  1642. }
  1643. resizeDialogFrame(event, event.clientY + iTop);
  1644. }
  1645. };
  1646. function dragEnter(event)
  1647. {
  1648. if (goApplicationManager.get("showStartPage") === true)
  1649. {
  1650. dragStartPageLeaveColumn(event);
  1651. }
  1652. else
  1653. {
  1654. dragEnterColumn(event);
  1655. }
  1656. if (!window.ie)
  1657. {
  1658. event.preventDefault();
  1659. }
  1660. };
  1661. function dragOver(event)
  1662. {
  1663. if (goApplicationManager.get("showStartPage") === true)
  1664. {
  1665. dragStartPageLeaveColumn(event);
  1666. }
  1667. else
  1668. {
  1669. dragOverColumn(event);
  1670. }
  1671. if (!window.ie)
  1672. {
  1673. event.preventDefault();
  1674. }
  1675. };
  1676. function dragLeave(event, bForceHide)
  1677. {
  1678. if (typeof bForceHide == "undefined")
  1679. {
  1680. bForceHide = false;
  1681. }
  1682. if (goApplicationManager.get("showStartPage") === true)
  1683. {
  1684. dragStartPageLeaveColumn(event);
  1685. }
  1686. else
  1687. {
  1688. dragLeaveColumn(event, bForceHide);
  1689. if (!window.ie) {
  1690. dragEnterColumn(event);
  1691. }
  1692. }
  1693. if (!window.ie)
  1694. {
  1695. event.preventDefault();
  1696. }
  1697. };
  1698. function errorExit()
  1699. {
  1700. var repMgr = null;
  1701. var oMQ = null;
  1702. if (typeof cf === "object" && cf.goApplicationManager)
  1703. {
  1704. repMgr = cf.goApplicationManager.getReportManager();
  1705. oMQ = cf.goApplicationManager.getMiniQueryManager();
  1706. }
  1707. if (repMgr !== null && oMQ !== null)
  1708. {
  1709. var sMQ = oMQ.toString();
  1710. if(repMgr.isCommandRunning() == true && sMQ && sMQ.length)
  1711. {
  1712. repMgr.setCommandRunning(false);
  1713. var sUndoManager = repMgr.getUndoManager();
  1714. sUndoManager.setReuseConversation(false);
  1715. var undoResult = false;
  1716. var addToUndoResult = false;
  1717. if (oMQ.m_sPreviousDataMode === "none")
  1718. {
  1719. sUndoManager.undo();
  1720. undoResult = true;
  1721. }
  1722. else if (sUndoManager.canUndo())
  1723. {
  1724. var sLastUndoSpec = sUndoManager.m_undoStack[sUndoManager.m_undoStack.length - 1];
  1725. if (sLastUndoSpec === sMQ)
  1726. {
  1727. undoResult = sUndoManager.undo();
  1728. }
  1729. else
  1730. {
  1731. var aPromptValues = repMgr.getParameterManager().getPromptPageParameters();
  1732. addToUndoResult = sUndoManager.addToUndo(sMQ, null, aPromptValues);
  1733. if (addToUndoResult)
  1734. undoResult = sUndoManager.undo();
  1735. }
  1736. }
  1737. else {
  1738. var aPromptValues = repMgr.getParameterManager().getPromptPageParameters();
  1739. addToUndoResult = sUndoManager.addToUndo(sMQ, null, aPromptValues);
  1740. if (addToUndoResult)
  1741. undoResult = sUndoManager.undo();
  1742. }
  1743. if (!undoResult)
  1744. bannerHome(cfgGet("gsCognosHome"));
  1745. }
  1746. else
  1747. {
  1748. if(goApplicationManager.getWindowManager().isDialogFrameOpen())
  1749. {
  1750. hideDialogFrame();
  1751. }
  1752. else
  1753. {
  1754. if (! sMQ || sMQ.length == 0)
  1755. {
  1756. closeLink(true);
  1757. }
  1758. else
  1759. {
  1760. bannerHome(cfgGet("gsCognosHome"));
  1761. }
  1762. }
  1763. }
  1764. }
  1765. };