Cognos 8.2 / 8.4 JavaScript-Switch

JavaScript-Bibliothek zur Unterscheidung der Cognos-Versionen

Wenn man Berichte in Cognos 8.2 entwickelt und später auf Cognos 8.4 oder Cognos 10 umsteigen möchte, ist eine Migration der Bericht unerlässlich. Vor allem, wenn in den Berichten JavaScript verwendet wird, um diese z.B. interaktiv zu machen oder bestimmte Parameter-Werte zu setzen.

Um die Berichte unter allen drei Versionen lauffähig zu bekommen, kann man sich mit einer JavaScript-Bibliothek behelfen, die selbständig die für die Version gültigen Funktionen aufruft.

So wurde z.B. die Methode .checkData() für einzelne Steuerelemente ab Version 8.4 durch die Methode canSubmitPrompt() ersetzt. Jedoch prüft diese Methode direkt alle Prompt-Werte und damit entfällt die Möglichkeit, einzelne Steuerelemente zu prüfen und gültig zu machen.

Mit den entsprechenden Aufrufen für die einzelnen Steuerelement ist es jedoch auch in Cognos 8.4 und 10 weiterhin möglich, einzelne Steuerelemente zu prüfen.

var f = (typeof getFormWarpRequest == "function" ? getFormWarpRequest() : document.forms.formWarpRequest); 
var version = (typeof getFormWarpRequest == "function" ? '8.4' : '8.2' ); 
function checkData(elem) {
   if ( version=='8.2' ) {
     if (elem.tagName == "SELECT") {
        if (elem.multiple) {
           try {
             eval("multipleText" + elem.name.replace(/_oLstChoices/,"") + ".checkData();");
           } catch(e) {}
           try {
             eval("listBox" + elem.name.replace(/_oLstChoices/,"") + ".checkData();");
           } catch(e) {}
         } else {
           eval("listBox" + elem.name.replace(/_oLstChoices/,"") + ".checkData();");
         }
     } else if (elem.tagName == "INPUT" && elem.type == "text") {
       eval("textBox" + elem.name.replace(/_textEditBox/,"") + ".checkData();");
     }
   } else {
     if(typeof elem._ep=="object") elem._ep.checkData();
     if(typeof elem._ft=="object") elem._ft.checkData();
   } }

Zur Verwendung dieser Funktion wird innerhalb des Berichts nicht mehr formWarpRequest.<Element Name>.checkData() aufgerufen, sondern stattdessen checkData(<Element>).

Login-Footer

Copyright © 2017 OCToConsult - Oliver C. Tank. Alle Rechte vorbehalten.
Joomla! ist freie, unter der GNU/GPL-Lizenz veröffentlichte Software.