Financilal reports - Members display based on other Dimension members

Hi All,
Can we display the members in a dim based on selection of members in other dim.........these 2 dim's are not in row/Col.......
we hav scenario = actual,budget
If user selects Actual we need to display all members in time dim;
and if user selects budget we need to display limited members only;
How can we achieve it.
Thanks in advance
Anuradha

hi anuradha,
Conditional suppression works for restricting the members to be displayed in grid-row/grid-column/grid-page
One user POV selection can never be restricted based on selection on other userPOV.
In user POV, you will always see all the members from Scenario and time dimension, you have access to...
May be if you put your Scenario dimension to user POV and Time dimension to page then by using the conditional suppression you will be able to achieve the same.
Hope this helps.
Regards,
Rahul

Similar Messages

  • POP UP  inside a report: conditional query based on other col el. values

    HI to all,
    i've a really simple question: is there a way inside a pop up in a report, to refer to other columns value (of the same row)?
    I'm giving my example:
    i've a table called CNT_VAL_SEG_DEMO
    id
    des
    value
    value have to be a pop up LOV, query based:
    the pseudo sql code is this:
    SELECT DISTINCT VALUE V1 , VALUE V2 FROM CNT_VAL_SEG_DEMO WHERE
    des=<pseudo code>#DES#<pseudo code>.
    What should i use instead of #DES#
    Hope that is clear enough
    thanx a lot

    Hi,
    i think i've found the solution on htmldb studio.
    Doesn't matter.
    However for pointing who's reading
    to the right direction:
    http://htmldb.oracle.com/pls/otn/f?p=18326:54:3063779097888583::::P54_ID:1282
    Tips and tricks: Simulating a correlated sub report in Lov
    Thanx a lot
    Message was edited by:
    Marcello Nocito

  • How to suppress the report based on outer dimension in nested report

    Hi Experts,
    We have a report with nesting of two dimensions in rows. They are Program dimension and Account Dimension.
    We need to supress the report based on the program dimension members. i.e whenever there are no values against all the accounts for a particular program that particular program should get supressed.
    In the screenshot attached I am looking to supress the rows 37,38 and 39 as the data against this program is empty.
    However I dont want to supress the rows 31 and 33 as there is a capital data against this program in row number 32. So we have to supress the rows based on absence of data at program level.
    We are using SP14 on BPC 10.
    I remember that such functionality could be acheived in BPC 7.5 by flagging the required dimension to have suppress in Expansion Range. So I guess, similar functionality would be there in BPC 10 as well.
    I have evaluated the option of VBA macro to hide the required rows, but was wondering if we can achieve the same using EPM functionality as we used to do in BPC7.5.
    Thanks in advance for your suggestions!!
    Regards,
    Shiva

    Hi Shiva,
    First you have to check the option Keep Blocks:
    This option will show the whole block even if only one line contain some not zero/empty cells in the row.
    Second, when you select option Filter on All Columns/Rows you have to select OR as operator between columns:
    In this case the test for >0 (or for <0) will be applied to each column and the result will be OR'ed with other columns. True will be even if one column contains not zero and not empty cell.
    You logic to check individual column require to hardcode the members - not good!
    Vadim
    P.S. If you select AND for Filter on All Columns/Rows - then only lines with all cells with non zero / non empty will be shown as in your example!

  • Top 10 lowest level dimension members based on measure

    Hi,
    I'm trying to create a condition with JDeveloper to show the top 10 dimension members based on a measure for the lowest level of the hierarchy, but doesn't work.
    All other conditions are working well, including top 10 dimension members in other levels of the hierarchy (not in the lowest).
    Any suggestion??
    I think the dimension is defined ok, all other conditions are working well and the lowest level could be shown with other conditions and drills.
    Thanks in advanced....

    Hi,
    First, my BI Beans version is 9.0.3.5 and my database version is 9.2.0.2.1
    I will try to clarify my problem. I am trying to create a graph to show the top10 members of a dimension based on my measure. When I define this condition
    to show the top 10 members of a middle level (not de low level), it works fine, I mean, it shows the top 10 members of that level. But, when I define the condition
    to show the top 10 members of the low level, it displays me that there is no data to display (The data has an insufficient number of columns and rows).
    I have been testing this case, and I have seen that if I change the low level column (number type) of the dimension to a varchar type column, it works. This low level is
    the primary key of the dimension table, and it's referenced by a foreign key in the fact table.
    Which could be the problem?? Is it not possible to define a level of a dimension with a number column??
    I have a demo sample to see this problem (two simple dimensionS with three levels and a fact table). It's a bit large to post it complete, so I post here an extract of it.
    -- Dimension and fact tables
    CREATE TABLE PR_DIM_A (DIM_A_KEY NUMBER,
                   LOW_A_LEVEL_NAME VARCHAR2(50),
                   ALL_A_LEVEL_ID VARCHAR2(50), ALL_A_LEVEL_NAME VARCHAR2(50),
                   GROUP_A_LEVEL_ID VARCHAR2(50), GROUP_A_LEVEL_NAME VARCHAR2(50),
                   CONSTRAINT PK_DIM_A PRIMARY KEY (DIM_A_KEY));
    CREATE TABLE PR_DIM_B (DIM_B_KEY NUMBER,
                   LOW_B_LEVEL_NAME VARCHAR2(50),
                   ALL_B_LEVEL_ID VARCHAR2(50), ALL_B_LEVEL_NAME VARCHAR2(50),
                   GROUP_B_LEVEL_ID VARCHAR2(50), GROUP_B_LEVEL_NAME VARCHAR2(50),
                   CONSTRAINT PK_DIM_B PRIMARY KEY (DIM_B_KEY));
    CREATE TABLE PR_FACTS (FACT_KEY NUMBER, DIM_A_KEY NUMBER, DIM_B_KEY NUMBER,
                   MEASURE_1 NUMBER, MEASURE_2 NUMBER,
                   CONSTRAINT PK_FACTS PRIMARY KEY (FACT_KEY));
    ALTER TABLE PR_FACTS ADD CONSTRAINT FK_DIM_A FOREIGN KEY (DIM_A_KEY)
                   REFERENCES PR_DIM_A (DIM_A_KEY);
    ALTER TABLE PR_FACTS ADD CONSTRAINT FK_DIM_B FOREIGN KEY (DIM_B_KEY)
                   REFERENCES PR_DIM_B (DIM_B_KEY);
    -- Data inserts in the dimensions
    INSERT INTO PR_DIM_A VALUES (1,'ALL','ALL_NAMEa','GROUP1a','GROUP1_NAMEa','LOW1a','LOW_NAME1a');
    INSERT INTO PR_DIM_A VALUES (2,'ALL','ALL_NAMEa','GROUP1a','GROUP1_NAMEa','LOW2a','LOW_NAME2a');
    -- ......... dimension B is the same kind of data.
    -- OLAP dimension A creation script
    cwm2_olap_dimension.create_dimension('BI02', 'PR_A_DIM', 'DimA Diaplay name', 'DimA Plural name', 'DimA Short Description','DimA Description');
    cwm2_olap_dimension_attribute.create_dimension_attribute('BI02', 'PR_A_DIM', 'Short Description', 'Short Descriptions', 'Short Desc', 'Description', TRUE);
    cwm2_olap_hierarchy.create_hierarchy('BI02', 'PR_A_DIM', 'HIER_DIM_A', 'HIER_DIM_A Display name', 'HIER_DIM_A ShortDesc', 'HIER_DIM_A Desc','Unsolved Level-Based');
    cwm2_olap_dimension.set_default_display_hierarchy( 'BI02', 'PR_A_DIM', 'HIER_DIM_A' );
    cwm2_olap_level.create_level('BI02', 'PR_A_DIM', 'ALL_LEVEL_A', 'ALL_LEVEL_A DisplayName', 'ALL_LEVEL_A PluralName', 'ALL_LEVEL_A ShortDesc', 'ALL_LEVEL_A Desc');
    cwm2_olap_level.create_level('BI02', 'PR_A_DIM', 'GROUP_LEVEL_A', 'GROUP_LEVEL_A DisplayName', 'GROUP_LEVEL_A PluralName', 'GROUP_LEVEL_A ShortDesc', 'GROUP_LEVEL_A Desc' );
    cwm2_olap_level.create_level('BI02', 'PR_A_DIM', 'LOW_LEVEL_A', 'LOW_LEVEL_A DisplayName', 'LOW_LEVEL_A PluralName', 'LOW_LEVEL_A ShortDesc', 'LOW_LEVEL_A Desc' );
    cwm2_olap_level_attribute.create_level_attribute('BI02', 'PR_A_DIM', 'Short Description', 'ALL_LEVEL_A', 'Short Description', 'All_LEVEL_A DisplayName', 'ALL_LEVEL_A ShortDesc', 'ALL_LABEL Desc', TRUE );
    cwm2_olap_level_attribute.create_level_attribute('BI02', 'PR_A_DIM', 'Short Description', 'GROUP_LEVEL_A', 'Short Description', 'GROUP_LEVEL_A DisplayName', 'GROUP_LEVEL_A ShortDesc', 'GROUP_LEVEL_A Desc', TRUE );
    cwm2_olap_level_attribute.create_level_attribute('BI02', 'PR_A_DIM', 'Short Description', 'LOW_LEVEL_A', 'Short Description', 'LOW_LEVEL_A DisplayName', 'LOW_LEVEL_A ShortDesc', 'LOW_LEVEL_A Desc', TRUE );
    cwm2_olap_level.add_level_to_hierarchy('BI02', 'PR_A_DIM', 'HIER_DIM_A', 'LOW_LEVEL_A', 'GROUP_LEVEL_A' );
    cwm2_olap_level.add_level_to_hierarchy('BI02', 'PR_A_DIM', 'HIER_DIM_A', 'GROUP_LEVEL_A', 'ALL_LEVEL_A' );
    cwm2_olap_level.add_level_to_hierarchy('BI02', 'PR_A_DIM', 'HIER_DIM_A', 'ALL_LEVEL_A' );
    cwm2_olap_table_map.map_dimtbl_hierlevel('BI02', 'PR_A_DIM', 'HIER_DIM_A', 'ALL_LEVEL_A', 'BI02', dim_table, 'ALL_A_LEVEL_ID' );
    cwm2_olap_table_map.map_dimtbl_hierlevel('BI02', 'PR_A_DIM', 'HIER_DIM_A', 'GROUP_LEVEL_A', 'BI02', dim_table, 'GROUP_A_LEVEL_ID' );
    cwm2_olap_table_map.map_dimtbl_hierlevel('BI02', 'PR_A_DIM', 'HIER_DIM_A', 'LOW_LEVEL_A', 'BI02', dim_table, 'DIM_A_KEY' );
    cwm2_olap_table_map.map_dimtbl_hierlevelattr('BI02', 'PR_A_DIM', 'Short Description', 'HIER_DIM_A', 'ALL_LEVEL_A', 'Short Description', 'BI02', dim_table, 'ALL_A_LEVEL_NAME' );
    cwm2_olap_table_map.map_dimtbl_hierlevelattr('BI02', 'PR_A_DIM', 'Short Description', 'HIER_DIM_A', 'GROUP_LEVEL_A', 'Short Description', 'BI02', dim_table, 'GROUP_A_LEVEL_NAME' );
    cwm2_olap_table_map.map_dimtbl_hierlevelattr('BI02', 'PR_A_DIM', 'Short Description', 'HIER_DIM_A', 'LOW_LEVEL_A', 'Short Description', 'BI02', dim_table, 'LOW_A_LEVEL_NAME' );
    -- OLAP dimension B creation script is similar than A.
    -- OLAP CUBE creation script
    cwm2_olap_cube.create_cube( 'BI02', 'PR_CUBE', 'Sample Cube', 'Sample Cube', 'Sample Cube' );
    cwm2_olap_measure.create_measure('BI02', 'PR_CUBE', 'MEAS1', 'MES1 DisplayName', 'MES1 ShortDesc', 'MES1 Desc');
    cwm2_olap_measure.create_measure('BI02', 'PR_CUBE', 'MEAS2', 'MES2 DisplayName', 'MES2 ShortDesc', 'MES2 Desc');
    cwm2_olap_cube.add_dimension_to_cube( 'BI02', 'PR_CUBE', 'BI02', 'PR_A_DIM' );
    cwm2_olap_cube.add_dimension_to_cube( 'BI02', 'PR_CUBE', 'BI02', 'PR_B_DIM' );
    dimkeymap :=
         'DIM:'
    || 'BI02'
    || '.PR_A_DIM/HIER:HIER_DIM_A/LVL:LOW_LEVEL_A/COL:DIM_A_KEY;DIM:'
    || 'BI02'
    || '.PR_B_DIM/HIER:HIER_DIM_B/LVL:LOW_LEVEL_B/COL:DIM_B_KEY;';
    cwm2_olap_table_map.map_facttbl_levelkey( 'BI02', 'PR_CUBE', 'BI02', fact_t, /*'ET'*/ 'LOWESTLEVEL', dimkeymap );
    cwm2_olap_table_map.map_facttbl_measure( 'BI02', 'PR_CUBE', 'MEAS1', 'BI02', fact_t, 'MEASURE_1', dimkeymap );
    cwm2_olap_table_map.map_facttbl_measure( 'BI02', 'PR_CUBE', 'MEAS2', 'BI02', fact_t, 'MEASURE_2', dimkeymap );
    Thanks a lot for your help....

  • Display aggregate total for multiple members of a dimension.

    When multiple members of a dimension are selected in a row or column in Financial Reporting tool, it tends to display the result in multiple rows or columns. Is it possible to display the aggregate value of all the members and not display the individual details. I have tried the Auto Calculation which shows the "Total" but also shows the Individual members that were selected in multiple rows or columns. Any suggestions would be great.
    Ajay.

    Brian, I will post all my future questions in the Reporting Forum as you suggested. Coming back to my question, I do not want to display all the Individual members that I had selected in the report. I only need the aggregate value (Custom Totals) of all the Dimension members together.
    eg: If I choose the following account members in one row (Salaries, Bonus, Advertising), I do not want to display the individual line items for the three members, I only need one row called "Expenses" that has the aggregate value for the three members. Essbase by default (even if I don't select "place selections in separate columns" ) will put the members in separate rows or columns.
    Thanks.

  • I Need Interactive Report for displaying vendor information. Based on the s

    Interactive Report for displaying vendor information. Based on the selection made by the corresponding Vendor Bank Details are listed such that the line selected in the basic list was visible along with the secondary list.

    hi
    Hi
    Use the Table LFA1 and LFB1 in the basic list
    and LFBK table details in the secondary list
    see the sample code related to customer Sales orders
    modify it with the Vendor tables
    REPORT ZTEJ_INTAB1 LINE-SIZE 103 LINE-COUNT 35(5) NO STANDARD PAGE
    HEADING.
    *TABLES DECLARATION
    TABLES : KNA1, VBAK, VBAP.
    *SELECT OPTIONS
    SELECT-OPTIONS: CUST_NO FOR KNA1-KUNNR.
    *INITIALIZATION
    INITIALIZATION.
    CUST_NO-LOW = '01'.
    CUST_NO-HIGH = '5000'.
    CUST_NO-SIGN = 'I'.
    CUST_NO-OPTION = 'BT'.
    APPEND CUST_NO.
    *SELECTION SCREEN VALIDATION
    AT SELECTION-SCREEN ON CUST_NO.
    LOOP AT SCREEN.
    IF CUST_NO-LOW < 1 OR CUST_NO-HIGH > 5000.
    MESSAGE E001(ZTJ1).
    ENDIF.
    ENDLOOP.
    *BASIC LIST SELECTION
    START-OF-SELECTION.
    SELECT KUNNR NAME1 ORT01 LAND1 INTO
    (KNA1-KUNNR, KNA1-NAME1,KNA1-ORT01,KNA1-LAND1)
    FROM KNA1
    WHERE KUNNR IN CUST_NO.
    WRITE:/1 SY-VLINE,
    KNA1-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
    16 SY-VLINE,
    KNA1-NAME1 UNDER 'NAME',
    61 SY-VLINE,
    KNA1-ORT01 UNDER 'CITY',
    86 SY-VLINE,
    KNA1-LAND1 UNDER 'COUNTRY',
    103 SY-VLINE.
    HIDE: KNA1-KUNNR.
    ENDSELECT.
    ULINE.
    *SECONDARY LIST ACCESS
    AT user-command.
    IF SY-UCOMM = 'IONE'.
    PERFORM SALES_ORD.
    ENDIF.
    IF SY-UCOMM = 'ITWO'.
    PERFORM ITEM_DET.
    ENDIF.
    *TOP OF PAGE
    TOP-OF-PAGE.
    FORMAT COLOR 1.
    WRITE : 'CUSTOMER DETAILS'.
    FORMAT COLOR 1 OFF.
    ULINE.
    FORMAT COLOR 3.
    WRITE : 1 SY-VLINE,
    3 'CUSTOMER NO.',
    16 SY-VLINE,
    18 'NAME',
    61 SY-VLINE,
    63 'CITY',
    86 SY-VLINE,
    88 'COUNTRY',
    103 SY-VLINE.
    ULINE.
    FORMAT COLOR 3 OFF.
    *TOP OF PAGE FOR SECONDARY LISTS
    TOP-OF-PAGE DURING LINE-SELECTION.
    *TOP OF PAGE FOR 1ST SECONDARY LIST
    IF SY-UCOMM = 'IONE'.
    ULINE.
    FORMAT COLOR 1.
    WRITE : 'SALES ORDER DETAILS'.
    ULINE.
    FORMAT COLOR 1 OFF.
    FORMAT COLOR 3.
    WRITE : 1 SY-VLINE,
    3 'CUSTOMER NO.',
    16 SY-VLINE,
    18 'SALES ORDER NO.',
    40 SY-VLINE,
    42 'DATE',
    60 SY-VLINE,
    62 'CREATOR',
    85 SY-VLINE,
    87 'DOC DATE',
    103 SY-VLINE.
    ULINE.
    ENDIF.
    FORMAT COLOR 3 OFF.
    *TOP OF PAGE FOR 2ND SECONDARY LIST
    IF SY-UCOMM = 'ITWO'.
    ULINE.
    FORMAT COLOR 1.
    WRITE : 'ITEM DETAILS'.
    ULINE.
    FORMAT COLOR 1 OFF.
    FORMAT COLOR 3.
    WRITE : 1 SY-VLINE,
    3 'SALES ORDER NO.',
    40 SY-VLINE,
    42 'SALES ITEM NO.',
    60 SY-VLINE,
    62 'ORDER QUANTITY',
    103 SY-VLINE.
    ULINE.
    ENDIF.
    FORMAT COLOR 3 OFF.
    *END OF PAGE
    END-OF-PAGE.
    ULINE.
    WRITE :'USER :',SY-UNAME,/,'DATE :', SY-DATUM, 85 'END OF PAGE:',
    SY-PAGNO.
    SKIP.
    *& Form SALES_ORD
    *& FIRST SECONDARY LIST FORM
    FORM SALES_ORD .
    SELECT KUNNR VBELN ERDAT ERNAM AUDAT INTO
    (VBAK-KUNNR, VBAK-VBELN, VBAK-ERDAT, VBAK-ERNAM, VBAK-AUDAT)
    FROM VBAK
    WHERE KUNNR = KNA1-KUNNR.
    WRITE:/1 SY-VLINE,
    VBAK-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
    16 SY-VLINE,
    VBAK-VBELN UNDER 'SALES ORDER NO.' HOTSPOT ON,
    40 SY-VLINE,
    VBAK-ERDAT UNDER 'DATE',
    60 SY-VLINE,
    VBAK-ERNAM UNDER 'CREATOR',
    85 SY-VLINE,
    VBAK-AUDAT UNDER 'DOC DATE',
    103 SY-VLINE.
    HIDE : VBAK-VBELN.
    ENDSELECT.
    ULINE.
    ENDFORM. " SALES_ORD
    *& Form ITEM_DET
    *& SECOND SECONDARY LIST FORM
    FORM ITEM_DET .
    SELECT VBELN POSNR KWMENG INTO
    (VBAP-VBELN, VBAP-POSNR, VBAP-KWMENG)
    FROM VBAP
    WHERE VBELN = VBAK-VBELN.
    WRITE : /1 SY-VLINE,
    VBAP-VBELN UNDER 'SALES ORDER NO.',
    40 SY-VLINE,
    VBAP-POSNR UNDER 'SALES ITEM NO.',
    60 SY-VLINE,
    VBAP-KWMENG UNDER 'ORDER QUANTITY',
    103 SY-VLINE.
    ENDSELECT.
    ULINE.
    ENDFORM. " ITEM_DET
    REPORT demo_list_at_pf.
    START-OF-SELECTION.
    WRITE 'Basic List, Press PF5, PF6, PF7, or PF8'.
    AT pf5.
    PERFORM out.
    AT pf6.
    PERFORM out.
    AT pf7.
    PERFORM out.
    AT pf8.
    PERFORM out.
    FORM out.
    WRITE: 'Secondary List by PF-Key Selection',
    / 'SY-LSIND =', sy-lsind,
    / 'SY-UCOMM =', sy-ucomm.
    ENDFORM.
    After executing the program, the system displays the basic list. The user can press the function keys F5 , F6 , F7 , and F8 to create secondary lists. If, for example, the 14th key the user presses is F6 , the output on the displayed secondary list looks as follows:
    Secondary List by PF-Key Selection
    SY-LSIND = 14
    SY-UCOMM = PF06
    Example for AT USER-COMMAND.
    REPORT demo_list_at_user_command NO STANDARD PAGE HEADING.
    START-OF-SELECTION.
    WRITE: 'Basic List',
    / 'SY-LSIND:', sy-lsind.
    TOP-OF-PAGE.
    WRITE 'Top-of-Page'.
    ULINE.
    TOP-OF-PAGE DURING LINE-SELECTION.
    CASE sy-pfkey.
    WHEN 'TEST'.
    WRITE 'Self-defined GUI for Function Codes'.
    ULINE.
    ENDCASE.
    AT LINE-SELECTION.
    SET PF-STATUS 'TEST' EXCLUDING 'PICK'.
    PERFORM out.
    sy-lsind = sy-lsind - 1.
    AT USER-COMMAND.
    CASE sy-ucomm.
    WHEN 'FC1'.
    PERFORM out.
    WRITE / 'Button FUN 1 was pressed'.
    WHEN 'FC2'.
    PERFORM out.
    WRITE / 'Button FUN 2 was pressed'.
    WHEN 'FC3'.
    PERFORM out.
    WRITE / 'Button FUN 3 was pressed'.
    WHEN 'FC4'.
    PERFORM out.
    WRITE / 'Button FUN 4 was pressed'.
    WHEN 'FC5'.
    PERFORM out.
    WRITE / 'Button FUN 5 was pressed'.
    ENDCASE.
    sy-lsind = sy-lsind - 1.
    FORM out.
    WRITE: 'Secondary List',
    / 'SY-LSIND:', sy-lsind,
    / 'SY-PFKEY:', sy-pfkey.
    ENDFORM.
    <b>Vendor performance report</b>
    See this sample code
    *"Table declarations...................................................
    TABLES:
    EKKO, " Purchasing Document Header
    CDHDR, " Change document header
    SSCRFIELDS. " Fields on selection screens
    *"Selection screen elements............................................
    SELECT-OPTIONS:
    S_EBELN FOR EKKO-EBELN, " Purchasing Document Number
    S_LIFNR FOR EKKO-LIFNR, " Vendor's account number
    S_EKGRP FOR EKKO-EKGRP, " Purchasing group
    S_BEDAT FOR EKKO-BEDAT, " Purchasing Document Date
    S_UDATE FOR CDHDR-UDATE. " Creation date of the change
    " document
    *" Data declarations...................................................
    Field String to hold Purchase Document Number *
    DATA:
    BEGIN OF FS_EBELN,
    EBELN(90) TYPE C, " Purchase Document Number
    ERNAM TYPE EKKO-ERNAM, " Name of Person who Created
    " the Object
    LIFNR TYPE EKKO-LIFNR, " Vendor's account number
    EKGRP TYPE EKKO-EKGRP, " Purchasing group
    BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date
    END OF FS_EBELN,
    Field String to hold Purchase Document Header *
    BEGIN OF FS_EKKO,
    EBELN TYPE EKKO-EBELN, " Purchasing Document Number
    ERNAM TYPE EKKO-ERNAM, " Name of Person who Created the
    " Object
    LIFNR TYPE EKKO-LIFNR, " Vendor's account number
    EKGRP TYPE EKKO-EKGRP, " Purchasing group
    BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date
    END OF FS_EKKO,
    Field String to hold Account Number and name of the Vendor *
    BEGIN OF FS_LFA1,
    LIFNR TYPE LFA1-LIFNR, " Account Number of Vendor
    NAME1 TYPE LFA1-NAME1, " Name1
    END OF FS_LFA1,
    Field String to hold Change date and the name of the user *
    BEGIN OF FS_CDHDR,
    OBJECTCLAS TYPE CDHDR-OBJECTCLAS, " Object Class
    OBJECTID TYPE CDHDR-OBJECTID, " Object value
    CHANGENR TYPE CDHDR-CHANGENR, " Document change number
    USERNAME TYPE CDHDR-USERNAME, " User name
    UDATE TYPE CDHDR-UDATE, " Creation date of the change
    " document
    END OF FS_CDHDR,
    Field String to hold Change document items *
    BEGIN OF FS_CDPOS,
    OBJECTCLAS TYPE CDPOS-OBJECTCLAS," Object class
    OBJECTID(10) TYPE C, " Object Value
    CHANGENR TYPE CDPOS-CHANGENR, " Document change number
    TABNAME TYPE CDPOS-TABNAME, " Table Name
    FNAME TYPE CDPOS-FNAME, " Field Name
    VALUE_NEW TYPE CDPOS-VALUE_NEW, " New contents of changed field
    VALUE_OLD TYPE CDPOS-VALUE_OLD, " Old contents of changed field
    END OF FS_CDPOS,
    Field String to hold Date Element Name *
    BEGIN OF FS_DATAELE,
    TABNAME TYPE DD03L-TABNAME, " Table Name
    FIELDNAME TYPE DD03L-FIELDNAME, " Field Name
    ROLLNAME TYPE DD03L-ROLLNAME, " Data element (semantic domain)
    END OF FS_DATAELE,
    Field String to hold Short Text of the Date Element *
    BEGIN OF FS_TEXT,
    ROLLNAME TYPE DD04T-ROLLNAME, " Data element (semantic domain)
    DDTEXT TYPE DD04T-DDTEXT, " Short Text Describing R/3
    " Repository Objects
    END OF FS_TEXT,
    Field String to hold data to be displayed on the ALV grid *
    BEGIN OF FS_OUTTAB,
    EBELN TYPE EKKO-EBELN, " Purchasing Document Number
    ERNAM TYPE EKKO-ERNAM, " Name of Person who Created the
    " Object
    LIFNR TYPE EKKO-LIFNR, " Vendor's account number
    EKGRP TYPE EKKO-EKGRP, " Purchasing group
    BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date
    WERKS TYPE LFA1-WERKS, " Plant
    NAME1 TYPE LFA1-NAME1, " Name1
    USERNAME TYPE CDHDR-USERNAME, " User name
    UDATE TYPE CDHDR-UDATE, " Creation date of the change
    " document
    DDTEXT TYPE DD04T-DDTEXT, " Short Text Describing R/3
    " Repository Objects
    VALUE_NEW TYPE CDPOS-VALUE_NEW, " New contents of changed field
    VALUE_OLD TYPE CDPOS-VALUE_OLD, " Old contents of changed field
    END OF FS_OUTTAB,
    Internal table to hold Purchase Document Number *
    T_EBELN LIKE STANDARD TABLE
    OF FS_EBELN,
    Internal table to hold Purchase Document Header *
    T_EKKO LIKE STANDARD TABLE
    OF FS_EKKO,
    Temp Internal table to hold Purchase Document Header *
    T_EKKO_TEMP LIKE STANDARD TABLE
    OF FS_EKKO,
    Internal table to hold Account number and Name of the Vendor *
    T_LFA1 LIKE STANDARD TABLE
    OF FS_LFA1,
    Internal Table to hold Change date and the name of the user *
    T_CDHDR LIKE STANDARD TABLE
    OF FS_CDHDR,
    Internal Table to hold Change document items *
    T_CDPOS LIKE STANDARD TABLE
    OF FS_CDPOS,
    Temp. Internal Table to hold Change document items *
    T_CDPOS_TEMP LIKE STANDARD TABLE
    OF FS_CDPOS,
    Internal Table to hold Data Element Name *
    T_DATAELE LIKE STANDARD TABLE
    OF FS_DATAELE,
    Temp. Internal Table to hold Data Element Name *
    T_DATAELE_TEMP LIKE STANDARD TABLE
    OF FS_DATAELE,
    Internal Table to hold Short Text of the Date Element *
    T_TEXT LIKE STANDARD TABLE
    OF FS_TEXT,
    Internal Table to hold data to be displayed on the ALV grid *
    T_OUTTAB LIKE STANDARD TABLE
    OF FS_OUTTAB.
    C L A S S D E F I N I T I O N *
    CLASS LCL_EVENT_HANDLER DEFINITION DEFERRED.
    *" Data declarations...................................................
    Work variables *
    DATA:
    W_EBELN TYPE EKKO-EBELN, " Purchasing Document Number
    W_LIFNR TYPE EKKO-LIFNR, " Vendor's account number
    W_EKGRP TYPE EKKO-EKGRP, " Purchasing group
    W_VALUE TYPE EKKO-EBELN, " Reflected Value
    W_SPACE VALUE ' ', " Space
    W_FLAG TYPE I, " Flag Variable
    W_VARIANT TYPE DISVARIANT, " Variant
    *--- ALV Grid
    W_GRID TYPE REF TO CL_GUI_ALV_GRID,
    *--- Event Handler
    W_EVENT_CLICK TYPE REF TO LCL_EVENT_HANDLER,
    *--- Field catalog table
    T_FIELDCAT TYPE LVC_T_FCAT.
    AT SELECTION-SCREEN EVENT *
    AT SELECTION-SCREEN ON S_EBELN.
    Subroutine to validate Purchase Document Number.
    PERFORM VALIDATE_PD_NUM.
    AT SELECTION-SCREEN ON S_LIFNR.
    Subroutine to validate Vendor Number.
    PERFORM VALIDATE_VEN_NUM.
    AT SELECTION-SCREEN ON S_EKGRP.
    Subroutine to validate Purchase Group.
    PERFORM VALIDATE_PUR_GRP.
    START-OF-SELECTION EVENT *
    START-OF-SELECTION.
    Subroutine to select all Purchase orders.
    PERFORM SELECT_PO.
    CHECK W_FLAG EQ 0.
    Subroutine to select Object values.
    PERFORM SELECT_OBJ_ID.
    CHECK W_FLAG EQ 0.
    Subroutine to select Changed values.
    PERFORM SELECT_CHANGED_VALUE.
    CHECK W_FLAG EQ 0.
    Subroutine to Select Purchase Orders.
    PERFORM SELECT_PUR_DOC.
    Subroutine to select Vendor Details.
    PERFORM SELECT_VENDOR.
    Subroutine to select Text for the Changed values.
    PERFORM DESCRIPTION.
    END-OF-SELECTION EVENT *
    END-OF-SELECTION.
    IF NOT T_EKKO IS INITIAL.
    Subroutine to populate the Output Table.
    PERFORM FILL_OUTTAB.
    Subroutine to build Field Catalog.
    PERFORM PREPARE_FIELD_CATALOG CHANGING T_FIELDCAT.
    CALL SCREEN 100.
    ENDIF. " IF NOT T_EKKO...
    CLASS LCL_EVENT_HANDLER DEFINITION
    Defining Class which handles events
    CLASS LCL_EVENT_HANDLER DEFINITION .
    PUBLIC SECTION .
    METHODS:
    HANDLE_HOTSPOT_CLICK
    FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID
    IMPORTING E_ROW_ID E_COLUMN_ID.
    ENDCLASS. " LCL_EVENT_HANDLER DEFINITION
    CLASS LCL_EVENT_HANDLER IMPLEMENTATION
    Implementing the Class which can handle events
    CLASS LCL_EVENT_HANDLER IMPLEMENTATION .
    *---Handle Double Click
    METHOD HANDLE_HOTSPOT_CLICK .
    Subroutine to get the HotSpot Cell information.
    PERFORM GET_CELL_INFO.
    SET PARAMETER ID 'BES' FIELD W_VALUE.
    CALL TRANSACTION 'ME23N'.
    ENDMETHOD. " HANDLE_HOTSPOT_CLICK
    ENDCLASS. " LCL_EVENT_HANDLER
    *& Module STATUS_0100 OUTPUT
    PBO Event
    MODULE STATUS_0100 OUTPUT.
    SET PF-STATUS 'OOPS'.
    SET TITLEBAR 'TIT'.
    Subroutine to fill the Variant Structure
    PERFORM FILL_VARIANT.
    IF W_GRID IS INITIAL.
    CREATE OBJECT W_GRID
    EXPORTING
    I_SHELLSTYLE = 0
    I_LIFETIME =
    I_PARENT = CL_GUI_CONTAINER=>SCREEN0
    I_APPL_EVENTS =
    I_PARENTDBG =
    I_APPLOGPARENT =
    I_GRAPHICSPARENT =
    I_NAME =
    I_FCAT_COMPLETE = SPACE
    EXCEPTIONS
    ERROR_CNTL_CREATE = 1
    ERROR_CNTL_INIT = 2
    ERROR_CNTL_LINK = 3
    ERROR_DP_CREATE = 4
    OTHERS = 5.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF. " IF SY-SUBRC <> 0
    CALL METHOD W_GRID->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
    I_BUFFER_ACTIVE =
    I_BYPASSING_BUFFER =
    I_CONSISTENCY_CHECK =
    I_STRUCTURE_NAME =
    IS_VARIANT = W_VARIANT
    I_SAVE = 'A'
    I_DEFAULT = 'X'
    IS_LAYOUT =
    IS_PRINT =
    IT_SPECIAL_GROUPS =
    IT_TOOLBAR_EXCLUDING =
    IT_HYPERLINK =
    IT_ALV_GRAPHICS =
    IT_EXCEPT_QINFO =
    IR_SALV_ADAPTER =
    CHANGING
    IT_OUTTAB = T_OUTTAB
    IT_FIELDCATALOG = T_FIELDCAT
    IT_SORT =
    IT_FILTER =
    EXCEPTIONS
    INVALID_PARAMETER_COMBINATION = 1
    PROGRAM_ERROR = 2
    TOO_MANY_LINES = 3
    OTHERS = 4
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF. " IF SY-SUBRC <> 0.
    ENDIF. " IF W_GRID IS INITIAL
    CREATE OBJECT W_EVENT_CLICK.
    SET HANDLER W_EVENT_CLICK->HANDLE_HOTSPOT_CLICK FOR W_GRID.
    ENDMODULE. " STATUS_0100 OUTPUT
    *& Module USER_COMMAND_0100 INPUT
    PAI Event
    MODULE USER_COMMAND_0100 INPUT.
    CASE SY-UCOMM.
    WHEN 'BACK'.
    LEAVE TO SCREEN 0.
    WHEN 'EXIT'.
    LEAVE PROGRAM.
    WHEN 'CANCEL'.
    LEAVE TO SCREEN 0.
    ENDCASE.
    ENDMODULE. " USER_COMMAND_0100 INPUT
    *& Form PREPARE_FIELD_CATALOG
    Subroutine to build the Field catalog
    <--P_T_FIELDCAT Field Catalog Table
    FORM PREPARE_FIELD_CATALOG CHANGING PT_FIELDCAT TYPE LVC_T_FCAT .
    DATA LS_FCAT TYPE LVC_S_FCAT.
    Purchasing group...
    LS_FCAT-FIELDNAME = 'EKGRP'.
    LS_FCAT-REF_TABLE = 'EKKO'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '10'.
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    Purchasing Document Number...
    LS_FCAT-FIELDNAME = 'EBELN'.
    LS_FCAT-REF_TABLE = 'EKKO' .
    LS_FCAT-EMPHASIZE = 'C411'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '10'.
    LS_FCAT-HOTSPOT = 'X'.
    APPEND LS_FCAT TO PT_FIELDCAT .
    CLEAR LS_FCAT .
    Name of Person who Created the Object...
    LS_FCAT-FIELDNAME = 'ERNAM'.
    LS_FCAT-REF_TABLE = 'EKKO'.
    LS_FCAT-OUTPUTLEN = '15' .
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    Purchasing Document Date...
    LS_FCAT-FIELDNAME = 'BEDAT'.
    LS_FCAT-REF_TABLE = 'EKKO'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '10'.
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    Vendor's account number...
    LS_FCAT-FIELDNAME = 'LIFNR'.
    LS_FCAT-REF_TABLE = 'EKKO'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '10'.
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    Account Number of Vendor or Creditor...
    LS_FCAT-FIELDNAME = 'NAME1'.
    LS_FCAT-REF_TABLE = 'LFA1'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '10'.
    LS_FCAT-COLTEXT = 'Vendor Name'(001).
    LS_FCAT-SELTEXT = 'Vendor Name'(001).
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    Creation date of the change document...
    LS_FCAT-FIELDNAME = 'UDATE'.
    LS_FCAT-REF_TABLE = 'CDHDR'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '10'.
    LS_FCAT-COLTEXT = 'Change Date'(002).
    LS_FCAT-SELTEXT = 'Change Date'(002).
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    User name of the person responsible in change document...
    LS_FCAT-FIELDNAME = 'USERNAME'.
    LS_FCAT-REF_TABLE = 'CDHDR'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '10'.
    LS_FCAT-COLTEXT = 'Modified by'(003).
    LS_FCAT-SELTEXT = 'Modified by'(003).
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    Short Text Describing R/3 Repository Objects...
    LS_FCAT-FIELDNAME = 'DDTEXT'.
    LS_FCAT-REF_TABLE = 'DD04T'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '15'.
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    Old contents of changed field...
    LS_FCAT-FIELDNAME = 'VALUE_OLD'.
    LS_FCAT-REF_TABLE = 'CDPOS'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '12'.
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    New contents of changed field...
    LS_FCAT-FIELDNAME = 'VALUE_NEW'.
    LS_FCAT-REF_TABLE = 'CDPOS'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '12'.
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    ENDFORM. " PREPARE_FIELD_CATALOG
    *& Form SELECT_PO
    Subroutine to select all the Purchase Orders
    There are no interface parameters to be passed to this subroutine.
    FORM SELECT_PO .
    SELECT EBELN " Purchasing Document Number
    ERNAM " Name of Person who Created
    " the Object
    LIFNR " Vendor's account number
    EKGRP " Purchasing group
    BEDAT " Purchasing Document Date
    FROM EKKO
    PACKAGE SIZE 10000
    APPENDING TABLE T_EBELN
    WHERE EBELN IN S_EBELN
    AND BEDAT IN S_BEDAT.
    ENDSELECT.
    IF SY-SUBRC NE 0.
    W_FLAG = 1.
    MESSAGE S401(M8).
    ENDIF. " IF SY-SUBRC NE 0
    ENDFORM. " SELECT_PO
    *& Form SELECT_OBJ_ID
    Subroutine to select Object ID
    There are no interface parameters to be passed to this subroutine.
    FORM SELECT_OBJ_ID .
    IF NOT T_EBELN IS INITIAL.
    SELECT OBJECTCLAS " Object Class
    OBJECTID " Object value
    CHANGENR " Document change number
    USERNAME " User name
    UDATE " Creation date
    FROM CDHDR
    INTO TABLE T_CDHDR
    FOR ALL ENTRIES IN T_EBELN
    WHERE OBJECTID EQ T_EBELN-EBELN
    AND UDATE IN S_UDATE
    AND TCODE IN ('ME21N','ME22N','ME23N').
    ENDSELECT.
    IF SY-SUBRC NE 0.
    W_FLAG = 1.
    MESSAGE S833(M8) WITH 'Header Not Found'(031).
    ENDIF. " IF SY-SUBRC NE 0.
    ENDIF. " IF NOT T_EBELN IS INITIAL
    ENDFORM. " SELECT_OBJ_ID
    *& Form SELECT_CHANGED_VALUE
    Subroutine to select Changed Values
    There are no interface parameters to be passed to this subroutine.
    FORM SELECT_CHANGED_VALUE .
    IF NOT T_CDHDR IS INITIAL.
    SELECT OBJECTCLAS " Object class
    OBJECTID " Object value
    CHANGENR " Document change number
    TABNAME " Table Name
    FNAME " Field Name
    VALUE_NEW " New contents of changed field
    VALUE_OLD " Old contents of changed field
    FROM CDPOS
    PACKAGE SIZE 10000
    APPENDING TABLE T_CDPOS
    FOR ALL ENTRIES IN T_CDHDR
    WHERE OBJECTCLAS EQ T_CDHDR-OBJECTCLAS
    AND OBJECTID EQ T_CDHDR-OBJECTID
    AND CHANGENR EQ T_CDHDR-CHANGENR.
    ENDSELECT.
    IF SY-SUBRC NE 0.
    W_FLAG = 1.
    MESSAGE S833(M8) WITH 'Item Not Found'(032).
    ENDIF. " IF SY-SUBRC NE 0.
    ENDIF. " IF NOT T_CDHDR IS INITIAL
    T_CDPOS_TEMP[] = T_CDPOS[].
    ENDFORM. " SELECT_CHANGED_VALUE
    *& Form SELECT_PUR_DOC
    Subroutine to select Purchase Order Details
    There are no interface parameters to be passed to this subroutine.
    FORM SELECT_PUR_DOC .
    IF NOT T_CDPOS IS INITIAL.
    SORT T_EBELN BY EBELN.
    LOOP AT T_CDPOS INTO FS_CDPOS.
    READ TABLE T_EBELN INTO FS_EBELN WITH KEY EBELN =
    FS_CDPOS-OBJECTID BINARY SEARCH.
    IF SY-SUBRC NE 0.
    DELETE TABLE T_EBELN FROM FS_EBELN.
    ENDIF. " IF SY-SUBRC NE 0.
    ENDLOOP. " LOOP AT T_CDPOS...
    LOOP AT T_EBELN INTO FS_EBELN.
    MOVE FS_EBELN-EBELN TO FS_EKKO-EBELN.
    MOVE FS_EBELN-ERNAM TO FS_EKKO-ERNAM.
    MOVE FS_EBELN-LIFNR TO FS_EKKO-LIFNR.
    MOVE FS_EBELN-EKGRP TO FS_EKKO-EKGRP.
    MOVE FS_EBELN-BEDAT TO FS_EKKO-BEDAT.
    APPEND FS_EKKO TO T_EKKO.
    ENDLOOP. " LOOP AT T_EBELN...
    T_EKKO_TEMP[] = T_EKKO[].
    ENDIF. " IF NOT T_CDPOS IS INITIAL
    ENDFORM. " SELECT_PUR_DOC
    *& Form SELECT_VENDOR
    Subroutine to select Vendor details
    There are no interface parameters to be passed to this subroutine.
    FORM SELECT_VENDOR .
    IF NOT T_EKKO IS INITIAL.
    SORT T_EKKO_TEMP BY LIFNR.
    DELETE ADJACENT DUPLICATES FROM T_EKKO_TEMP COMPARING LIFNR.
    SELECT LIFNR " Account Number of Vendor or
    " Creditor
    NAME1 " Name 1
    FROM LFA1
    INTO TABLE T_LFA1
    FOR ALL ENTRIES IN T_EKKO_TEMP
    WHERE LIFNR EQ T_EKKO_TEMP-LIFNR.
    IF SY-SUBRC NE 0.
    MESSAGE S002(M8) WITH 'Master Details'(033).
    ENDIF. " IF SY-SUBRC NE 0.
    ENDIF. " IF NOT T_EKKO IS INITIAL
    ENDFORM. " SELECT_VENDOR
    *& Form DESCRIPTION
    Subroutine to get the description
    There are no interface parameters to be passed to this subroutine.
    FORM DESCRIPTION .
    IF NOT T_CDPOS IS INITIAL.
    SORT T_CDPOS_TEMP BY TABNAME FNAME.
    DELETE ADJACENT DUPLICATES FROM T_CDPOS_TEMP COMPARING TABNAME FNAME
    SELECT TABNAME " Table Name
    FIELDNAME " Field Name
    ROLLNAME " Data element
    FROM DD03L
    INTO TABLE T_DATAELE
    FOR ALL ENTRIES IN T_CDPOS_TEMP
    WHERE TABNAME EQ T_CDPOS_TEMP-TABNAME
    AND FIELDNAME EQ T_CDPOS_TEMP-FNAME.
    IF NOT T_DATAELE IS INITIAL.
    T_DATAELE_TEMP[] = T_DATAELE[].
    SORT T_DATAELE_TEMP BY ROLLNAME.
    DELETE ADJACENT DUPLICATES FROM T_DATAELE_TEMP COMPARING ROLLNAME.
    SELECT ROLLNAME " Data element
    DDTEXT " Short Text Describing R/3
    " Repository Objects
    FROM DD04T
    INTO TABLE T_TEXT
    FOR ALL ENTRIES IN T_DATAELE_TEMP
    WHERE ROLLNAME EQ T_DATAELE_TEMP-ROLLNAME
    AND DDLANGUAGE EQ SY-LANGU.
    IF SY-SUBRC NE 0.
    EXIT.
    ENDIF. " IF SY-SUBRC NE 0.
    ENDIF. " IF NOT T_DATAELE IS INITIAL.
    ENDIF. " IF NOT T_CDPOS IS INITIAL.
    ENDFORM. " DESCRIPTION
    *& Form FILL_OUTTAB
    Subroutine to populate the Outtab
    There are no interface parameters to be passed to this subroutine.
    FORM FILL_OUTTAB .
    SORT T_CDHDR BY OBJECTCLAS OBJECTID CHANGENR.
    SORT T_EKKO BY EBELN.
    SORT T_LFA1 BY LIFNR.
    SORT T_DATAELE BY TABNAME FIELDNAME.
    SORT T_TEXT BY ROLLNAME.
    LOOP AT T_CDPOS INTO FS_CDPOS.
    READ TABLE T_CDHDR INTO FS_CDHDR WITH KEY
    OBJECTCLAS = FS_CDPOS-OBJECTCLAS
    OBJECTID = FS_CDPOS-OBJECTID
    CHANGENR = FS_CDPOS-CHANGENR
    BINARY SEARCH.
    IF SY-SUBRC EQ 0.
    MOVE FS_CDHDR-USERNAME TO FS_OUTTAB-USERNAME.
    MOVE FS_CDHDR-UDATE TO FS_OUTTAB-UDATE.
    READ TABLE T_EKKO INTO FS_EKKO WITH KEY
    EBELN = FS_CDHDR-OBJECTID
    BINARY SEARCH.
    IF SY-SUBRC EQ 0.
    MOVE FS_EKKO-EBELN TO FS_OUTTAB-EBELN.
    MOVE FS_EKKO-ERNAM TO FS_OUTTAB-ERNAM.
    MOVE FS_EKKO-LIFNR TO FS_OUTTAB-LIFNR.
    MOVE FS_EKKO-EKGRP TO FS_OUTTAB-EKGRP.
    MOVE FS_EKKO-BEDAT TO FS_OUTTAB-BEDAT.
    READ TABLE T_LFA1 INTO FS_LFA1 WITH KEY
    LIFNR = FS_EKKO-LIFNR
    BINARY SEARCH.
    IF SY-SUBRC EQ 0.
    MOVE FS_LFA1-NAME1 TO FS_OUTTAB-NAME1.
    ENDIF. " IF SY-SUBRC EQ 0.
    ENDIF. " IF SY-SUBRC EQ 0.
    ENDIF. " IF SY-SUBRC EQ 0.
    MOVE FS_CDPOS-VALUE_NEW TO FS_OUTTAB-VALUE_NEW.
    MOVE FS_CDPOS-VALUE_OLD TO FS_OUTTAB-VALUE_OLD.
    READ TABLE T_DATAELE INTO FS_DATAELE WITH KEY
    TABNAME = FS_CDPOS-TABNAME
    FIELDNAME = FS_CDPOS-FNAME
    BINARY SEARCH.
    IF SY-SUBRC EQ 0.
    READ TABLE T_TEXT INTO FS_TEXT WITH KEY
    ROLLNAME = FS_DATAELE-ROLLNAME
    BINARY SEARCH.
    IF SY-SUBRC EQ 0.
    MOVE FS_TEXT-DDTEXT TO FS_OUTTAB-DDTEXT.
    ENDIF. " IF SY-SUBRC EQ 0.
    ENDIF. " IF SY-SUBRC EQ 0.
    APPEND FS_OUTTAB TO T_OUTTAB.
    CLEAR FS_OUTTAB.
    ENDLOOP.
    ENDFORM. " FILL_OUTTAB
    *& Form GET_CELL_INFO
    Subroutine to get the Cell Information
    --> W_VALUE Holds the value of Hotspot clicked
    FORM GET_CELL_INFO .
    CALL METHOD W_GRID->GET_CURRENT_CELL
    IMPORTING
    E_ROW =
    E_VALUE = W_VALUE
    E_COL =
    ES_ROW_ID =
    ES_COL_ID =
    ES_ROW_NO =
    ENDFORM. " GET_CELL_INFO
    *& Form VALIDATE_PD_NUM
    Subroutine to validate Purchase Document Number
    There are no interface parameters to be passed to this subroutine.
    FORM VALIDATE_PD_NUM .
    IF NOT S_EBELN[] IS INITIAL.
    SELECT EBELN " Purchase Document Number
    FROM EKKO
    INTO W_EBELN
    UP TO 1 ROWS
    WHERE EBELN IN S_EBELN.
    ENDSELECT.
    IF SY-SUBRC NE 0.
    CLEAR SSCRFIELDS-UCOMM.
    MESSAGE E717(M8).
    ENDIF. " IF SY-SUBRC NE 0
    ENDIF. " IF NOT S_EBELN[]...
    ENDFORM. " VALIDATE_PD_NUM
    *& Form VALIDATE_VEN_NUM
    Subroutine to validate Vendor Number
    There are no interface parameters to be passed to this subroutine.
    FORM VALIDATE_VEN_NUM .
    IF NOT S_LIFNR[] IS INITIAL.
    SELECT LIFNR " Vendor Number
    FROM LFA1
    INTO W_LIFNR
    UP TO 1 ROWS
    WHERE LIFNR IN S_LIFNR.
    ENDSELECT.
    IF SY-SUBRC NE 0.
    CLEAR SSCRFIELDS-UCOMM.
    MESSAGE E002(M8) WITH W_SPACE.
    ENDIF. " IF SY-SUBRC NE 0
    ENDIF. " IF NOT S_LIFNR[]...
    ENDFORM. " VALIDATE_VEN_NUM
    *& Form VALIDATE_PUR_GRP
    Subroutine to validate the Purchase Group
    There are no interface parameters to be passed to this subroutine.
    FORM VALIDATE_PUR_GRP .
    IF NOT S_EKGRP[] IS INITIAL.
    SELECT EKGRP " Purchase Group
    FROM T024
    INTO W_EKGRP
    UP TO 1 ROWS
    WHERE EKGRP IN S_EKGRP.
    ENDSELECT.
    IF SY-SUBRC NE 0.
    CLEAR SSCRFIELDS-UCOMM.
    MESSAGE E622(M8) WITH W_SPACE.
    ENDIF. " IF SY-SUBRC NE 0
    ENDIF. " IF NOT S_EKFRP[]...
    ENDFORM. " VALIDATE_PUR_GRP
    *& Form FILL_VARIANT
    Subroutine to fill the Variant Structure
    There are no interface parameters to be passed to this subroutine
    FORM FILL_VARIANT .
    Filling the Variant structure
    W_VARIANT-REPORT = SY-REPID.
    W_VARIANT-USERNAME = SY-UNAME.
    ENDFORM. " FILL_VARIANT
    <b>Reward if usefull</b>

  • Filter Based on other report not working

    Hi Gurus,
    I am using OBIEE 10g.
    I have a Dashboard page in that i have a prompt and 2 reports,(A, B reports). Report B is using the same columns as prompt where as report A not.
    Report A has columns which hold the same data as report B, so i thougt to pass the values based on Report B column using the filter based on other report. I am able to complete it succssfuly but Report A is not having amount of data that i was excepting. When i started investigating i found out that the column which i am using in the prompt and report B have values ( NEW, OLD, NULL) report A able to take the values NEW and OLD but the NULL values are not passing to report A. In report B it is taking null value as it has filter as prompted.
    Is it any way to have the values (NEW, OLD, NULL) in report A?
    Thanks in Advance.
    Regards
    Ali

    Hi Deep,
    Thanks for taking time to answer my question.
    I have to display null. If i Mask with something then i dont get proper data in report A, couse in the table it is null.
    Thanks
    Ali

  • Crystal Report Viewer (flash based) is displaying partial of the flash interface. It is working well on Firefox 3.6.7 and below but not in Firefox 3.6.8. It is also working well on Internet Explorer and Chrome and Safari. Please check if you can advise o

    Crystal Report Viewer (flash based) is displaying partial of the flash interface. It is working well on Firefox 3.6.7 and below but not in Firefox 3.6.8. It is also working well on Internet Explorer and Chrome and Safari. Please check if you can advise on this problem we are facing. Thank you.
    == This happened ==
    Every time Firefox opened
    == Crystal Report Viewer (flash based) is displaying partial of the flash interface. It is working well on Firefox 3.6.7 and below but not in Firefox 3.6.8. It is also working well on Internet Explorer and Chrome and Safari. Please check if you can advise on this problem we are facing. Thank you. ==
    == User Agent ==
    Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.78 Safari/532.5

    Reset the page zoom on pages that cause problems: '''View > Zoom > Reset''' (Ctrl+0 (zero); Cmd+0 on Mac)
    See [[Text Zoom]] and [[Page Zoom]] and http://kb.mozillazine.org/Zoom_text_of_web_pages
    You can try if it works if you disable OOPP (Out-Of-Process-Plugins) for Flash
    You can set the prefs dom.ipc.plugins.enabled.* to false on the about:config page to disable the plugin-container process.
    dom.ipc.plugins.enabled (currently false by default)
    dom.ipc.plugins.enabled.npswf32.dll (Flash)
    To open the ''about:config'' page, type '''about:config''' in the location (address) bar and press the Enter key, just like you type the url of a website to open a website.
    If you see a warning then you can confirm that you want to access that page.

  • Output of the report is not displaying based on the layout

    Hi,
    We are not able to get the report based on the layout. We have found that F4 help is not working for the layout selection, as there are so many layoust mantained for the report.The FM REUSE_ALV_VARIANT_F4 is used to select the variant.But we have checked the table LTDX, there are no lay out is there for this report.hence the out out of the report is always displaying based on one standrd layout.
    Kindly guide me to resolve this issue.
    Regards,
    Arundhati

    Hi, follow these steps:
    1 - Variant on Screen
    SELECTION-SCREEN BEGIN OF BLOCK bloco2 WITH FRAME.
    PARAMETERS:       p_layout LIKE disvariant-variant.
    SELECTION-SCREEN END OF BLOCK bloco2.
    2 - F4 on field
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_layout.
      PERFORM busca_variantes.
    AT SELECTION-SCREEN ON p_layout.
      IF NOT p_layout IS INITIAL.
        PERFORM verifica_variante.
      ENDIF.
    3 - Functions for F4
    3.1 Form  busca_variantes
    FORM busca_variantes.
      DATA: variant_exit(01) TYPE c,
            variante         LIKE disvariant.
      variante-report = sy-repid.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
           EXPORTING
                is_variant    = variante
                i_save        = 'A'
           IMPORTING
                e_exit        = variant_exit
                es_variant    = v_variante
           EXCEPTIONS
                not_found     = 1
                program_error = 2
                OTHERS        = 3.
      IF sy-subrc = 0.
        IF variant_exit = space.
          p_layout = v_variante-variant.
        ENDIF.
      ENDIF.
    ENDFORM.                    " busca_variantes
    3.2 - FORM verifica_variante
    FORM verifica_variante.
      v_variante-report  = sy-repid.
      v_variante-variant = p_layout.
      CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
           EXPORTING
                i_save        = 'A'
           CHANGING
                cs_variant    = v_variante
           EXCEPTIONS
                wrong_input   = 1
                not_found     = 2
                program_error = 3
                OTHERS        = 4.
      IF sy-subrc  0.
        MESSAGE w368(00) WITH p_layout ' não é uma variante válida'.
        CLEAR p_layout.
      ENDIF.
    ENDFORM.                    " verifica_variante
    4 - Calling the variant on reuse function
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    is_variant               = v_variante
    5 - Global DATA
    DATA:      v_variante   LIKE disvariant.

  • Can We generate Check report based on Custom Dimension in FDM

    Hi All,
    We got a requirement in our project to generate the check report based on custom dimension. As far as i know the check reports that got generated in FDM are based on Entity Dimension.
    So, will you please let me know whether it is possible to generate report based on any one of the custom dimension.
    Thanks.

    I guess I am not understanding the question here?
    The check report is based on the location/entity that you are running the report for.  You can pull values for a specific intersection in the target application with the check report, so you could specify the custom dim in the intersection.

  • BPC Dimension Members displayed as numbers/index in HANA tables

    Hi,
    I used the following post from Selva BPC tables in HANA to lookup a BPC model in HANA. However all the dimensions members are represented by numbers/index instead of the actual dimension member description. Is there a way in HANA to see the actual dimension member instead of an index value?
    e.g. Category Actual is displayed as 2 and Category Plan as 3 and so on.
    Please refer to the screenshot
    yogesh

    BW also has the values in text correctly. I am not sure if only the dimension member index value is passed on to HANA.
    yogesh

  • Call BI Publisher Report in APEX, based on R.T.F Template Layout.

    Hi to all respected members of this forum.
    Since 18th May (Saturday), I am trying to connect BI Publisher Reports with Oracle Application Express 4.2.2.
    My APEX Version = APEX 4.2.2
    Oracle BI Publisher Enterprise Edition (Trial) = 11.1.1.6.0
    Oracle BI Publisher Desktop 32 Bit = 11.117.0.79
    For this purpose what I did?
    Firstly I downloaded Oracle BI Publisher Enterprise Edition 11.7 and when I started Installation I came to know that "R.C.U (Repository Creation Utility)" is required during installation and I don't have that so, left this idea.
    Than I downloaded Oracle BI Publisher Enterprise Edition (Trial) from www.oracle.com and BI Publisher Desktop Edition for Templates because there is no facility in BI Publisher Trial Edition to design Report Templates. I have installed both successfully and created a report as per my requirement.
    Now, I want to call that report in Oracle APEX but I am unable to do that.
    I followed http://dgielis.blogspot.de/2007/12/call-bi-publisher-report-from-apex.html but the link which is shown in picture no: 03, is not available, so this didn't help me.
    Then, I followed Oracle BI Publisher Blog https://blogs.oracle.com/xmlpublisher/entry/apex_users_why_not_integrate_w which discuss to call BI Publisher Report in APEX based on "Generic Report Layout". This done successfully but still I am unable to call BI Publisher Report .
    Then I found this type of script
    http://localhost/xmlpserver/Guest/Reporting_Channel.xdo&id=FGFC&password=****&xt=Reporting_Channel&xf=pdf
    to call BI Publisher Report in APEX but this also failed.
    Please help me to understand that how to call "BI Publisher Report in APEX, based on R.T.F Template Layout.
    Thanks in Advance.
    *Regards:*
    *Muhammad Uzair Awan*
    *ORACLE APEX Developer*
    PAKISTAN.
    Edited by: uzairmalik on May 20, 2013 1:32 PM

    Are you trying to have multiple sql queries and have multiple sections displaying different data sets ? Or with one single query but display it in different ways in a single report ?
    You can create one single query as Report Query in APEX and associate it with a BIP report layout. So you can achieve a Dashboard layout with the report query/layout.

  • SSRS with calculated dimension members SSAS

    Hello everybody,
    I have an interesting scenario involving a SSRS report with a matrix connected to a SSAS cube containing calculated dimension members.
    One of the parameters is "Reference Week".  Based on that parameter, I need the measures for the previous 5 weeks.
    So I created an anchor dimension "Analysis Weeks" with the members "Week -1" to "Week -5".
    Everything is working fine.  The only problem is the names of the columns on the report.  
    Currently I have "Current Week", "Week -1", etc. as column names, I'd like to show the real dates.
    For example, if I choose "2014-02-15" as the reference week, I want the first column to show "2014-02-15" instead of "Current Week". The second would show "2014-02-08" instead of "Week -1", etc.
    I tried to get the current column position in the matrix, which I could use the with @ReferenceWeek parameter, but I can't access that property.
    Any suggestion?
    Thanks

    If I understand correctly, your column group is on "Analysis Weeks", is that right? If so just get the value of that field and use it to get the dates.
    =DateAdd("d",-1*CInt(Right(Fields!AnalysisWeeks.Value,1))*7,Fields!ReferenceWeek.Value)
    "You will find a fortune, though it will not be the one you seek." -
    Blind Seer, O Brother Where Art Thou
    Please Mark posts as answers or helpful so that others may find the fortune they seek.

  • Report to forecast based on fiscal period

    Has anyone done any financial reports which display data based on fiscal periods? The ProjectData service doesn't expose fiscal period (neither does the REST API under _api/ProjectServer). I saw a previous post (http://social.msdn.microsoft.com/Forums/en-US/7999cdf1-16fd-4efd-b7de-964bfeceb8f6/utilization-reports-by-fiscal-period?forum=projectserver2010general)
    that said to use the BI Center in PWA.
    In the case of Project Online I think what it means is that I need to use the Time entity from Timesheet actuals. Is this correct?
    Thanks,
    Roland

    Hi Roland,
    Indeed I couldn't find any fiscal year in the
    project odata references. Maybe other folks on the forum could give you a different answer. But if it turns to be true, you'll either have to deal with the time dimension, or to extract the raw data by day
    then do a transformation with Excel formula, code, VBA...
    Hope this helps,
    Guillaume Rouyre, MBA, MVP, MCP |

  • Looking for BPC user contacts with large numbers of dimension members

    I would like to make contact with other BPC users that have multiple dimensions with dimension members in excess of 10K.
    Thanks,
    Cary Schulz
    Newfield Exploration
    281-674-2004

    Hi Helene,
    With 3,000 members you should not be experiencing these problems, if your report is designed properly.
    I'm running BPC 5.1 SP8 on SQL 2005, with a dimension containing 22,000 members. Client PC's are typical (XP, Excel 2007, 1 or 2 gig RAM).
    Using EVDRE and this dimension expanding on the rows, most reports & input schedules can expand & refresh in the range of 10 to 30 seconds.
    The faster times are when I use a row expansion memberset using dimension properties, such as Active="X". The slower times are when the memberset is hierarchy-based, such as BAS.
    If you're using a dynamic template (one using EVEXP for the expansion) then you should start over using EVDRE. It will be much faster, particularly if you optimize your row expansion.
    It's often a good idea to add dimension properties specifically for the purpose of optimizing the report expansion, if the dimension has thousands of members. I sometimes go as far as to add properties which mimic the hierarchy (MyLevel2, MyLevel3, etc) just for this purpose.

Maybe you are looking for

  • New Skype for Business PSTN services announced

    Announcing preview of new Skype for Business services in Office 365Skype Meeting Broadcast, available to eligible Office 365 customers worldwide, enables broadcast of a Skype for Business meeting on the Internet to up to 10,000 people, who can attend

  • Displaying image on welcome view

    Hi Gurus!     I need to display image document stored on server on welcome view. For that, I have added MIME object after Importing that image. Then, created image in RootUIElementContainer of 'Welcome View' and does the mapping in context tab. After

  • How to make the message invisible.

    use transction "CNMASS" to mass change the activity. but there is a message. the message no. is CN354. "No authorization for processing: WBS element  XXX" how to make this warning message "CN354" is invisible. Please explain me all the steps to be re

  • HT4113 Can not turn off passcode lock

    I can not turn off passcode lock. I see it and it is grayed out. I can change the password, etc. but I can not turn it off  I plugged the phone into a friends computer a few days ago to charge it. Does that have something to do with it?

  • BIP Error: SBL-EAI-04308: Operation ' ? ' of Web Service ' ? . ? ' at port

    Hi Gurus, We are setting up new sandbox environment with Siebel 8.1.1.5 s/w and BIP 10.1.3.4.1. Siebel 8.1.1.5 is successfully installed and configured. Followed all the installation steps mentioned in the BIP Guide. I can login to BIP Console (http: