Multi format report using BI Analytics

Hi,
I would like to know if it is possible to design and build a multi format report (each format on a different page) using BI Analytics.
For eg if i have to display a report containing performance details of a single portfolio belonging to a customer. So in terms of formats - first page may contain information like customer id, name, portfolio id,etc. There may also be some static text. Second page may contain aggregated information about the portfolio performance. And so on. Last page may have information in tabular format.
can we have such multiiple formats in a single Analytics report ?
Thanks
Nusrat

Hi,
Is my undertsanding correct - I create a new dashboard and in that i add a new page for each section of the report.
Thanks
Nusrat

Similar Messages

  • Generate HTML format report using  DBMS_SQLTUNE.REPORT_TUNING_TASK function

    How could i generate HTML format report using DBMS_SQLTUNE.REPORT_TUNING_TASK function in oracle 11g

    See [url http://download.oracle.com/docs/cd/E11882_01/appdev.112/e16760/d_sqltun.htm#CHDGEIHJ]documentation for DBMS_SQLTUNE.
    The TYPE parameter suggests that it would determine the format and whilst the nline documentation in the code (desc DBMS_SQLTUNE) suggests that valid values are TEXT, HTML and XML, it seems that this is not yet implemented. Whilst valid values of TEXT, HTML and XML are validated, only a TEXT report is produced.

  • Need to generate excel(or CSV format) report using Oracle10g PL/SQL

    Hi Guys,
    I want to generate excel/csv report dynamically using PL/SQL, as I am presently running one SQL query to fetch results and extract excel file. This I need to do dynamically by using PL/SQL code.
    Also the generated file need to send to couple of recepients via mail, this process shall I do it from Oracle ?
    Can any body help on this.
    Thanks in advance!!
    Regards,
    KLR

    UTL_FILE
    UTL_MAIL
    https://forums.oracle.com/thread/2609119
    Ramin Hashimzade

  • Multi-language report using selection locale

    Hi,
    I am using Crystal report 2008. I need to display the report based on user selection profile. This report has dynamic parameter with some text which also need to change according to the user selection locale.
    I am using CMC to view the reports (not using any other viewer).
    Question: Can I pass the user selection locale to dynamic parameter procedure as a input parameter?
    If so how to do this.
    Or is there any other method to acheive this (use same template with dynamic parameter to view in multiple locale,
    including dynamic parameter in different locale.
    (using same database procedure with viewing language as parameter or
    using different database procedure depends on viewing locale)
    Thanks
    Mammoty

    Hello,
    The OTN forum for XML Publisher (now called BI Publisher) is here :
    BI Publisher
    Regards

  • XML Publisher Multi tab Report: Help needed

    Hi,
    I have a requirement like below--
    Need to develop master detail XML Report in R12. O/P will be in excel.
    Excel output having two Work sheet.
    Some columns data must be non editable in excel output ,whereas some columns will be editable.
    User must not be able to add any line manually in the report.
    Can anyone pls help me out to find a way to build this?????????
    Thanks
    Titas

    Hi Titas,
    Any luck with this? Were you able to create a multi-tab report using XML Publisher? Any help on this will be greatly appreciated.
    Thanks.

  • Use of project view to group project records in multi-project report

    I have a summary level multi-project report to report summary level information for active projects.  We are using project view to organize our projects between departments and divisions (hierarchical structure) - represented by folders in project view.  Projects are occasionally moved between project folders.  If anyone has experience with report development using folder structure?  My intent is to create grouping band based on folder structure and list projects under appropriate folder/band. 
    Any assistance is greatly appreciated.
    I am using CM14.1 with OBIP 10.1.1.7
    Thanks,
    Prath

    If you are creating a standard multi-project report (no retrieval criteria; project_state=0)  and you run this report from within PCM, PCM automatically appends to your syntax the filtering criteria for the "folder" the user has highlighted in the project tree.  In this case you would have one report that would retrieve multiple sets of data actively depending upon the project tree position.  I have seen sometimes this causing issues with certain base syntax, but in general this should work.
    Sounds, though, like you're building your report to call to the raw project_view tables, and Rick pointed out you need to use both of these tables then most likely.

  • Xml report output in excel format without using options tab in EBS

    How to get xml publisher report output in excel format without using options tab in EBS?
    I am getting XML Publisher report output in excel format by using options tab while submitting the concurrent request .
    But i want to get excel output automatically.
    Can anyone give idea to get XML publisher Report output in excel without selecting options tab.
    Thanks in advance
    Sandeep V

    Hey Sandeep,
    I am working on a similar format for a report and if possible can you please give me some guidelines. I have initially created reports using XML Publisher, but for those , the output preview format was PDF. So, if I select the preview format as EXCEL will it give me output in Excel and for this to happen, how do I define the rtf template. I believe the working will be same as for PDF, create a rdf report, get output in XML and apply the template to get the data in Excel or there is something different to this.
    Thanks,
    Sunil

  • Use of Dowload Scheduler  , and Formatted  Reporting

    Hi friends,
       in  our Business Explorer  i can able to see  lot of  tools..along with Analyser and  Query Designer .. those are.. <b>Download Sceduler </b> and <b>Foramtted  Reporting</b>... and <b>Browser</b> ..
    can  any one   plz give me the brief idea.. abt those tools...
    helpful answers  will be rewarded....
    THANKS
    Babu

    HI,
    <b>Download scheduler</b> can be used to download a package - create a package for precalculation in the reporting agent and then open the same using the download scheduler and schedule the same...
    procedure:
    1. create a web template
    2. In report agent -Do setting for the web template
    3. schedule the setting in the package.
    4. the setting was for
    data calculation
    Excel sheets
    HTML pages
    Then check the preview, you will get data in it.
    5. run the package
    6. use download scheduler to create HTML pages and Excel workbooks
    BTW - download scheduler is taken away in NW2004s
    <b>Formatted reporting</b> is for producing a report in an exact format required by the user. For stringent formatting requirements (e.g., financial reports, government reporting, etc.), this usually implies the use of a reporting tool like Crystal Reports.
    <b> Bex Browser</b> makes it possible for you to access all document types of the Business Information Warehouse that are assigned to your role, or that you have stored in your favorites. In the BEx Browser, you can select and open the documents assigned to you, or store and manage new documents.
    The document types which you can work with in the BEx Browser are:
    BW workbooks
    Documents stored in the Business Document Served (BDS)
    Links (references to the file system, shortcuts)
    Links to Internet pages (URLs)
    SAP transaction calls.
    BW Web reports
    Hope this helps!!
    Regards,
    dhanya.

  • Formatting a multi-block report

    I am having trouble with formatting a multi-block report. For some reason, when I get to the second page - the builder automatically starts putting in extra white space at the top of each page thereafter which really throws off my formatting.also, for one of the blocks, the builder puts each record onto its own page. does anyone have any suggestions?

    i was unable to resolve the issue -
    it is as follows
    i am creating a complex report that includes several different reports and graphs - so the report that i am referring to had to be created manually -
    it is a manually created group above report -
    the group above works nicely - but between each group there is a page break -
    although there is no page break between the last group and the next report block.

  • Why reports uses the .eps format when emailing a report?

    Hi
    If you select to send a report by email, it automatically
    chooses the .eps format to send the report as an attachment.
    I know it stands for "encapsulated post script" (I think...),
    but is there a way to send in PDF format for example?
    Till now, the user has to generate the report in PDF format
    and then, manually, create an email and attach such file.
    And what program opens such type of file (eps)?
    Thanks
    Luis Cabral

    The .eps format is a postscript format type used to send directly to the printer. I really don't know why this format is good but ...
    A way to send an e-mail attachment in HTML, PDF or RTF format, is setting the parameters DESTYPE and DESFORMAT, but this way enforces you to create another way to trigger the e-mail cause the button e-mail in Oracle Reports uses .eps by default.
    I suggest you to create a parameter form with the format option and trigger the reports by RUN_PRODUCT built-in. If you don't need to preview the report, set the properties in the parameter form and trigger the report normally.
    DESTYPE=MAIL
    DESFORMAT=PDF or DESFORMAT=HTML or DESFORMAT=RTF

  • DocFlex/Javadoc 1.5.6, a multi-format doclet development tool and more

    DocFlex/Javadoc is both a multi-format Javadoc Doclet and a rapid doclet development tool, which allows easy creation of professional quality Java API documentation generated by Javadoc in various output formats.
    More in this article:
    Key Features
    Availability
    This Version
    What is DocFlex?
    Main Concepts
    Other Applications
    Links
    KEY FEATURES
    Template-driven doclet architecture
    - Actual doclets are created in the form of special templates interpreted by the DocFlex Doclet, which is the template interpreter / output generator wrapped in the form of a Javadoc Doclet.
    - The high quality graphic Template Designer allows you to visually design most of things, whose development was possible so far only by direct Java coding.
    - The templates are designed independently on a particular output format. All formatting is specified in some universal way using properties of template components. During the generation, it is rendered with the suitable features available in the selected output format.
    - The elaborated support of template parameters (including multivalued list parameters). The parameters are defined and accessed within templates to adjust dynamic properties of template components. Most of options previously used to control an ordinary doclet now simply become template parameters!
    - The possibility to call templates from one another. This feature (along with the template parameters) makes possible re-using the same templates for different tasks as well as organizing template libraries.
    Data processing
    - The entire Doclet API is represented in the form of a virtual XML document (called Doclet DSM), on which the designing and processing of all templates is based.
    - Sophisticated capabilities for data querying and sorting based on an extension of XPath.
    - Full support of new Java 5.0 language features: Generic Types, Enums, Annotations.
    - Simultaneous support of Java 1.4 and Java 5.
    Creating hyperlinks
    - Generation of an extensive network of hyperlinks interconnecting the whole documentation.
    - The hyperlinks can be generated in all output formats that support them (this currently includes HTML and RTF).
    - The universal way of defining documentation cross-links based on the link/target keys specified in templates.
    - In RTF, the cross-links can be generated in the form of page number references, which effectively makes them usable even in the printed documentation.
    - In HTML, the possibility of loading several frame windows from a single hyperlink at once.
    Universal support of various formatting techniques
    - text formatting: fonts, colors, borders
    - paragraph formatting: margins, pagination control, borders, colors
    - border formatting: styles (solid, double, dashed, dotted), thickness, colors
    - tables: arbitrary cell layouts, borders, nested tables
    - lists: bulleted, numbered, delimited
    - document fields (RTF): page number, number of pages, TOC, etc.
    - page formatting: size, orientation, margins, headers/footers
    - formatting styles
    - rendering of embedded HTML, which means interpreting in non-HTML output formats (such as RTF) the HTML tags embedded in text data (e.g. documentation comments). Almost all HTML tags practically usable in doc-comments are supported.
    Inserting images
    - statically specified in templates
    - dynamically, obtained by <img> tags found in Java comments
    - supported image formats: GIF, PNG, JPG, WMF, EMF, BMP
    Output formats
    - HTML (both framed multi-file and single-file output)
    - RTF (version 1.6 - supported since Word 2000).
    - TXT (plain text), which may be particularly useful for various utilizations of the Java code information provided by the Doclet API generate XML files by it, or SQL files to import into a database).
    Standard Template Set
    - The ready-to-use Standard Template Set included in all editions of DocFlex/Javadoc allows you to immediately generate:
    (*) The framed HTML Java API documentation similar to that generated by the standard Javadoc.
    (*) The same documentation packed in a single HTML file.
    (*) The unmatched quality RTF JavaDoc.
    - Special features supported by standard templates:
    (*) Excluding classes/methods/fields by custom tags and annotations.
    (*) Selective omitting of package qualifiers.
    (*) Selective documenting of custom tags (similar to -tag option of Standard Doclet).
    - By modifying the standard templates, you can quickly customize the generated documentation according to your needs.
    Doclet GUI
    - Besides command line options, DocFlex Doclet supports an alternative user-friendly way to control the template-based doclets interactively -- the high quality Doclet GUI.
    - The Doclet GUI starts with the Generator Dialog, where you can specify all general settings (such as the main template, the output format and the output directory), start the generation, track its progress and stop at any moment you need.
    - The grid-tree-based Parameter Inspector invoked from the Generator Dialog for a selected template allows you to view the descriptions of all template parameters controlling the doclet and set their values according to the parameter data types.
    - The generator options specific for the selected output format can be set in the corresponding Format Option Inspector (also invoked from the Generator Dialog).
    - Once the generation is finished (or cancelled), you can start it again with different settings or a new main template without restarting the whole Javadoc.
    Integrations
    - With any system that runs Javadoc (in particular, see below)
    - Apache Ant
    - Apache Maven 2
    - Eclipse
    For lots more information, see DocFlex/Javadoc homepage: [http://www.filigris.com/products/docflex_javadoc/]
    AVAILABILITY
    DocFlex/Javadoc comes in two editions:
    (1) The full edition called "DocFlex/Javadoc" as it is. This is commercial software, which includes all the implemented functionality.
    (2) The reduced freeware edition called "DocFlex/Doclet". It includes only the output generator and can be used as an interpretor of any custom templates. It also includes the standard template set, which allows you to instantly use it as an HTML doclet (similar to the standard one, however with some special features) plus an excellent quality RTF doclet.
    Both editions are available for downloads on the page: [http://www.filigris.com/downloads/]
    THIS VERSION
    New features:
    - The template interpretor works 15-20% faster
    - Improvement of RTF output
    - Multi-valued (list) template parameters
    - Custom elements
    - Standard Templates: Selective documenting of custom tags (similar to -tag option of standard doclet)
    For more details, see product Readme | Change Log on the downloads page: [http://www.filigris.com/downloads/]
    WHAT IS DOCFLEX?
    DocFlex is an innovative technology for development of high quality template-driven documentation/report generators by any kind of data obtained from various software applications via the Java APIs they provide.
    MAIN CONCEPTS
    The whole DocFlex technology is based on four generalizations:
    (1) The mapping of an entire Java API onto a virtual XML-like representation made of some elements and attributes so as to process any such a representation in a universal way using techniques borrowed from the field of XML, like XPath (or more precisely, a conceptual analogue of XPath with some extensions not present in it).
    (2) The abstract formatting concept based on four layouts (flow of text, flow of paragraphs or paragraph-like objects, tables and lists), which can be rendered in most modern document formats (e.g. HTML, RTF, XSL-FO etc.)
    (3) The automatic generation of hyperlinks (or their page number reference equivalents) by matching the sets of keys produced from certain natural properties of the things (entities) being documented and hyper-linked.
    (4) The representation of the object controlling structure of the output generator (made on the first three principles) in the form of a plain-text template with a possibility to create and edit such templates using a graphic Template Designer, which visualizes the controlling objects (now becoming template components) in a form resembling the output they will produce.
    OTHER APPLICATIONS
    In fact, DocFlex/Javadoc is not the only application of DocFlex technology. The following is a summary of other DocFlex software:
    DocFlex/XML
    The SDK and runtime environment for rapid development and execution of template-driven automatic documentation/report generators by any data obtained from XML files.
    This is currently the most complex and advanced application of DocFlex technology. Actually, this tool can be considered a powerful alternative to XSLT. At least, it is definitely able to do what XSLT apparently not (for example, see “XSDDoc” below). We will publish a more detailed comparison “DocFlex/XML versus XSLT” with the next DocFlex/XML release, which is coming very soon.
    DocFlex/XML home page: [http://www.filigris.com/products/docflex_xml/]
    DocFlex/XML | XSDDoc
    A template set for DocFlex/XML that implements a high quality W3C XML Schema documentation generator in HTML and RTF output formats.
    For more details, please see: [http://www.filigris.com/products/docflex_xml/xsddoc/]
    DocFlex/XML | WSDLDoc
    A similar template set for DocFlex/XML that will implement a high-end WSDL documentation generator.
    This product is not released yet.
    DocFlex/Together
    A template-driven documentation generator for [Borland Together|http://www.borland.com/us/products/together/] (which is a UML modeling tool).
    This is the earliest application of DocFlex technology and probably the most beautiful one. It works only with Together Architect 1.x, which is now obsolete. Unfortunately, since Together 2005, Borland eliminated any open APIs (for unknown reasons). Because of this, further development of DocFlex/Together was impossible.
    DocFlex/Together home page: [http://www.filigris.com/products/docflex_together/]
    See also examples of the UML documentation generated with it: [http://www.filigris.com/products/docflex_together/examples/]
    The future DocFlex/UML is going to generate something like this as well.
    DocFlex/UML
    A template-driven UML documentation generator based on [Eclipse EMF|http://www.eclipse.org/emf/]. This tool is in early development stage yet. In a sense, it will continue DocFlex/Together with the focus on integration with other UML tools that use Eclipse EMF.
    LINKS
    This original article can be found at:
    [http://www.filigris.com/ann/docflex_javadoc_v1.5.6/]
    DocFlex/Javadoc home page:
    [http://www.filigris.com/products/docflex_javadoc/]
    DocFlex/XML home page:
    [http://www.filigris.com/products/docflex_xml/]
    DocFlex/XML | XSDDoc, the XML schema documentation generator:
    [http://www.filigris.com/products/docflex_xml/xsddoc/]
    Free downloads:
    [http://www.filigris.com/downloads/]

    Now, DocFlex/Javadoc v1.4 has been released specifically dedicated to Linux (Mac OS X) support:
    (*) Some early bugs have been fixed, which prevented it working properly under Linux.
    (*) A special RTF option was introduced to generate OpenOffice.org friendly RTF (see below)
    (*) Improved support for external document viewers.
    (*) Now, DocFlex/Javadoc software includes the shell script files prepared to quickly install and launch it under Linux
    New RTF option
    A new RTF output option "Tune output for MS Word� has been introduced. This option, actually, allows switching off that very tuning (which until now was the default mode) to produce an RTF friendly to open with other non MS Word applications, e.g. OpenOffice.org Writer under Linux.
    Read full announcement (and screenshot) by this link:
    http://www.filigris.com/ann/docflex_javadoc_v1.4/
    Regards,
    Leonid Rudy
    http://www.docflex.com

  • Reports using multiple tables

    I am trying to create a report using portal that use links between multiple columns. The info I want is mainly in two tables. Some of the info in the table is numeric (Foreign Keys). I want to display them in readable format so set up joins to the respective parent tables. When I do this the result only produces 12 lines of output irrespective of the number of lines I set per page. When I show only the data from the main tables, without the joins to the other parent tables, i.e. the foreign keys as numbers I get all the rows. I have tried to create the report by using all three options given but get the same result.
    I am using 9iAS verison 1.0.2.0 and Portal version 3.0.7.
    Can someone please explain why this happens and how I can solve this problem urgently.

    Hi Ashok,
    Sorry for posting the solution with delay. Actually I ran into the similar situation and upon deep analysis, I could crack it., the very next day.
    This is how your write back template should be for updating on multiple tables
    <?xml version="1.0" encoding="utf-8" ?>
    <WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1">
    <WebMessageTable lang="en-us" system="WriteBack" table="Messages">
    <WebMessage name="WRITE">
    <XML>
    <writeBack connectionPool="Oracle Data Warehouse Connection Pool">
    <insert> </insert>
    <update> UPDATE FACT SET COUNT = '@{c4}', W_UPDATE_DT = CURRENT_DATE
    WHERE EXISTS (SELECT ROW_WID FROM DIM WHERE DIM.ROW_WID = FACT.DIM_WID AND
    DIM.X = '@{c1}' AND DIM.Y= '@{c2}' AND DIM.Z = '@{c3}' ) AND EXISTS (SELECT ROW_WID FROM DT WHERE DT.ROW_WID = FACT.DT_WID AND DT.PER_NAME_YEAR = '@{c0}') </update>
    </writeBack>
    </XML>
    </WebMessage>
    </WebMessageTable>
    </WebMessageTables>
    =====
    Using exits, will improve the performance.
    Hope it helps. If yes, pls award points. Thanks
    Regards,
    Sarat Nallapati

  • Multi-columned report

    Helllo,
    I"m using Application Express 3.1.2.00.02
    I want to do a 3 columned report.
    I just saw this thread ( from 2005 - that's why I started a new)
    Multi-columned report
    When I applied the template to my report region, I got the following error:
         ERR-1025 Erreur lors du traitement de l'expression PL/SQL. mod(1,3)0
    Can someone tell me why?
    thanks,
    Roseline
    My Query - select ename from emp
    The template I created step by step:
    Create a report row template....
    Workspace>Builder-Application>Shared Components>Themes>Templates...Create
    Template Type: Report
    Creation Method: From Scratch
    Name: One Field - Three Column
    Theme: your choice
    Template Class: Standard
    Template Type: Named Column (row template)
    Edit the report Template you just created and modify the following:
    Row Template 1: <td width="150">#1#</td>
    Row Template Condition: Use Based on PL/SQL Expression
    Row Template 1 Expression: mod(#ROWNUM#,3)0
    Row Template 2: <td width="150">#1#</td></tr><tr>
    Row Template Condition: Use Based on PL/SQL Expression
    Row Template 2 Expression: mod(#ROWNUM#,3)=0
    Before Rows: <tr>
    After Rows: </tr>
    Create a query based report region. For my test I used "select ename from emp". Have the report use the row template.
    This is just a quick and dirty sample. For better look and feel you'll need to do your own formatting...

    Yes, that's it.
    However, that I SEE is only 4 name ( every 3 name of the list) on the same line:
    ENAME WARD  ENAME BLAKE  ENAME KING  ENAME JAMES
    1 - 14   But when I cut and paste from Internet Explorer to a text file,m=, even if I see all the result on the same line, when I past it, it's formated :
    ENAME WARD
    ENAME BLAKE
      ENAME KING
      ENAME JAMES
       1 - 14  
    I have 14 results in my database:
    In My SQL
    select * from emp
    EMPNO     ENAME     JOB     MGR     SAL     DEPTNO
    7369     SMITH     CLERK     7902     800     20
    7499     ALLEN     SALESMAN     7698     1600     30
    7521     WARD     SALESMAN     7698     1250     30
    7566     JONES     MANAGER     7839     2975     20
    7654     MARTIN     SALESMAN     7698     1250     30
    7698     BLAKE     MANAGER     7839     2850     30
    7782     CLARK     MANAGER     7839     2450     10
    7788     SCOTT     ANALYST     7566     3000     20
    7839     KING     PRESIDENT     -      5000     10
    7844     TURNER     SALESMAN     7698     1500     30
    7876     ADAMS     CLERK     7788     1100     20
    7900     JAMES     CLERK     7698     950     30
    7902     FORD     ANALYST     7566     3000     60
    7934     MILLER     CLERK     7782     1300     10
      What I would like, is having this display:
    SMITH     ALLEN     WARD
    JONES     MARTIN     BLAKE
    CLARK     SCOTT     KING
    TURNER     ADAMS     JAMES
    FORD     MILLER     
    How can I modify the template?
    thanks again Roseline

  • Multi level where used list (cs_where_use_mat)

    How to get Multi level where use list of a component?
    CS_WHERE_USE_MAT has details of a material. but i need to dig where use list for all materials of that component.  CS15 does not give compleate details(only few fields are there)

    Check the below program :
    REPORT ZPPR_BOM_INFOL_REPORT no standard page heading
                     line-size 160
                     line-count 60.
    ======================================================================
    Program Name : ZPPR_BOM_INFOL_REPORT
    Table definition                                                    *
    TABLES: mast,
            stko,
            stpo,
            T418,
            makt.
    TYPE - POOLS
    TYPE-POOLS: slis.
    Constants
    constants : c_tcode(4) type c value 'CS03',
                gc_formname_top_of_page TYPE slis_formname
                VALUE 'TOP_OF_PAGE'.
    Variables
    data : v_maktx like makt-maktx,
           wa_stko like stko.
    DATA:
    Objekttyp 'Material'
       otyp_mat(1) TYPE c VALUE '1',
       ootyp_mat(1) TYPE c VALUE 'M',
    Objekttyp 'kein Objekt'
       otyp_noo(1) TYPE c VALUE '2',
    Objekttyp 'Dokument'
       otyp_doc(1) TYPE c VALUE '3',
    Objekttyp 'Klasse'
       otyp_kla(1) TYPE c VALUE '4',
    Objekttyp 'Intramaterial'
       otyp_ntm(1) TYPE c VALUE '5'.
    maximal anzeigbare Menge
    data:   max_num(7)  TYPE p DECIMALS 3 VALUE '9999999999.999',
            ueberl_kz(1) TYPE c VALUE '*',
            min_num(7)  TYPE p DECIMALS 3 VALUE '9999999999.999-',
            b_flag(1) TYPE c VALUE 'X',
            ecfld(250) TYPE c,
            v_flag type c.
    ALV Variables
    DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
          gs_layout   TYPE slis_layout_alv,
          gs_keyinfo  TYPE slis_keyinfo_alv,
          gt_sp_group TYPE slis_t_sp_group_alv,
          gt_events   TYPE slis_t_event.
    DATA: g_repid LIKE sy-repid.
    DATA: gt_list_top_of_page TYPE slis_t_listheader,
                g_tabname_header TYPE slis_tabname,
                g_tabname_item   TYPE slis_tabname,
                g_save(1) TYPE c,
                gx_variant LIKE disvariant,
                g_variant LIKE disvariant,
                g_default(1) TYPE c,
                g_exit(1) TYPE c.
    Includes                                                             *
    INCLUDE .
    Internal Table Declaration                                           *
    DATA: t_mast LIKE STANDARD TABLE OF mast WITH HEADER LINE.
    *DATA: t_makt LIKE STANDARD TABLE OF makt WITH HEADER LINE.
    BOM Function module Related
    DATA: t_matcat  LIKE cscmat OCCURS 0 WITH HEADER LINE.
    Internal Table for Level by Level Function module
    DATA: t_stb  LIKE stpox OCCURS 0 WITH HEADER LINE.
    Get the Relevant data from FM
    DATA: BEGIN OF hd_tab OCCURS 0,
             stufe LIKE stpox-stufe,
             vwegx LIKE stpox-vwegx,
          END OF hd_tab.
    Final Output
    DATA: BEGIN OF alv_stb OCCURS 0.
            INCLUDE STRUCTURE stpox_alv.
    DATA:   info(3)   TYPE c,
          END OF alv_stb.
    DATA: BEGIN OF stb_orig.
            INCLUDE STRUCTURE stpox.
    DATA: END OF stb_orig.
    DATA: BEGIN OF stb_add.
            INCLUDE STRUCTURE stpol_add.
    DATA: END OF stb_add.
    Internal Table for STPO
    *-- BOM Line item
    TYPES: BEGIN OF ty_stpo,
           stlty TYPE stpo-stlty,
           stlnr TYPE stpo-stlnr,
           stlkn TYPE stpo-stlkn,
           stpoz TYPE stpo-stpoz,
           idnrk TYPE stpo-idnrk,
           meins TYPE stpo-meins,
           menge TYPE stpo-menge, "Component Qty
           END OF ty_stpo.
    DATA: t_stpo TYPE STANDARD TABLE OF ty_stpo WITH HEADER LINE.
    *-- BOM Header
    TYPES: BEGIN OF ty_stko,
           stlty TYPE stko-stlty,
           stlnr TYPE stko-stlnr,
           stlal TYPE stko-stlal,
           stkoz TYPE stko-stkoz,
           bmein TYPE stko-bmein,
           bmeng TYPE stko-bmeng,
           END OF ty_stko.
    DATA: t_stko TYPE STANDARD TABLE OF ty_stko WITH HEADER LINE .
    data : t_makt like makt occurs 0 with header line.
    DATA: BEGIN OF cl_clstab OCCURS 0,                          "YHG079407
             class LIKE klah-class,                             "YHG079407
             klart LIKE klah-klart,                             "YHG079407
             chked LIKE csdata-xfeld,                           "YHG079407
             noobj LIKE csdata-xfeld,                           "YHG079407
             dsply LIKE csdata-xfeld,                           "YHG079407
          END OF cl_clstab.
    *-- Header table
    TYPES: BEGIN OF ty_main_material,
           matnr TYPE mast-matnr, "Material
           werks TYPE mast-werks, "Plant
           maktx TYPE makt-maktx, "Description
           stlal TYPE mast-stlal, "Alternative BOM
           stlnr TYPE stko-stlnr, "BOM Number
           bmein TYPE stko-bmein, "UOM
           bmeng TYPE stko-bmeng, "Base Qty
           expand(1) TYPE c,      "Expanding Field
           END OF ty_main_material.
    DATA: t_main_material TYPE STANDARD TABLE OF ty_main_material WITH
          HEADER LINE.
    *-- Item (Component) Table
    TYPES: BEGIN OF ty_item_material,
           matnr TYPE mast-matnr, "Material
           werks TYPE mast-werks, "Plant
           idnrk TYPE stpo-idnrk, "Component (Material)
           maktx TYPE makt-maktx, "Description
           stlal TYPE mast-stlal, "Alternative BOM
           stlnr TYPE stpo-stlnr, "BOM Number
           meins TYPE stpo-meins, "UOM
           menge TYPE stpo-menge, "Base Qty
           END OF ty_item_material.
    DATA: t_item_material TYPE STANDARD TABLE OF ty_item_material WITH
          HEADER LINE.
    Selection Screen                                                     *
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: p_werks LIKE marc-werks DEFAULT '1000' OBLIGATORY.
    SELECT-OPTIONS s_stlal FOR mast-stlal .
    SELECT-OPTIONS s_stlan FOR mast-stlan DEFAULT '1'.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    SELECTION-SCREEN SKIP.
    PARAMETERS: p_bomlst RADIOBUTTON GROUP g1 DEFAULT 'X'.
    SELECT-OPTIONS s_matnr FOR mast-matnr.
    SELECTION-SCREEN SKIP.
    PARAMETERS: p_compon RADIOBUTTON GROUP g1.
    SELECT-OPTIONS: s_idnrk FOR stpo-idnrk.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN END OF BLOCK b1.
    selection-screen begin of block b03 with frame title text-b03.
    selection-screen begin of line.
    selection-screen comment 1(40) text-005.
    parameters: p_all radiobutton group r1 default 'X'.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen comment 1(40) text-006.
    parameters: p_one radiobutton group r1 .
    selection-screen end of line.
    selection-screen end of block b03.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
    PARAMETERS: p_vari LIKE disvariant-variant.
    SELECTION-SCREEN END OF BLOCK b3.
    At slection screen events                                            *
    *-- Process on value request
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
      PERFORM f4_for_variant.
    Intitialisation
    INITIALIZATION.
      g_repid = sy-repid.
      g_tabname_header = 'T_MAIN_MATERIAL'.
      g_tabname_item   = 'T_ITEM_MATERIAL'.
    *-- define keyinformation
      CLEAR gs_keyinfo.
      gs_keyinfo-header01 = 'MATNR'.
      gs_keyinfo-item01   = 'MATNR'.
      PERFORM e03_eventtab_build USING gt_events[].
      PERFORM e04_comment_build  USING gt_list_top_of_page[].
      PERFORM e07_sp_group_build USING gt_sp_group[].
      PERFORM e08_layout_build   USING gs_layout.
    Set Options: save variants userspecific or general
      g_save = 'A'.
      PERFORM variant_init.
    Get default variant
      gx_variant = g_variant.
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
           EXPORTING
                i_save     = g_save
           CHANGING
                cs_variant = gx_variant
           EXCEPTIONS
                not_found  = 2.
      IF sy-subrc = 0.
        p_vari = gx_variant-variant.
      ENDIF.
    S T A R T - O F - S E L E C T I O N *******************
    start-of-selection.
      if p_all = 'X'.
    Get the data from MAST and MAKT Table
        if p_bomlst = 'X'.
      Get the data Based On Material #
          perform get_data.
        else.
      Get the data Based On Component
          perform get_data_component.
        endif.
      else.
    Get the Single Level Report
    *-- Moved the fiedl catalog here inorder to change the layout based on
    *-- Selection
        PERFORM e01_fieldcat_init  USING gt_fieldcat[].
        PERFORM select_data.
      endif.
    E N D - O F - S  E  L  E  C  T  I  O  N *******************
    end-of-selection.
      if p_one = 'X'.
        perform alv.
      endif.
    User Command
    at line-selection.
    Interactive to CS03 Transaction
      case sy-ucomm.
        when 'PICK' or 'F2'.
          if not alv_stb-idnrk is initial .
            if not alv_stb-werks is initial.
              if not alv_stb-objty is initial.
                SET PARAMETER ID 'MAT' FIELD alv_stb-idnrk.
                SET PARAMETER ID 'WRK' FIELD alv_stb-werks.
                SET PARAMETER ID 'CSV' FIELD alv_stb-OBJTY.
                call transaction c_tcode and skip first screen.
              endif.
            endif.
          endif.
          clear alv_stb.
      endcase.
    *&      Form  get_data
          Get data from MAST and MAKT Table
    FORM get_data.
      data : wa_lines type sy-index.
      REFRESH : T_MAST,
                t_STB,
                t_MATCAT,
                alv_STB.
      CLEAR : T_MAST,
                t_STB,
                t_MATCAT,
                alv_STB.
    Get the data from MAST Table
    Get all the information from MAST - BOM Table
      SELECT * FROM mast INTO TABLE t_mast WHERE matnr IN s_matnr AND
                                                 werks = p_werks  AND
                                                 stlan IN s_stlan AND
                                                 stlal IN s_stlal.
      describe table t_mast lines  wa_lines.
      if wa_lines is initial.
        Write:/2 'List contains no data'.
        stop.
      endif.
      loop at t_mast.
        clear : v_maktx.
    Start of change  Seshu
    Reason - Remove the new page option
        if sy-tabix ne 1.
          skip 1.
        endif.
    End of Change  Seshu
    Get the material Description
        select single maktx from makt into  v_maktx
                                 where matnr = t_mast-matnr
                                 and   spras = 'E'.
    Get the material details from STKO Table
        select single * from stko into wa_stko
                        where STLTY = 'M'
                        and   STLNR = t_mast-stlnr
                        and   STLAL = t_mast-stlal.
    Main Header for Each Material
        format color 5 on.
        write:/2 'Material',20 'Material Description',65 'Alternative BOM',
             90 'Base Qty', 115 'Base Unit'.
        format color 5 off.
        format color 1 on.
        write:/2 t_mast-matnr,20 v_maktx,65 wa_stko-STLAL, 85 wa_stko-BMENG,
               115 wa_stko-BMEIN.
        format color 1 off.
    Use the Function Module and get the format level by level
        perform get_level_level.
      endloop.
    ENDFORM.                    " get_data
    Top of page                                                  *
    top-of-page.
      perform report_header .
    *&      Form  report_header
          text
    -->  p1        text
    <--  p2        text
    FORM report_header.
      new-page line-size 160 .
      format color col_heading intensified on.
      write:/ sy-uline(160) .
    *--- Write Company Name.
      perform calc_col_and_write using    text-h00
                                          sy-linsz.
    *--- Write Report Title.
      perform calc_col_and_write using    sy-title
                                          sy-linsz.
    *--- Write User Id, Date / Time, Program Id, Page etc.
      perform write_other_hdr_details.
      write:/ sy-uline(160) .
    ENDFORM.                    " report_header
    *&      Form  calc_col_and_write
          text
         -->P_TEXT_H00  text
         -->P_SY_LINSZ  text
    FORM calc_col_and_write USING    P_TEXT
                                     P_LINSZ.
      data: col1 type i,
             col2 type i,
              len  type i,
              str  type i.
      str  = strlen( p_text ).
      col1 = ( p_linsz / 2 ) - ( str / 2 ) .
      len  = p_linsz - col1 - 2.
      write: at  /1  '|'.
      write: at  col1 p_text,
             at  sy-colno(len) space.
      write  at  160 '|'.
    ENDFORM.                    " calc_col_and_write
    *&      Form  write_other_hdr_details
          text
    -->  p1        text
    <--  p2        text
    FORM write_other_hdr_details.
      data: col1 type i,
              col2 type i,
              len  type i.
      col1 = 3.
      write:/1 '|'.
      write: at  col1 'UserId  : ',
                      sy-uname.
      len = sy-linsz - 1.
      write at sy-colno(len) space.
      col2 = sy-linsz - 18.
      write: at col2 'Date: ',
                     sy-datum mm/dd/yyyy.
      write: at sy-linsz '|'.
      write:/1 '|'.
      write: at  col1 'ReportId: ',
                      sy-repid.
      write at sy-colno(len) space.
      col2 = sy-linsz - 18.
      write: at col2 'Page: ',
                      sy-pagno.
      write: at sy-linsz '|'.
    ENDFORM.                    " write_other_hdr_details
    *&      Form  get_data_component
          Get the data based on Component level
    FORM get_data_component.
      data wa_lines type i.
    *-- Get the BOM item details
      SELECT  stlty stlnr stlkn stpoz idnrk meins menge
              FROM stpo
              INTO TABLE t_stpo
      WHERE   idnrk IN s_idnrk.
      IF sy-subrc = 0.
        CLEAR wa_lines.
        DESCRIBE TABLE t_stpo LINES wa_lines.
        IF wa_lines > 0.
          SELECT  stlty stlnr stlal stkoz bmein bmeng
                  FROM stko
                  INTO TABLE t_stko
                  FOR ALL ENTRIES IN t_stpo
          WHERE stlnr = t_stpo-stlnr.
          CLEAR wa_lines.
          DELETE ADJACENT DUPLICATES FROM t_stko COMPARING ALL FIELDS.
          DESCRIBE TABLE t_stko LINES wa_lines.
          IF wa_lines > 0.
    *-- Get the BOM item details
            SELECT * FROM mast INTO TABLE t_mast FOR ALL ENTRIES IN t_stko
                                                WHERE werks = p_werks  AND
                                                  stlnr = t_stko-stlnr
                                                  and stlal in s_stlal.
          ENDIF.
        ENDIF.
      else.
        Write:/2 'List contains no data'.
        stop.
      endif.
      loop at t_mast.
        clear : v_maktx.
    Start of change  Seshu
    Reason - Remove the new page option
        if sy-tabix ne 1.
          skip 1.
        endif.
    End of change    Seshu
    Get the material Description
        select single maktx from makt into  v_maktx
                                 where matnr = t_mast-matnr
                                 and   spras = 'E'.
    Get the material details from STKO Table
        select single * from stko into wa_stko
                        where STLTY = 'M'
                        and   STLNR = t_mast-stlnr
                        and   STLAL = t_mast-stlal.
    Main Header for Each Material
        format color 5 on.
        write:/2 'Material',20 'Material Description',65 'Alternative BOM',
             90 'Base Qty', 115 'Base Unit'.
        format color 5 off.
        format color 1 on.
        write:/2 t_mast-matnr,20 v_maktx,65 wa_stko-STLAL, 85 wa_stko-BMENG,
               115 wa_stko-BMEIN.
        format color 1 off.
    Use the Function Module and get the format level by level
        perform get_level_level.
        clear : t_mast.
      endloop.
    ENDFORM.                    " get_data_component
    *&      Form  obj_ident
          text
    FORM obj_ident.
    weder Mat noch Doc
      CHECK: T_stb-objty NE otyp_mat,
             T_stb-objty NE ootyp_mat,
             T_stb-objty NE otyp_doc,
             T_stb-objty NE otyp_ntm.
    ?T418-WA schon ok
    nein
      IF T_stb-postp NE t418-postp.
        T418 einlesen
        PERFORM t418_lesen USING T_stb-postp.
      ENDIF.
      PERFORM cl_clstab_maint.
    ?MatNr-Eingabe bei diesem PosTyp moeglich
      und keine Textposition
    trifft zu
      IF     t418-matin NE '-'
         AND t418-txpos IS INITIAL.
        aktuelles Objekt ist Material NLAG
        T_stb-objty = '1'.
        PosKurztext in ObjKurztext uebernehmen.
        T_stb-ojtxp = T_stb-potx1.
        MODIFY T_stb.
      ELSE.
        IF T_stb-objty IS INITIAL.
          T_stb-objty = '2'.
          MODIFY T_stb.
        ENDIF.
      ENDIF.
    ENDFORM.                    " obj_ident
    *&      Form  t418_lesen
          text
         -->P_T_STB_POSTP  text
    FORM t418_lesen USING   lkl_postp LIKE stpo-postp.
    T418-WA initialisieren
      CLEAR:
         t418.
    Key angeben
      t418-postp = lkl_postp.
    PosTypDefinition lesen
      READ TABLE t418.
    ENDFORM.                    " t418_lesen
    *&      Form  cl_clstab_maint
          text
    FORM cl_clstab_maint.
    nur fuer Klassenpositionen
      CHECK t_STB-OBJTY EQ OTYP_KLA.
    Teilkey der Klassenpositionentabelle
      CL_CLSTAB-CLASS = t_STB-CLASS.
      CL_CLSTAB-KLART = t_STB-KLART.
    Klassenpositionentabelle lesen
      READ TABLE CL_CLSTAB
         WITH KEY CL_CLSTAB(21)
         BINARY SEARCH.
    aktuelle Klassenposition bereits in Klassenpositionentabelle
    nein
      IF SY-SUBRC <> 0.
        Klassenposition in Klassenpositionentabelle hinzufuegen
        INSERT CL_CLSTAB INDEX SY-TABIX.
      ENDIF.
    ENDFORM.                    " cl_clstab_maint
    *&      Form  alv_stb_prep
          Printing the data as LEVEL BY LEVEL
    FORM alv_stb_prep.
      CLEAR:
          alv_stb,
          stb_orig,
          stb_add.
      IF t_stb-hdnfo IS INITIAL.
        stb_orig = t_stb.
        IF t_stb-mngko >= max_num.
          stb_add-ovfls = ueberl_kz.
        ELSE.
          IF t_stb-mngko <= min_num.
            stb_add-ovfls = ueberl_kz.
          ELSE.
            CLEAR: stb_add-ovfls.
          ENDIF.
        ENDIF.
        IF NOT t_stb-xtlnr IS INITIAL.
          stb_add-bomfl = b_flag.
        ENDIF.
        IF    NOT t_stb-knobj IS INITIAL
           OR NOT t_stb-class IS INITIAL
           OR NOT t_stb-kzclb IS INITIAL.
          stb_add-knofl = 'X'.
        ENDIF.
      ELSE.
        CHECK t_stb-stufe > 1.
        alv_stb-info = 'C30'.
        IF t_stb-ttidx <> t_matcat-index.
          READ TABLE t_matcat INDEX t_stb-ttidx.
        ENDIF.
        stb_orig-hdnfo = t_stb-hdnfo.
        stb_orig-stufe = t_stb-stufe - 1 .
        stb_orig-ojtxp = t_stb-ojtxb.
        IF NOT t_stb-altst IS INITIAL.
          stb_orig-stlal = t_stb-stlal.
          IF stb_orig-stlal(1) EQ '0'.
            stb_orig-stlal(1) = ' '.
          ENDIF.
        ENDIF.
        stb_orig-idnrk = t_matcat-matnr.
      ENDIF.
      CLEAR:
        stb_add-dobjt,
        stb_add-objic.
      CASE t_stb-objty.
        WHEN otyp_mat.
          WRITE: stb_orig-idnrk TO ecfld.
          stb_add-objic = '@A6@'.
        WHEN 'M'.
          WRITE: stb_orig-idnrk TO ecfld.
          stb_add-objic = '@A6@'.
        WHEN otyp_noo.
          WRITE: stb_orig-potx1 TO ecfld.
          stb_add-objic = '@0Q@'.
        WHEN otyp_doc.
          write stb_orig-doknr to ecfld.                        "note 489354
          IF ecfld CP '*# '. ENDIF.                             "note 489354
          sy-fdpos = sy-fdpos + 1.                              "note 489354
          CONCATENATE
    *d      stb_orig-doknr                                      "note 489354
            stb_orig-dokar
            stb_orig-doktl
            stb_orig-dokvr
    *d      INTO ecfld                                          "note 489354
            INTO ecfld+sy-fdpos                                 "note 489354
            SEPARATED BY space.
          stb_add-objic = '@AR@'.
        WHEN otyp_kla.
          CONCATENATE
            stb_orig-class
            stb_orig-klart
            INTO ecfld
            SEPARATED BY space.
          stb_add-objic = '@7C@'.
        WHEN otyp_ntm.
          WRITE: stb_orig-intrm TO ecfld.
        WHEN OTHERS.
      ENDCASE.
    *d CONDENSE ecfld.                                          "note 515408
      stb_add-dobjt = ecfld(40).
      CLEAR: ecfld.
      WRITE stb_orig-stufe TO stb_add-dstuf NO-SIGN.
    *d  MOVE-CORRESPONDING stb_orig TO alv_stb.                 "note 331962
      MOVE-CORRESPONDING stb_add TO alv_stb.
      MOVE-CORRESPONDING stb_orig TO alv_stb.                   "note 331962
      APPEND alv_stb.
    ENDFORM.                    " alv_stb_prep
    *&      Form  get_level_level
          text
    FORM get_level_level.
      REFRESH : T_STB,
                T_MATCAT,
                ALV_STB.
      CLEAR : T_STB,
              T_MATCAT,
              ALV_STB.
      CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
           EXPORTING
                capid                 = 'PP01'
                datuv                 = sy-datum
                mktls                 = 'X'
                mehrs                 = 'X'
                mtnrv                 = t_mast-matnr
                stlal                 = '01'
                stlan                 = '1'
                stpst                 = 0
                svwvo                 = 'X'
                werks                 = p_werks
                vrsvo                 = 'X'
           TABLES
                stb                   = t_stb
                matcat                = t_matcat
           EXCEPTIONS
                alt_not_found         = 1
                call_invalid          = 2
                material_not_found    = 3
                missing_authorization = 4
                no_bom_found          = 5
                no_plant_data         = 6
                no_suitable_bom_found = 7
                conversion_error      = 8
                OTHERS                = 9.
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CLEAR: hd_tab.
            Entry der KlassenstatusTab. initialisieren
             cl_clstab,
            Entry 'Objekte von Klassen' initialisieren
             cl_objmemo.
      REFRESH: hd_tab.
      SORT t_matcat BY index ASCENDING.
    Get the All levels
      loop at t_stb.
        IF NOT t_stb-hdnfo IS INITIAL.
          EXIT.
        ENDIF.
    Object Identification
        PERFORM obj_ident.
        READ TABLE hd_tab
            WITH KEY stufe = t_stb-stufe
                     vwegx = t_stb-vwegx
            BINARY SEARCH
            TRANSPORTING NO FIELDS.
        ?gibt es diesen Satz schon
        nein
        IF sy-subrc <> 0.
           dann in SFP-Infosatzverweistab. aufnehmen
    *d       APPEND HD_TAB.                                       "HGH054648
          hd_tab-stufe = t_stb-stufe.
                                                                "HGH054648
          hd_tab-vwegx = t_stb-vwegx.
                                                                "HGH054648
          INSERT hd_tab                                         "HGH054648
            INTO hd_tab                                         "HGH054648
            INDEX sy-tabix.                                     "HGH054648
           PosNr initialisieren
          CLEAR: t_stb-posnr.
           SFP-InfosatzKz setzen
          t_stb-hdnfo = 'X'.
            stb-objty = otyp_mat.
                                                                "HGE246532
           als SFP-Infosatz in die STB aufnehmen
          append t_stb.
        ENDIF.
    *del  ENDIF.
        clear t_stb.
      endloop.
      SORT t_stb ASCENDING BY stufe
                  index ASCENDING
    *del        POSNR ASCENDING.                                  "HGC062735
                  posnr ASCENDING                               "HGC062735
                  hdnfo DESCENDING.
      LOOP AT t_stb.
        T_stb-index = sy-tabix.
        MODIFY T_stb.
        PERFORM alv_stb_prep.
      ENDLOOP.
    Displays the Value as Level by Level
      loop at ALV_stb.
        if sy-tabix = 1.
          format color 3 on.
          write:/2 'Level',12 'Item',22 'Component',
          42 'Material Description',82 'Base Qty',
          107 'Base Unit',120 'Assembly Indicator'.
          format color 3 on.
        endif.
        if alv_stb-MEINs is initial.
          v_flag = 'X'.
        endif.
        if v_flag = 'X'.
          format color 5 on.
          write:/2 ALV_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
                 42 alv_stb-OJTXP.
          format color 1 off.
        else.
          if alv_stb-STUFE = '1'.
            format color 1 on.
            write:/2 ALV_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
                   42 alv_stb-OJTXP,72 alv_stb-mngko,
                   107 alv_stb-MEINs, 120 alv_stb-bomfl .
            format color 1 off.
          elseif alv_stb-STUFE = '2'.
            format color 2 on.
            write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
                   42 alv_stb-OJTXP,72 alv_stb-mngko,
                   107 alv_stb-MEINs,120 alv_stb-bomfl.
            format color 2 off.
          elseif alv_stb-STUFE = '3'.
            format color 3 on.
            write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
                    42 alv_stb-OJTXP,72 alv_stb-mngko,
                    107 alv_stb-MEINs,120 alv_stb-bomfl .
            format color 3 off.
          elseif alv_stb-STUFE = '4'.
            format color 4 on.
            write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
                    42 alv_stb-OJTXP,72 alv_stb-mngko,
                    107 alv_stb-MEINs,120 alv_stb-bomfl .
            format color 4 off.
          elseif alv_stb-STUFE = '5'.
            format color 5 on.
            write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
                    42 alv_stb-OJTXP,72 alv_stb-mngko,
                    107 alv_stb-MEINs,120 alv_stb-bomfl .
            format color 5 off.
          elseif alv_stb-STUFE = '6'.
            format color 7 on.
            write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
                   42 alv_stb-OJTXP,72 alv_stb-mngko,
                   107 alv_stb-MEINs,120 alv_stb-bomfl.
            format color 6 off.
          elseif alv_stb-STUFE = '7'.
            format color 7 on.
            write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
                   42 alv_stb-OJTXP,72 alv_stb-mngko,
                   107 alv_stb-MEINs,120 alv_stb-bomfl .
            format color  7 off.
          else.
            format color 1 on.
            write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
                    42 alv_stb-OJTXP,72 alv_stb-mngko,
                    107 alv_stb-MEINs,120 alv_stb-bomfl .
            format color  1 off.
          endif.
        endif.
        hide: alv_stb.
        clear : alv_stb.
        clear v_flag.
      endloop.
    ENDFORM.                    " get_level_level
    *&      Form  f4_for_variant
          text
    FORM f4_for_variant.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
             EXPORTING
                  is_variant          = g_variant
                  i_save              = g_save
                  i_tabname_header    = g_tabname_header
                  i_tabname_item      = g_tabname_item
              it_default_fieldcat =
             IMPORTING
                  e_exit              = g_exit
                  es_variant          = gx_variant
             EXCEPTIONS
                  not_found = 2.
      IF sy-subrc = 2.
        MESSAGE ID sy-msgid TYPE 'S'      NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ELSE.
        IF g_exit = space.
          p_vari = gx_variant-variant.
        ENDIF.
      ENDIF.
    ENDFORM.                    " f4_for_variant
          FORM E03_EVENTTAB_BUILD                                       *
    -->  E03_LT_EVENTS                                                 *
    FORM e03_eventtab_build USING e03_lt_events TYPE slis_t_event.
      DATA: ls_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
           EXPORTING
                i_list_type = 0
           IMPORTING
                et_events   = e03_lt_events.
      READ TABLE e03_lt_events WITH KEY name = slis_ev_top_of_page
                               INTO ls_event.
      IF sy-subrc = 0.
        MOVE gc_formname_top_of_page TO ls_event-form.
        APPEND ls_event TO e03_lt_events.
      ENDIF.
    ENDFORM.
          FORM E04_COMMENT_BUILD                                        *
    -->  E04_LT_TOP_OF_PAGE                                            *
    FORM e04_comment_build USING e04_lt_top_of_page TYPE slis_t_listheader.
      DATA: ls_line TYPE slis_listheader.
    Listenüberschrift: Typ H
      CLEAR ls_line.
      ls_line-typ  = 'H'.
    LS_LINE-KEY:  not used for this type
      ls_line-info = text-001.
      APPEND ls_line TO e04_lt_top_of_page.
    Kopfinfo: Typ S
      CLEAR ls_line.
      ls_line-typ  = 'S'.
      ls_line-key  = text-050.
      ls_line-info = text-010.
      APPEND ls_line TO e04_lt_top_of_page.
      ls_line-key  = text-051.
      APPEND ls_line TO e04_lt_top_of_page.
    Aktionsinfo: Typ A
      CLEAR ls_line.
      ls_line-typ  = 'A'.
    LS_LINE-KEY:  not used for this type
      ls_line-info = text-002.
      APPEND ls_line TO  e04_lt_top_of_page.
    ENDFORM.
          FORM E07_SP_GROUP_BUILD                                       *
    -->  E07_LT_SP_GROUP                                               *
    FORM e07_sp_group_build USING e07_lt_sp_group TYPE slis_t_sp_group_alv.
      DATA: ls_sp_group TYPE slis_sp_group_alv.
      CLEAR  ls_sp_group.
      ls_sp_group-sp_group = 'A'.
      ls_sp_group-text     = text-005.
      APPEND ls_sp_group TO e07_lt_sp_group.
    ENDF

  • Multi page report with large master block

    I am doing a long multi page report with master - detail block.
    Master block is about 60-100 lines long in form format and detail block is 0 to 300 lines in table format.
    I would like to repeat a few columns from master block on all subsequent pages.
    The current solution I have done uses a logical page of 4x1, but in this way i can not repeat selected columns on subsequent pages.
    Is there another way to handle large master block that extends more than one page.
    PB

    You can try this. Create another frame within your master repeating frame and put items there which you want to display on next pages. And set the property of this frame as All Pages.

Maybe you are looking for

  • Thumbnails in List

    I'm currently making a playlist out of the component List and I want to add in thumbnails in there. The playlist shows the choice of videos that can be played. Does anyone know of any tutorials or how to do this? help please anyone?

  • Changing resolution of photos

    Hi I am a new user and hope someone can help with some information I would like to change the resolution of some digital photos to (640x480) by "downsampling" in IPhoto before importing to I Movie. Does anyone know how to do this and will this reduce

  • Purchase Order Requisition

    Hi Gurus,              I want to clarify that only for Third party Item Category BANS the Purchase Requisition is triggered and can a purchase order be triggered for a Make to Order or any other item Category. Regards, Sarosh

  • Adobe CS6, Acrobat

    Ich habe regelmäßig einen Absturz bei dr Anwendung von Adobe pro X. Die exe-Datei wird gelöscht oder ist nicht aufzufinden. Hatte Zuletzt eie Support-Sitzung bei der, mir geraten wurde, das Komplette Programm zu löschen und neu zu installieren. Hat f

  • No more drag and drop?

    I'm having problems dragging and dropping anything from my itunes library (podcasts and music specifically) onto my 1st gen ipod touch and my itunes playlists. Is anyone else having this problem? I can still add to itunes playlists by right clicking,