Header in Web report

Hi Friends,
There is a requirement where in the report should be displayed for a base material as follows
Base_Matl1
BOM_Matl11   BOM_No1     KF1   KF2
BOM_Matl12   BOM_No1     KF1   KF2
BOM_Matl13   BOM_No1     KF1   KF2
BOM_Matl14   BOM_No1     KF1   KF2
Base_Matl2
BOM_Matl21   BOM_No2     KF1   KF2
BOM_Matl22   BOM_No2     KF1   KF2
BOM_Matl23   BOM_No2     KF1   KF2
BOM_Matl24   BOM_No1     KF1   KF2
Is it possible in Web report?
Thanks and regards,
Balaraj

Hi Balaraj,
You can try this in the Report Designer tool available with BI 7.0
Look at the demo here: https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9c059b57-0701-0010-3283-e5e8669f827e
Hope this helps...

Similar Messages

  • Freeze Spreadsheet header in Web Analysis Report (HTML format)

    Hello,
    I want to know if there is any way to freeze the spreadsheet header in Web Analysis. I know it can be done if the report is opened through Web Analysis Studio. However, when the user opens it in HTML format, the header will not be freeze.
    We are using 9.3.1
    Thanks,
    Andy
    Edited by: user642800 on Jun 4, 2009 1:22 PM

    I don't believe you can do this. We ran into the same issue last summer and it left our long scrolling dashboards useless as you couldn't see what row you were looking at once the row headers had left the screen. We talked about having some dashboards launch from workspace and others from Web Analysis but this was messy and we wanted them to one-stop shop in Workspace.
    The answer for us was to put a Check Box on the right hand side and the users only select the amount of members that fill up their screen. For instance, if we had 20 columns of data (accounts or scenarios) and only 5 were visible at one time, they would only select 5 to view at any given time.
    As far as column headers, we haven't had any complaints when those leave the screen.
    This was a huge issue for us but luckily we came up with a workaround that seems to have worked for all of our users thus far.
    Mike

  • How to schedule a webi report in csv format without header?

    I have a requirement to create scheduled csv reports without table headers? I am unable to do this from CMC. It gives the column headers by default in the exported csv file. However, in the webI rich client, I have an option to save the document as "CSV-Archive" which allows me to omit the column header.
    How are these two options different and is there a way to get the "CSV-Archive" option from CMS?
    Looking for your valuable suggestions.
    Thanks
    Sukanto

    Is there a way to get the "CSV-Archive" option from CMS?
    Customization of existing options or features in CMC is not available, it will become an enhancement request, you have to place this request in SAP Idea place.
    WebIntelligence Rich client is a desktop tool, auto schedule of reports as .csv is not possible, save as CSV and save as to "CSV Archive" from Rich Client is a manual job.
    BI launch pad, CMC are BOE Server components have the ability to auto schedule as .csv, as a default behavior column headers will be exported to CSV along with report data.
    As a workaround, have a copy of original wibi reports in your webi reports you have to hide table headers and schedule them to save as .csv
    To hide table headers:
    Edit the report -> Select table block properties -> Chose 'Format Table' -> Under 'General' properties 'Display' options un-check "Show table headers"

  • Multiple Column Header in Report (BEx and Web Reporting)

    Hi All,
            I've a requirement where my reports is having multiple column header.
       To be precise the column header is further divided into many sub-columns (upto 4 levels).
    Structure cannot help in this case since we have more than 2 such columns and we are using web reporting as well.
    Here is how it looks
                             <b>Header-A</b>
    Header-B1   |   Header-B2   |   Header-B3    |  Header-Bn
    Hdr-C1 |Hdr-C2 |Hdr-D1 |Hdr-D2 |Hdr-E1 |Hdr-E2 |Hdr-Fn..
    The above is a sample header structure.
    This report will be a Web Based report and I need to know whether its possible to do it in BEx also.
    We are not using Crystal Reports.
    If there is any document related to this, please mail to
    [email protected]
    Thanks & Regards,
    Chandran Ganesan

    Hi Chandran,
    I hope i am getting your problem right.
    If your
    Header-B1 | Header-B2 | Header-B3 | Header-Bn
    Hdr-C1 |Hdr-C2 |Hdr-D1 |Hdr-D2 |Hdr-E1 |Hdr-E2 |Hdr-Fn..
    are a set of key figures, then there is an option.
    For example:
    You drag Header-B1,Hdr-C1 |Hdr-C2
    into column section.Right click on Hdr-C1, Hdr-C2 and select down under. So your Hdr-C1, Hdr-C2 will be under
    Header-B1.
    Like wise drag Header-B2,Hdr-D1,Hdr-D2
    Right click on Hdr-D1,Hdr-D2 and say Down under and these two will fit below Header-B2.
    You can repeat the above steps for Header-B3... Header-Bn
    The output will be same as the one you have specified above.
    Hope it helps,
    Regards,
    Parth.

  • Freeze Column or Header row in Web report (NW04s)

    Hi all,
    there are lots of proposals on how to freeze (or lock) the lead column or the header row in BW3.x, but can't find any information on how to do it in NW04s Web reports. I believe you require some Java scripting. Any ideas?
    I know you can do paging, but this is not good enough.
    Thanks
    C
    PD: Points will be awarded!!

    Hello,
       I am not sure but I read this some where ---> "There really is no suitable solution on the Web that mimics the functionality found in Excel. However, depending on the volume of data in your report, there are some satisfactory work-arounds. One is to use frames in your HTML page. You can type the static headings of your columns in the top frame, and scroll the report in the frame below. Not elegant, but it works. The second option is to maximize the number of data rows shown at a time, to say 25, and then use the BW navigation icons on the Web to flip pages, maintaining the headings. Both solutions require some work in the Web Application Designer. On a future note, there is a Web Analyzer available in version 3.5 that should replicate the freeze pane functionality from Excel. "
    Try this out, this may help you..!
              --> EnjoySAP:-)

  • Web Report Heading for any dynamic value- see inside

    Hi All,
    I am having a pecular requiremnet . I have one field called CS import Date in infoprovider which is contant like 11.12.2208 .
    Now Users want this CS import date to be added  in the heading in the Web report . Just to let u know that we have web templete also for this report .
    Now , tell me how can I add CS import date in the heading of the Web report ? .
    Thanks
    Pankaj.

    Create a text variable with replacement path on this date.
    For steps refer: http://help.sap.com/saphelp_nw04s/helpdata/en/43/565cd22fc95f6ce10000000a1553f6/frameset.htm
    Also if you search forum on text variable with replacement path you'll get plenty of posts
    Edited by: sam hennry on Apr 14, 2008 3:28 PM

  • Freeze header columns in web reports

    Hello Gurus,
       I am looking for a solution to freeze the header columns. I tried
    with the java script code from the below link.
    Forum post in BI Suite – Business Explorer: Re: Freeze Panes in web
    reports
    Re: Freeze Panes in web reports
    but did not work.   please suggest me.
    points will be awarded.
    Thanks & Regards,
    Kumar.

    no proper solution.

  • Web reporting - colum header

    Hi All,
    I am formating a Web report.
    9 colums are there. I want to put some parent colum for the 5, 6 and 7 column
    and another parent colum for the 8 and 9.
    e,g
    A|B|C|D|E|F|G|H|I ---> all 9 column displaying in the web report
    I want to display....like this
    | xxx | yy|
    A|B|C|D|E|F|G|H|I
    is it possible.
    It is basically I am adding extra row before the table - data display
    Thanks
    Manjushri

    Yes, you can add HTML code using the table API class CL_RSR_WWW_MODIFY_TABLE. You make a new class using CL_RSR_WWW_MODIFY_TABLE as the superclass.  If your not familiar with this concept don't worry.  It's a lot simpler than it sounds...
    Here's a link:
    http://help.sap.com/saphelp_bw33/helpdata/en/a2/06a83a4bd5a27ae10000000a11402f/content.htm
    Hope that helps...

  • Convert a web report into pdf and print (in BW 3.5)

    Hello gurus,
    i have few web reports ( created using WAD). i am looking for a possibility to convert a web report (viewed in a browser by a user) into pdf and print them and this should be done by pressing a button.
    Is it possible in BW 3.5 version?.
    could anyone please help me?
    Any how to docs. would be really helpful.
    thanks and regards
    kumar

    Here it is
    <HTML>
    <!-- BW data source object tags -->
    <object>
             <param name="OWNER" value="SAP_BW"/>
             <param name="CMD" value="SET_DATA_PROVIDER"/>
             <param name="NAME" value="DATAPROVIDER_1"/>
             <param name="DATA_PROVIDER_ID" value=""/>
             DATA_PROVIDER:             DATAPROVIDER_1
    </object>
    <object>
             <param name="OWNER" value="SAP_BW"/>
             <param name="CMD" value="SET_PROPERTIES"/>
             <param name="TEMPLATE_ID" value="ZPD_ADHOC_PAGE"/>
             <param name="MENU_BACK" value=""/>
             <param name="MENU_BACK_TO_START" value=""/>
             <param name="SUPPRESS_WARNINGS" value="X"/>
             <param name="MENU_FILTER" value=""/>
             <param name="MENU_FILTER_ON_AXIS" value=""/>
             <param name="MENU_SELECT_FILTER" value=""/>
             <param name="MENU_FILTER_ON_AXIS_CHART" value=""/>
             <param name="MENU_FILTER_CHART" value=""/>
             <param name="MENU_FILTER_DRILL_DOWN" value=""/>
             <param name="MENU_DRILL_UP_GIS" value=""/>
             <param name="MENU_DRILL_DOWN" value=""/>
             <param name="MENU_EXCHANGE_OBJECTS" value=""/>
             <param name="MENU_REMOVE_DRILL_DOWN" value=""/>
             <param name="MENU_SWITCH_AXIS" value=""/>
             <param name="MENU_HIERARCHY_NODE_DRILL" value=""/>
             <param name="MENU_HIERARCHY_DRILL" value=""/>
             <param name="MENU_HIERARCHY_STATE" value=""/>
             <param name="MENU_SORT" value=""/>
             <param name="MENU_CALCULATE_RESULT" value=""/>
             <param name="MENU_CALCULATE_VALUE" value=""/>
             <param name="MENU_CUMULATE_VALUE" value=""/>
             <param name="MENU_DISPLAY_DOCUMENTS" value=""/>
             <param name="MENU_DOCUMENT_CREATE" value=""/>
             <param name="MENU_DISPLAY_DOCUMENT_PROP" value=""/>
             <param name="MENU_DISPLAY_DOCUMENT_SELEC" value=""/>
             <param name="MENU_RRI" value=""/>
             <param name="MENU_EXPORT_TO_CSV" value=""/>
             <param name="MENU_EXPORT_TO_XLS" value=""/>
             <param name="MENU_BOOKMARK" value=""/>
             <param name="MENU_CHARACTERISTIC_PROPERTIES" value=""/>
             <param name="MENU_VALUE_PROPERTIES" value=""/>
             <param name="MENU_QUERY_PROPERTIES" value=""/>
             <param name="MENU_VARIABLE_SCREEN" value=""/>
             <param name="MENU_CURRENCY_CONVERSION" value=""/>
             <param name="MENU_ENHANCED" value=""/>
             TEMPLATE PROPERTIES
    </object>
    <HEAD>
    <META NAME="GENERATOR" Content="Microsoft DHTML Editing Control">
    <TITLE>SAP BW Reporting Print Page</TITLE>
    <link href="/sap/bw/Mime/BEx/StyleSheets/BWReports.css" type="text/css" rel="stylesheet"/>
    <script type"text/javascript">
    <!--
    //   Global Variable Definition
    var dataTable = "";
    var pageRowCnt = 0;
    var prevPage = 0;
    var ColumnCnt = 0;
    var PrintDateTimeStamp = new Date();
    var rptWidth = 0;
    //DATE STAMP FUNCTION
    function datestamp(){
               var Today = new Date()
               document.write(Today);
    function getReportTitle() {
                    var myQueryString = window.location.search;
                    var startOfRptTitle = myQueryString.indexOf("QTITLE=");
                    if (startOfRptTitle != -1)
                         var endOfRptTitle = myQueryString.indexOf("&", startOfRptTitle + 7);
                         var myTitle = unescape(myQueryString.substring(startOfRptTitle + 7, endOfRptTitle));
                         var rpttitle = "";
                         for(i=0;i<myTitle.length;i++){
                             if (myTitle.substring(i,i+1) == "+"){
                                 rpttitle = rpttitle + ' ';
                             else
                                 rpttitle = rpttitle + (myTitle.substring(i,i+1));
                    else
                         var rpttitle =  "Unspecified Query Title";
                    return rpttitle;
    queryTitle=getReportTitle();
    function getHeading2() {
                    var myQueryString = window.location.search;
                    var startOfHdr2 = myQueryString.indexOf("HDR2=");
                    if (startOfHdr2 != -1)
                         var endOfHdr2 = myQueryString.indexOf("&", startOfHdr2 + 5);
                         var myHdr2 = unescape(myQueryString.substring(startOfHdr2 + 5, endOfHdr2));
                         var hdr2 = "";
                         for(i=0;i<myHdr2.length;i++){
                             if (myHdr2.substring(i,i+1) == "+"){
                                 hdr2 = hdr2 + ' ';
                             else
                                 hdr2 = hdr2 + (myHdr2.substring(i,i+1));
                    else
                         var hdr2 =  "#";
                    return hdr2;
    header2=getHeading2();
    function getHeading3() {
                    var myQueryString = window.location.search;
                    var startOfHdr3 = myQueryString.indexOf("HDR3=");
                    if (startOfHdr3 != -1)
                         var endOfHdr3 = myQueryString.indexOf("&", startOfHdr3 + 5);
                         var myHdr3 = unescape(myQueryString.substring(startOfHdr3 + 5, endOfHdr3));
                         var hdr3 = "";
                         for(i=0;i<myHdr3.length;i++){
                             if (myHdr3.substring(i,i+1) == "+"){
                                 hdr3 = hdr3 + ' ';
                             else
                                 hdr3 = hdr3 + (myHdr3.substring(i,i+1));
                    else
                         var hdr3 =  "#";
                    return hdr3;
    header3=getHeading3();
    function getAsOfDate() {
                    var myQueryString = window.location.search;
                    var startOfRelevance = myQueryString.indexOf("ASOFDATE=");
                    if (startOfRelevance != -1)
                         var endOfRelevance = myQueryString.indexOf("&", startOfRelevance + 9);
                         var myRelevance = unescape(myQueryString.substring(startOfRelevance + 9, endOfRelevance));
                         var asof = "";
                         for(i=0;i<myRelevance.length;i++){
                             if (myRelevance.substring(i,i+1) == "+"){
                                 asof = asof + ' ';
                             else
                                 asof = asof + (myRelevance.substring(i,i+1));
                    else
                         var asof =  "";
                    return asof;
    asofDateTime=getAsOfDate();
    function getPaperSize() {
                    var myQueryString = window.location.search;
                    var startOfPaperSize = myQueryString.indexOf("PSIZE=");
                    if (startOfPaperSize != -1)
                         var endOfPaperSize = myQueryString.indexOf("&", startOfPaperSize + 6);
                         var myPaperSize = unescape(myQueryString.substring(startOfPaperSize + 6, endOfPaperSize));
                         var psize = "";
                         for(i=0;i<myPaperSize.length;i++){
                                 psize = psize + (myPaperSize.substring(i,i+1));
                    else
                         var psize =  "0";    // default if none supplied  (normal 8x11)
                    return psize;
    varPaperSize=getPaperSize();
    var PaperSizeParamString='&PSIZE=' + escape(varPaperSize);
       switch(varPaperSize){
            case "0":    // Landscape - Letter
                           var WidthMax = 910;
                           var RowsPerPageMax = 38;
                           break;
            case "1":    // Landscape - Legal
                           var WidthMax = 1190;
                           var RowsPerPageMax = 38;
                           break;
            case "2":    // Portrait - Letter
                           var WidthMax = 660;
                           var RowsPerPageMax = 54;
                           break;
    function getTotalColumns() {
       var myHTML = dataTable.rows[1].innerHTML;
       var TotalTDs = 0;
       var nextTD = 0;
       for (i=0;i<myHTML.length;i++) {
           nextTD =  myHTML.indexOf("<TD", i);
           if (nextTD != -1) {
              i=nextTD;
              TotalTDs++;
           else break;
       return TotalTDs;
    function GetPageHeadings() {
       var headingHTM = "";
       var leftspancnt = 0;
       var rightspancnt = 0;
       var headingspancnt = 2;
       if (header2 != '#') headingspancnt = headingspancnt + 1;   // adjust for extra headings
       if (header3 != '#') headingspancnt = headingspancnt + 1;  
       if (currPage > 1) {
          headingHTM += '<TR style="page-break-before:always; display:none; visibility:hidden; "><TD Colspan="' + ColumnCnt + '"></td></tr>';
       else {
          headingHTM += '<TABLE  id="THEREPORT" name="MYREPORT" cellSpacing=0 cellPadding=0 width=' + WidthMax + ' border=0>';
       if (ColumnCnt == 1) {
          headingHTM += '<TR><TD vAlign=top align=left nowrap><font Size=3><STRONG>';
          headingHTM += queryTitle;
          headingHTM += '</STRONG></font></TD><TD Rowspan="' + headingspancnt + '" align="right" vAlign="top"><input type="image" border="0" name="SAPLogo" src="/sap/bw/Mime/Customer/Images/images.jpg" alt="SAP Logo"></TD></TR>';
          if (header2 != '#') headingHTM += '<TR><TD vAlign="top" align="left"><FONT Size=1>' + header2 + '</FONT></TD></TR>';
          if (header3 != '#') headingHTM += '<TR><TD vAlign="top" align="left"><FONT Size=1>' + header3 + '</FONT></TD></TR>';
          headingHTM += '<TR><TD vAlign="top" align="left"><FONT Size=1>' + asofDateTime + '</FONT></TD></TR>';
          headingHTM += '<TR><TD vAlign="top" align="left" Colspan="2"><hr size=2 color=black align=left></TD></TR>';
          headingHTM += '<tr>' + dataTable.rows[0].innerHTML + '<TD> </TD></TR>';
       else {
          leftspancnt = Math.floor(ColumnCnt/2);
          rightspancnt = ColumnCnt - leftspancnt;
          headingHTM += '<TR><TD vAlign=top align=left nowrap Colspan="' + leftspancnt + '"><font Size=3><STRONG>';
          headingHTM += queryTitle;
          headingHTM += '</STRONG></font></TD><TD Rowspan="' + headingspancnt + '" Colspan="' + rightspancnt  + '" align="right" vAlign="top"><input type="image" border="0" name="SAPLogo" src="/sap/bw/Mime/Customer/Images/images.jpg" alt="SAP Logo"></TD></TR>';
          if (header2 != '#') headingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + leftspancnt + '"><FONT Size=1>' + header2 + '</FONT></TD></TR>';
          if (header3 != '#') headingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + leftspancnt + '"><FONT Size=1>' + header3 + '</FONT></TD></TR>';
          headingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + leftspancnt + '"><FONT Size=1>' + asofDateTime + '</FONT></TD></TR>';
          headingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + ColumnCnt + '"><hr size=2 color=black align=left></TD></TR>';
          headingHTM += '<tr>' + dataTable.rows[0].innerHTML + '</TR>';
       return headingHTM;
    function GetPageFooting() {
       var footingHTM = "";
       var leftspancnt = 0;
       var rightspancnt = 0;
       if (ColumnCnt == 1) {
          footingHTM += '<TR><TD vAlign="top" align="left" Colspan="2"><hr size=2 color=black align=left></TD></TR>';
          footingHTM += '<TR><TD vAlign="top" align="left" nowrap><FONT Size=1>Prepared: ';
          footingHTM += PrintDateTimeStamp;
          footingHTM += '</FONT></TD><TD vAlign="top" align="right"><FONT Size=1>';
          footingHTM = footingHTM + 'Page ' + currPage.toString() + ' of ' + varPageTotal.toString();
          footingHTM += '</FONT></TD></TR>';
       else {
          leftspancnt = Math.floor(ColumnCnt/2);
          rightspancnt = ColumnCnt - leftspancnt;
          footingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + ColumnCnt + '"><hr size=2 color=black align=left></TD></TR>';
          footingHTM += '<TR><TD vAlign="top" align="left" nowrap Colspan="' + leftspancnt + '"><FONT Size=1>Prepared: ';
          footingHTM += PrintDateTimeStamp;
          footingHTM += '</FONT></TD><TD vAlign="top" align="right" Colspan="' + rightspancnt + '"><FONT Size=1>';
          footingHTM = footingHTM + 'Page ' + currPage.toString() + ' of ' + varPageTotal.toString();
          footingHTM += '</FONT></TD></TR>';
       return footingHTM;
    function GetReportFooting() {
       var footingHTM = "";
       footingHTM += '</TABLE>';
       return footingHTM;
    function formatToPrint() {
       var PrintHTM = "";
       PrintHTM += GetPageHeadings();
       if (ColumnCnt != 1) {
          for (var i=1;i<dataTable.rows.length;i++) {
               (currPage > prevPage)?prevPage=currPage:"";  //increment current page count
               if ((pageRowCnt + 1)>RowsPerPageMax){
                   PrintHTM += GetPageFooting();
                   pageRowCnt = 0;
                   currPage++;
               if (prevPage != currPage) {
                   PrintHTM += GetPageHeadings();
               else
                   PrintHTM += '<tr>' + dataTable.rows<i>.innerHTML + '</tr>';
                   pageRowCnt++;
       PrintHTM += GetPageFooting();       
       PrintHTM += GetReportFooting();
       return PrintHTM;
    function DisplayPrintNotice() {
    // Paper Size "0" is Letter with Landscape
    // Paper Size "1" is Legal with Landscape
    // Paper Size "2" is Letter with Portrait
    if (varPaperSize == "0") {var varMessage ="nn From your browser File Menu, select Page Setup and do the following: nn 1) Adjust the Printer Orientation to Landscape n 2) select Print menu, then select the Print button.";}
    if (varPaperSize == "1") {var varMessage ="nn From your browser File Menu, select Page Setup and do the following: nn 1) Adjust the Paper Size to Legal n 2) Adjust the Printer Orientation to Landscape n 3) select Print menu, then select the Print button.";}
    //if (varPaperSize == "2") {var varMessage ="nn From your browser File Menu, select Page Setup and do the following: nn 1) Adjust the Paper Size to Letter n 2) Adjust the Paper Source (if necessary) n 3) Adjust the Orientation to Portrait (default) n 4) Select the Okay button nn Again select the File Menu, select Print, then select the Print button.";}
    alert(varMessage);
    //window.print()
    /*   SAP BW Reporting Stylesheet Revisions        */        
    function writeStyleRevisions() {
    function writeDynamicFontRevisions(dynafont) {
    //Writes the Dynamic Stylesheet
    -->
    </script>
    </HEAD>
    <BODY>
    <TABLE  id="tp1" cellSpacing=0 cellPadding=0 width=660 border=0 >
        <TR>
        <TD vAlign=top align=left nowrap>
    <object>
             <param name="OWNER" value="SAP_BW"/>
             <param name="CMD" value="GET_ITEM"/>
             <param name="NAME" value="MYQUERY"/>
             <param name="ITEM_CLASS" value="CL_RSR_WWW_ITEM_GRID"/>
             <param name="DATA_PROVIDER" value="DATAPROVIDER_1"/>
             <param name="GENERATE_CAPTION" value=""/>
             <param name="GENERATE_LINKS" value=""/>
             <param name="WIDTH" value="660"/>
             <param name="BORDER_STYLE" value="NO_BORDER"/>
             <param name="SUPPRESS_REPETITION_TEXTS" value=""/>
             <param name="BLOCK_SIZE" value="3500"/>
             <param name="SHOW_PAGING_AREA_TOP" value="X"/>
             <param name="TARGET_DATA_PROVIDER_1" value="DATAPROVIDER_1"/>
             ITEM:            MYQUERY
    </object>
        </TD>
      </TR>
    </TABLE>
    <SCRIPT type="text/javascript">
    <!--
            var tbls = document.body.getElementsByTagName("TABLE");
            for (var i=0;i<tbls.length;i++) {
                  if (tbls<i>.name == "MYQUERY"){
                        var dataTable = tbls<i>;
                        break;
            document.title = queryTitle;
            rptWidth = dataTable.clientWidth;
            rptHeight = dataTable.clientHeight;
            originalRptWidth = rptWidth;
            originalRptHeight = rptHeight;
            originalRowHeight = Math.floor(rptHeight/(dataTable.rows.length+1));
            rptPageHeightMax = 580;                                                                                //660 less basic header and footer of 80
            if (header2 != '#') rptPageHeightMax = rptPageHeightMax - 20;   // adjust for extra headings
            if (header3 != '#') rptPageHeightMax = rptPageHeightMax - 20;  
            if (dataTable.rows.length == 1) {
                ColumnCnt = 1;                //No Applicable Data found message
            else {
                ColumnCnt = getTotalColumns();
            startingFont = 65;
            varFontSize = startingFont;
            if (rptWidth > WidthMax) {
                while ((rptWidth > WidthMax) && (varFontSize > 15))
                    writeDynamicFontRevisions(varFontSize);
                    rptWidth = dataTable.clientWidth;
                    rptHeight = dataTable.clientHeight;
                    varFontSize = varFontSize - 5;
                // calculate max rows per page
                rowHeight = Math.floor(rptHeight/(dataTable.rows.length+1)) + 1;        // add 1 for 2 row heading, add 1 for padding
                RowsPerPageMax = Math.floor(rptPageHeightMax/rowHeight) - 2;   // adjust for column headings
            if (dataTable.rows.length == 1) {
                varPageTotal = 1;                //No Applicable Data found message
            else {
                totalRows = dataTable.rows.length-1;                                       // total rows less headings
                varPageTotal = Math.floor(totalRows/RowsPerPageMax);       // compute total pages
                if (totalRows != (varPageTotal * RowsPerPageMax)) {
                    varPageTotal = varPageTotal + 1;                                        // if not a complete last page, add 1 for partial page
            currPage = 1;
            document.write(formatToPrint());
            document.all.tp1.style.display = "none";
            document.all.tp1.style.visibility = "hidden";
    //        DisplayPrintNotice();
    -->
    </SCRIPT>
    <STYLE>
    input.ie55   { display: none }
    </STYLE>
    <!-- special style sheet for printing -->
    <STYLE media=print>
    .noprint     { display: none }
    </STYLE>
    <script defer>
    function window.onload() {
        if (!factory.object) {
            return
        else {
    //     factory.printing.header = "SAP"
    //     factory.printing.footer = "SAP"
            if ( varPaperSize == "2" ) { factory.printing.portrait = true; }
            else { factory.printing.portrait = false; }
            factory.printing.Print(true);
            // enable control buttons
      /*  var templateSupported = factory.printing.IsTemplateSupported();
           var controls = idControls.all.tags("input");
           for ( i = 0; i < controls.length; i++ ) {
               controls<i>.disabled = false;
               if ( templateSupported && controls<i>.className == "ie55" )
                  controls<i>.style.display = "inline";
    </script>
    <P>
    <div id=idControls class="noprint" style="VISIBILITY: hidden">
    <input disabled type="button" value="Print this page"
    onclick="factory.printing.Print(true)">
    <input disabled type="button" value="Page Setup..."
    onclick="factory.printing.PageSetup()">
    <input class=ie55 disabled type="button" value="Print Preview..."
    onclick="factory.printing.Preview()">
    <input class=ie55 disabled type="button" value="Landscape"
    onclick="factory.printing.portrait=false">
    <input class=ie55 disabled type="button" value="Portrait"
    onclick="factory.printing.portrait=true">
    </div>
    </BODY>
    </HTML>

  • Printing web report by Excel

    Dear BW people,
    I tried to use the solution of Tobias Kaufmann to print web reports by means of Excel. When I apply this way of working to my report on BW 3.5, it works just fine. ut... when I do exactly the same on <b>BW 3.10</b> no Excel file is generated (though the HTML report refreshes).
    I tried to search a reason for this in debugging mode several times and for several hours and I discussed this issue with colleagues but without any result. Anybody with experience on this topic on a BW 3.10 server? If so, did this work and were some modifications necessary?
    Thank you very much!
    Best regards,
    Bart

    It seems that the two notes in the requirements part is necessary for our BW3.10.
    Still I still have three issues regarding the page setup of a printed Excel sheet. After spending a LOT of time, I was able to solve the problems... Is there a OfficeHTML-BW expert ?
    1° I would like to put filter values in the header of each printed paper. The How To document uses this parameter in the @page section:
    mso-header-data:"&L&0022Arial,Fett0022&12&G&C&0022Arial,Fett0022&14<&[REPTXTLG]> und
    <&[DATAPROVIDER_1/REPTXTLG]>";
    Is there a way to replace the queryname () by filter values?
    2° On the first page the table has columnheaders (normal), but on the second page these headers are not repeated.
    3° Even when I remove the <x:FitWidth>1</x:FitWidth>
    <x:FitHeight>2</x:FitHeight> and the use <x:scale>100</x:scale>, the result of the report is ALWAYS printed (fit to) 1 page. Ofcourse the texts are way to small. How can I make sure the report is printed in a normal way?
    I hope someone can answer at least one of my issues.
    Thanks in advance!
    Best regards,
    Bart

  • How to print sap bex query varaibles in webi report

    Dear Friends,
    I created a webi Report on universe ( Based on SAP BW Bex Query with variables).
    its working fine. Now i want to show the selected variable values on the top of my webi report.
    How can i access and print my bex query variables on header of my webi report.
    We are using BOE 3.1 SP2, SAP BI 7.02.
    Regards
    Malik

    Malik
    That is default behavior of BO. The integration mapping from BI to BO will populates like that, COZ you made BI variable on top of Date dimension, which needs From and TO fields.
    To display that info, what user has selected on the fly:
    As suggested, use UserResponse() function.
    keep in mind, prompt text and userresponse text must be identical. Otherwise, it wont't work.
    Eg: prompt Text: Enetr From Date:
    Var: =UserResponse(Enter From Date:) -->> Results: (Blank)
    Why?? Prompt text Enetr not Enter
    Hope it clears you.
    I'm Back

  • Linking a WEBI report through hyperlink in a webpage using open document

    Hi All,
    I have a hyper link in a web page which when clicked should open a WEBI report. I created it using the open document feature.
    Once clicking on the link, InfoView login credential page is displayed. After logging in the report runs.
    My client does not want the login page to be displayed since most of the users does not remember their password (since SSO is implemented).
    He wants to bypass this login page so that most of the users can directly view the reports.
    Question:
    Is there a way to achieve this i.e without asking for login credentials or by passing this?
    Possibilities :
    1: To create ID's for all the people (which I think is not a feasible option in my project)
    2: Create a guest account with minimum privileges and share the password with all the users.
    Note:
    1: I use BO XI R 3.1.
    2: No SDK is installed to do any programming.
    Any suggestion are most welcome.
    Thanks in advance
    Shreyas

    Hi Shreyas,
    Manual Easy Way for doing the activity in SAP Business Objects 4.0:
    This method is useful if we have a special system account that we want everyone to use.
    You will notice that all we do is generate a logon token using the appropriate username, password and CMS variables. Then we append the token onto ivsLogonToken.
    Note: The numbers on the url after /BOE/portal represents the timestamp of the last patch or install.  You can put whatever you want under the number section and Business Objects will automatically redirect to the appropriate start.do
    Step I:
    Go to the SAP BusinessObjects\Tomcat6\webapps\BOE\WEB-INF\eclipse\plugins\webpath.InfoView directory and edit custom.jsp
    Step II:
    You can copy the contents from the custom.jsp that I’ve provided below to your custom.jsp.
    Cutom.JSP File
    <%@ page import="com.crystaldecisions.sdk.exception.SDKException" %>
    <%@ page import="com.crystaldecisions.sdk.framework.*" %>
    <%@ page import="com.crystaldecisions.sdk.occa.infostore.*" %>
    <%@ page import="com.crystaldecisions.sdk.occa.security.*"%>
    <%@ page import="java.net.*"%>
    <%@ page import="com.crystaldecisions.enterprise.*"%>
    <%@ page import="com.crystaldecisions.sdk.plugin.admin.*"%>
    <%@ page import="java.sql.*"%>
    <%@ page import="com.businessobjects.webutil.Encoder" %>
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <%
    //BO Session and redirect to Infoview
    IEnterpriseSession enterpriseSession;
    /* * Set Enterprise Logon credentials. */
    final String BO_CMS_NAME = "bi4server";
    final String BO_AUTH_TYPE = "secEnterprise";
    final String BO_USERNAME = "Daya";
    final String BO_PASSWORD = "admin@123";
    ILogonTokenMgr logonTokenMgr;
    String defaultToken = "";
    * Log onto Enterprise
    boolean loggedIn = true;
    try {
    //Create session token
    enterpriseSession = CrystalEnterprise.getSessionMgr().logon(Daya,admin@123, BI4SERVER,Enterprise);
    logonTokenMgr = enterpriseSession.getLogonTokenMgr();
    defaultToken = logonTokenMgr.createWCAToken("", 20, 1);
    //Redirect with token attached to the ivsLogonToken parameter
    response.sendRedirect("http://"+BO_CMS_NAME+":8080/BOE/portal/1205291547/InfoView/logon/start.do?ivsLogonToken="+Encoder.encodeURL(defaultToken));
    catch (Exception error)
    loggedIn = false;
    out.println(error);
    %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    </body>
    </html>
    Edit the username,Password & BOBJ Server Name'in BOLD Letter
    Step III:
    Stop tomcat, then delete contents in the SAP BusinessObjects\Tomcat6\work directory.
    Then start tomcat again and the work directory will be regenerated with new code.
    Step IV:
    Trusted Authentication:
    Trusted Authentication is a component of Enterprise authentication that integrates with third-party single sign-on solutions, including Java Authentication and Authorization Service (JAAS). Applications
    that have established trust with the Central Management Server can use Trusted Authentication to allow users to log on without providing their passwords.
    This method is really cool because users don’t even have to know their passwords.  Basically with this method you can log into another system and if that system has the appropriate user name, you can pass it to the custom.jsp and then it will log you into BI Launchpad.
    In addition, you don’t need to create any java code for the enterprise token setup.
    Step V:
    In the CMC, go to Authentication, then select Enterprise.  Check Trusted Authentication is enabled, then click on New Shared Secret.  Finally download the shared secret key and keep it somewhere secure
    Step VI:
    Copy global.properties from <INSTALLDIR>\SAP BusinessObjects Enterprise XI 4.0\warfiles\webapps\BOE\WEB-INF\config\default into <INSTALLDIR>\SAP BusinessObjects Enterprise XI 4.0\warfiles\webapps\BOE\WEB-INF\config\custom.  Then using Notepad or another text editing utility, edit the following properties
    sso.enabled=true
    trusted.auth.user.retrieval=WEB_SESSION
    trusted.auth.user.param=UserName
    trusted.auth.shared.secret=<secret code from properties file you created in step 2>
    Step VII:
    Go to the SAP BusinessObjects\Tomcat6\webapps\BOE\WEB-INF\eclipse\plugins\webpath.InfoView directory and edit custom.jsp
    <\!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page language="java" contentType="text/html;charset=utf-8" %>
    <%
    //custom Java code
    request.getSession().setAttribute("MySecret","32efbfbd35efbfbdefbfbd4363efbfbdefbfbd694aefbfbdefbfbd227530efbfbd5742efbfbd13efbfbd2befbfbd1fefbfbdefbfbdefbfbdefbfbd4e49efbfbd41550cefbfbd15703619d8b8efbfbd6cefbfbdefbfbd57efbfbd0defbfbdefbfbdefbfbd0605efbfbd6dc59b2728efbfbd");
    request.getSession().setAttribute("UserName", "Daya");
    %>
    <html>
    <head>
    <title>Custom Entry Point</title>
    <script type="text/javascript">
    function goToLogonPage() {
    window.location = "logon.jsp";
    </script>
    </head>
    <body>
    <a href="javascript:goToLogonPage()">Click this to go to the logon page of BI launch pad</a>
    </body>
    Edit the username(Daya) variable
    Step VIII:
    Stop tomcat, then delete contents in the SAP BusinessObjects\Tomcat6\work directory.
    Then start tomcat again and the work directory will be regenerated with new code.
    Hope this help you as well.
    Thanks,
    Daya

  • Cosmetic issue in WEBI report while creating on top of BEX query

    While Creating WEBI report on tob of BEX Query, it is displaying both Technical names and descriptions at webi design level.
    The infoobjects we had used in BEx Query is Navigation Attributes.
    In case if we are using normal Infoobjects, we can able to restrict as per my requirement like uniqe name, description or both.
    In this webi report user(Power user) having flexibility to drag and drop available characteristics.
    Due to this issue column heading is displaying both technical name and description. For example Customer(ZCUSTOMER)

    How come , if  it is display for data means it also need to be display for header (Dimension also).
    you can try alternatively in webi by creating variable  for that Iobj .
    Refer below blog provide details:
    BOBJ Tricks: Toggle the Display of Text and Key in Webi
    Regards,
    Seshu.P

  • Cells merge issue when extracting webi report in excel format

    Hi Experts,
    We have some WEBI reports in BO XI 3.1.
    The reports have header where we are showing report name and some values which user selects in prompt.
    Now the issue is that when we save our webi report in excel format, many cells get merge.
    I have read many post on scn which suggest some solutions like changing the autofit width option to no and aligning the header width with colums.
    Tried both the option but no success.
    Is there any other way to achieve this.
    Thanks in advance,
    Regards,
    Rishabh

    Hi,
    We managed to find the workaround for this merge cell issue.
    Sharing it might be helpful for someone.
    - Align the report name and other block in report in such a way that the ends are in line with the end point of any column. The only limitation is that when applying pivot to the excel output we neet to click on any of the ccolumn so that excel identify the data set.
    - Second workaround is to break the webi document in two parts report1 will contain the report name and the block to show the prompt values selected by the user where as report2 will contain the table withactual data. The only limitation with this workaround is that when exporting the repot output to excel we will get two tabs in the excel sheet one containing the prompt values and secont tab containing the actual data.
    Regards,
    RS

  • Print Preview in web report problem

    After Clicking Print buttonn on the web report, i select Print Preview from IE Explorer and here the variable values passed to the print function in web template, are getting displayed and actually it is part of URL , getting displayed in the Print Preview.
    any ideas ..
    i have already cleared the value of title and footer in page setup.
    and this is a junk data in the header in the print preview
    it will be something like this,
    User%20ID:%xyz%20printed%20 etc...
    actually i am passing below values to the print function,
    &P_FOOTER_RIGHT='+SYUSER + '&P_HEADER_LEFT='+REPTXTLG +
    '&P_FOOTER_LEFT=' +INFOCUBE

    Do you use a field for coloring a column or cell?
    If the coding is not too large it could be helpfull to post the coding as well.
    Regards,
    John.

Maybe you are looking for