// // // // // // // // // // // // // // // // // // // // // // // // Common Reporting Functions // // It demonstrates centralized code sharing and an alternative for // a string table // // // // // // // // // // // // // // // // // // // // // // // // // default font size for header and footer var nFontSizeHeader = 12 var nFontSizeFooter = 9 // language constants var nLang_English = 1033 var nLang_German = 1031 /** Alternative 1: Defines a header and footer * @param {Output} outputObj The output object */ function writeHeaderAndFooter(outputObj) { // call all 3 subfunctions defineFormat(outputObj); setupOutputObject(outputObj); globalHeader1(outputObj); globalFooter1(outputObj); } /** Alternative 2: Defines a header and footer * @param {Output} outputObj The output object */ function writeHeaderAndFooter2(outputObj) { // call all 3 subfunctions defineFormat(outputObj); setupOutputObject(outputObj); globalHeader2(outputObj); globalFooter2(outputObj); } /** Defines a format template - style * @param {Output} outputObj The output object */ function defineFormat(outputObj) { outputObj.DefineF("HEADER_LEFT", getString("ID_DEFAULT_FONT"), nFontSizeHeader, Constants.C_DARK_BLUE, Constants.C_TRANSPARENT, Constants.FMT_LEFT, 0, 0, 0, 0, 0, 0); outputObj.DefineF("HEADER_CENTER", getString("ID_DEFAULT_FONT"), nFontSizeHeader, Constants.C_DARK_BLUE, Constants.C_TRANSPARENT, Constants.FMT_CENTER, 0, 0, 0, 0, 0, 0); outputObj.DefineF("HEADER_RIGHT", getString("ID_DEFAULT_FONT"), nFontSizeHeader, Constants.C_DARK_BLUE, Constants.C_TRANSPARENT, Constants.FMT_RIGHT, 0, 0, 0, 0, 0, 0); outputObj.DefineF("FOOTER_LEFT", getString("ID_DEFAULT_FONT"), nFontSizeFooter, Constants.C_DARK_BLUE, Constants.C_TRANSPARENT, Constants.FMT_LEFT, 0, 0, 0, 0, 0, 0); outputObj.DefineF("FOOTER_RIGHT", getString("ID_DEFAULT_FONT"), nFontSizeFooter, Constants.C_DARK_BLUE, Constants.C_TRANSPARENT, Constants.FMT_RIGHT, 0, 0, 0, 0, 0, 0); } /** Define the page * @param {Output} outputObj The output object */ function setupOutputObject(outputObj) { outputObj.SetPageWidth(210.1) outputObj.SetPageHeight(297.2) outputObj.SetLeftMargin(20) outputObj.SetRightMargin(20) outputObj.SetTopMargin(35) outputObj.SetBottomMargin(30) outputObj.SetDistHeader(10) outputObj.SetDistFooter(10) outputObj.SetAutoTOCNumbering(true) } /** Alternative 1: Writes the page header * @param {Output} outputObj The output object */ function globalHeader1(outputObj) { outputObj.BeginHeader(); if(Context.getSelectedFormat()!=Constants.OUTEXCEL) outputObj.BeginTable(100,Constants.C_WHITE,Constants.C_WHITE,Constants.FMT_LEFT,0); outputObj.TableRow(); // Header Left: Image outputObj.TableCellF(" ",30,"HEADER_LEFT"); var image = Context.createPicture("ARIS.png") outputObj.OutGraphic(image,100,25,25); // Header Center: Script Name outputObj.TableCellF(Context.getScriptInfo(Constants.SCRIPT_NAME),60,"HEADER_CENTER"); // Header Right: Blank outputObj.TableCellF(" ",30,"HEADER_CENTER"); if(Context.getSelectedFormat()!=Constants.OUTEXCEL) outputObj.EndTable("TESTSHEET1",100, getString("ID_DEFAULT_FONT"),10,Constants.C_WHITE,Constants.C_WHITE,0,Constants.FMT_LEFT,0); outputObj.EndHeader(); } /** Alternative 1: Writes the page footer * @param {Output} outputObj The output object */ function globalFooter1(outputObj) { outputObj.BeginFooter(); if(Context.getSelectedFormat()!=Constants.OUTEXCEL) outputObj.BeginTable(100,Constants.C_WHITE,Constants.C_WHITE,Constants.FMT_LEFT,0); outputObj.TableRow(); outputObj.TableCellF(" ",50,"FOOTER_LEFT"); outputObj.BeginParagraph( Constants.FMT_LEFT, 0.71, 0.71, 0, 0, 0) outputObj.OutputLnF(getString2("TXT_CONFIDENTIAL"), "FOOTER_LEFT") outputObj.EndParagraph() outputObj.TableCellF(" ",50,"FOOTER_RIGHT"); outputObj.BeginParagraph( Constants.FMT_RIGHT, 0.71, 0.71, 0, 0, 0) outputObj.OutputF(" " + getString2("ID_PAGE") + " ", "FOOTER_RIGHT") outputObj.OutputField(Constants.FIELD_PAGE, getString("ID_DEFAULT_FONT"), nFontSizeFooter,Constants.C_DARK_BLUE, Constants.C_TRANSPARENT, Constants.FMT_RIGHT) outputObj.OutputF(" " + getString2("ID_OF") + " ", "FOOTER_RIGHT") outputObj.OutputField(Constants.FIELD_NUMPAGES, getString("ID_DEFAULT_FONT"), nFontSizeFooter,Constants.C_DARK_BLUE, Constants.C_TRANSPARENT, Constants.FMT_RIGHT) outputObj.OutputLn("", getString("ID_DEFAULT_FONT"), nFontSizeFooter, Constants.C_BLACK, Constants.C_TRANSPARENT, Constants.FMT_RIGHT, 0.71) outputObj.EndParagraph() if(Context.getSelectedFormat()!=Constants.OUTEXCEL) outputObj.EndTable("FOOTER",100, getString("ID_DEFAULT_FONT"),10,Constants.C_WHITE,Constants.C_WHITE,0,Constants.FMT_LEFT,0); outputObj.EndFooter(); } /** This is my own String Table, because .js files don't have a String table * @param {String} identifier The field Id */ function getString2 (identifier) { var nLocale2=Context.getSelectedLanguage(); if (nLocale2==nLang_English) { // English if (identifier=="TXT_CONFIDENTIAL") return ("Confidential"); if (identifier=="ID_PAGE") return ("Page"); if (identifier=="ID_OF") return ("of"); return "Undefined String " + identifier; } else if (nLocale2==nLang_German) { // German if (identifier=="TXT_CONFIDENTIAL") return ("Nur für internen Gebrauch"); if (identifier=="ID_PAGE") return ("Seite"); if (identifier=="ID_OF") return ("von"); return "Undefinierter Text " + identifier; } else return nLocale2; } /** Alternative 2 page header * @param {Output} outputObj The output object */ function globalHeader2(outputObj) { outputObj.BeginHeader() if(Context.getSelectedFormat()!=Constants.OUTEXCEL) outputObj.BeginTable(100, RGB(255,255,255), Constants.C_TRANSPARENT, Constants.FMT_LEFT, 0) outputObj.TableRow() outputObj.ResetFrameStyle() outputObj.SetFrameStyle( Constants.FRAME_TOP, 0, 0) outputObj.SetFrameStyle( Constants.FRAME_LEFT, 0, 0) outputObj.SetFrameStyle( Constants.FRAME_BOTTOM, 0, 0) outputObj.SetFrameStyle( Constants.FRAME_RIGHT, 0, 0) // Left outputObj.TableCell("", 60, getString("ID_DEFAULT_FONT"), 10, Constants.C_BLACK, Constants.C_TRANSPARENT, 0, Constants.FMT_VTOP | Constants.FMT_LEFT, 0) outputObj.BeginParagraph( Constants.FMT_LEFT, 0.71, 0.71, 0, 0, 0) outputObj.OutputLn(Context.getScriptInfo(Constants.SCRIPT_NAME), getString("ID_DEFAULT_FONT"), 12, RGB(0,0,0), Constants.C_TRANSPARENT, Constants.FMT_LEFT, 0.71) outputObj.EndParagraph() // Right outputObj.TableCell("", 40, getString("ID_DEFAULT_FONT"), 10, Constants.C_BLACK, Constants.C_TRANSPARENT, 0, Constants.FMT_VTOP | Constants.FMT_RIGHT, 0) outputObj.BeginParagraph( Constants.FMT_RIGHT, 0.71, 0.71, 0, 0, 0) outputObj.OutputField(Constants.FIELD_FILENAME, getString("ID_DEFAULT_FONT"), 12, RGB(0,0,0), Constants.C_TRANSPARENT, Constants.FMT_RIGHT) outputObj.OutputLn("", getString("ID_DEFAULT_FONT"), 12, RGB(0,0,0), Constants.C_TRANSPARENT, Constants.FMT_RIGHT, 0.71) outputObj.EndParagraph() if(Context.getSelectedFormat()!=Constants.OUTEXCEL) outputObj.EndTable("", 100, getString("ID_DEFAULT_FONT"), 10, Constants.C_BLACK, Constants.C_TRANSPARENT, 0, Constants.FMT_LEFT, 0) outputObj.EndHeader() } /** Alternative 2 page footer * @param {Output} outputObj The output object */ function globalFooter2(outputObj) { outputObj.BeginFooter() if(Context.getSelectedFormat()!=Constants.OUTEXCEL) outputObj.BeginTable(100, RGB(255,255,255), Constants.C_TRANSPARENT, Constants.FMT_LEFT, 0) outputObj.TableRow() outputObj.ResetFrameStyle() outputObj.SetFrameStyle( Constants.FRAME_TOP, 0, 0) outputObj.SetFrameStyle( Constants.FRAME_LEFT, 0, 0) outputObj.SetFrameStyle( Constants.FRAME_BOTTOM, 0, 0) outputObj.SetFrameStyle( Constants.FRAME_RIGHT, 0, 0) // Left Footer outputObj.TableCell("", 35, getString("ID_DEFAULT_FONT"), 10, Constants.C_BLACK, Constants.C_TRANSPARENT, 0, Constants.FMT_VTOP | Constants.FMT_LEFT, 0) outputObj.BeginParagraph( Constants.FMT_LEFT, 0.71, 0.71, 0, 0, 0) outputObj.OutputField(Constants.FIELD_DATE, getString("ID_DEFAULT_FONT"), 10, RGB(0,0,0), Constants.C_TRANSPARENT, Constants.FMT_LEFT) outputObj.OutputLn("", getString("ID_DEFAULT_FONT"), 10, RGB(0,0,0), Constants.C_TRANSPARENT, Constants.FMT_LEFT, 0.71) outputObj.EndParagraph() // Center outputObj.TableCell("", 40, getString("ID_DEFAULT_FONT"), 10, Constants.C_BLACK, Constants.C_TRANSPARENT, 0, Constants.FMT_VTOP | Constants.FMT_CENTER, 0) outputObj.BeginParagraph( Constants.FMT_CENTER, 0.71, 0.71, 0, 0, 0) outputObj.OutputLn(getString2("TXT_CONFIDENTIAL"), getString("ID_DEFAULT_FONT"), 10, RGB(0,0,0), Constants.C_TRANSPARENT, Constants.FMT_CENTER, 0.71) outputObj.EndParagraph() // Right outputObj.TableCell("", 35, getString("ID_DEFAULT_FONT"), 10, Constants.C_BLACK, Constants.C_TRANSPARENT, 0, Constants.FMT_VTOP | Constants.FMT_RIGHT, 0) outputObj.BeginParagraph( Constants.FMT_RIGHT, 0.71, 0.71, 0, 0, 0) outputObj.Output(" " + getString2("ID_PAGE") + " ", getString("ID_DEFAULT_FONT"), 10, RGB(0,0,0), Constants.C_TRANSPARENT, Constants.FMT_RIGHT, 0.71) outputObj.OutputField(Constants.FIELD_PAGE, getString("ID_DEFAULT_FONT"), 10, RGB(0,0,0), Constants.C_TRANSPARENT, Constants.FMT_RIGHT) outputObj.Output(" " + getString2("ID_OF") + " ", getString("ID_DEFAULT_FONT"), 10, RGB(0,0,0), Constants.C_TRANSPARENT, Constants.FMT_RIGHT, 0.71) outputObj.OutputField(Constants.FIELD_NUMPAGES, getString("ID_DEFAULT_FONT"), 10, RGB(0,0,0), Constants.C_TRANSPARENT, Constants.FMT_RIGHT) outputObj.OutputLn("", getString("ID_DEFAULT_FONT"), 10, RGB(0,0,0), Constants.C_TRANSPARENT, Constants.FMT_RIGHT, 0.71) outputObj.EndParagraph() if(Context.getSelectedFormat()!=Constants.OUTEXCEL) outputObj.EndTable("", 100, getString("ID_DEFAULT_FONT"), 10, Constants.C_BLACK, Constants.C_TRANSPARENT, 0, Constants.FMT_LEFT, 0) outputObj.EndFooter() } function RGB(r, g, b) { return (new java.awt.Color(r/255.0,g/255.0,b/255.0,1)).getRGB() & 0xFFFFFF } /** Checks, if the current attribute is maintained * @param {Item} item The item * @param {Number} attrNum The Attribute Number * @param {Number} nLocale The Language code */ function isAttrMaintained(item, attrNum, nLocale) { var attr = item.Attribute(attrNum, nLocale); return ((attr.getValue() != null) && (attr.getValue().trim().length() > 0)); } /** Reads all Object Occurrences linked to these objects * @param {Object} oObjectDefList The object definition list */ function collectObjOccs(oObjectDefList){ var result = new Array(); for(var i=0; i