Basic report, Interactive report

Hi i am new in report . Anybody can help me regards this . I need material with examlpe (Proper coding also ).  Help me in interactive report also. send through my mail id [email protected]
Edited by: supriya satapathy on Oct 14, 2008 7:29 AM

Hi supriya,
Goto tcode ABAPDOCU or http://help.sap.com.
you'll find reports etc with examples wrt syntax, use .
Regards,
Amit

Similar Messages

  • Basic on interactive reporting

    hi i am new to IR.........can any one guide me abt IR.....whts abt feature....pls guide me..iam new for IR...

    Here is location of the IR Studio Guide.
    http://download.oracle.com/docs/cd/E10530_01/doc/epm.931/ir_user.pdf
    Brian Chow

  • 2 : 1 report  - interactive report

    hi experts,
                   i have two internal tables and i am displaying both the tables .and from that report i need it interactive .Can i achieve this.
    what is the logic.Check this is right.
    itab1.
           field1.
           field2.
    itab2.
           field1.
           field2.
    Basic report.
    field1.
    field2.
    hide: field1.
    field1.
    field2.
    hide:field1.
    interactive repoprt.
    at line selection.
    select from table where field1 or field1.
    please tell me where to include events like top of page ,end of page,at selection screen etc.

    Hi,
    As I understand and tested, saved reports are visible only for that user who saves it.
    Developer can save default report, that is visible to everybody.
    I do not know where start looking your problem. But it sounds something relating your authorization
    What kind authorization you use ?
    Is page public ?
    Regards,
    Jari

  • Reports- interactive report

    my requirement is
    Report to display all materials that go out-of-stock- Only Finished Goods. Developed a drill down report for materials details - for totals and subtotals for material stock values by material group and material type.
    what are table we have to use to do this and how to find table for this task

    Hi,
    The following are the tables available with material management:
    EINA     Purchasing Info Record- General Data
    EINE     Purchasing Info Record- Purchasing Organization Data
    MAKT     Material Descriptions
    MARA     General Material Data
    MARC     Plant Data for Material
    MARD     Storage Location Data for Material
    MAST     Material to BOM Link
    MBEW     Material Valuation
    MKPF     Header- Material Document
    MSEG     Document Segment- Material
    MVER     Material Consumption
    MVKE     Sales Data for materials
    RKPF     Document Header- Reservation
    T023     Mat. groups
    T024     Purchasing Groups
    T156     Movement Type
    T157H     Help Texts for Movement Types
    Hope this helps.
    Regards,
    Renjith Michael.

  • Difference between class report and interactive report

    please give me the differences between  classical report and interactive report

    Hi,read the following :
    In ABAP, there are a total of 7 types of reports. They are:
    Classical Reports
    Interactive Reports
    Logical Database Reports
    ABAP query
    ALV Reports (ALV stands for ABAP List Viewer)
    Report Writer/Report Painter
    Views (There are different types of views also)
    Classical Reports
    These are the most simple reports. It is just an output of data using the Write statement inside a loop.
    Classical reports are normal reports. These reports are not having any sub reports. IT IS HAVING ONLY ONE SCREEN/LIST FOR OUTPUT
    Interactive Reports
    As the name suggests, the user can Interact with the report. We can have a drill down into the report data. For example, Column one of the report displays the material numbers, and the user feels that he needs some more specific data about the vendor for that material, he can HIDE that data under those material numbers.
    And when the user clicks the material number, another report (actually sub report/secondary list) which displays the vendor details will be displayed.
    We can have a basic list (number starts from 0) and 20 secondary lists (1 to 21).
    Logical Database Reports
    Logical database is another tool for ABAP reports. Using LDB we can provide extra features for ABAP reports.
    While using LDB there is no need for us to declare Parameters.
    Selection-screen as they will be generated automatically.
    We have to use the statement NODES in ABAP report.
    ABAP Query Reports
    ABAP query is another tool for ABAP. It provides efficency for ABAP reports. These reports are very accurate.
    Transaction Code : SQ01
    Report Writer / Report painter
    Super users and end users can use Report Painter/Report Writer tools to write their own reports.
    Giving them the ability to report on additional fields at their discretion shifts the report maintenance burden to them, saving SAP support groups time and effort normally spent creating and maintaining the reports.
    ALV reports
    Sap provides a set of ALV (ABAP LIST VIEWER) function modules which can be put into use to embellish the output of a report. This set of ALV functions is used to enhance the readability and functionality of any report output. Cases arise in sap when the output of a report contains columns extending more than 255 characters in length.
    In such cases, this set of ALV functions can help choose selected columns and arrange the different columns from a report output and also save different variants for report display. This is a very efficient tool for dynamically sorting and arranging the columns from a report output.
    The report output can contain up to 90 columns in the display with the wide array of display options.
    There is no difference between drill down and interactive report, they are the same.
    With drilldown reporting, SAP provides you with an interactive information system to let you evaluate the data collected in your application. This information system is capable of analyzing all the data according to any of the characteristics that describe the data. You can also use any key figures you wish to categorize your data. You can display a number of objects for a given key figure, or a number of key figures for a given object. In addition, the system lets you carry out any number of variance analyses (such as plan/actual comparisons, fiscal year comparisons, comparisons of different objects, and so on).
    *More on Classical Vs Interactive*
    Classical Reports
    These are the most simple reports. Programmers learn this one first. It is just an output of data using the Write statement inside a loop.
    Classical reports are normal reports. These reports are not having any sub reports. IT IS HAVING ONLY ONE SCREEN/LIST FOR OUTPUT.
    Events In Classical Reports.
    INTIALIZATION: This event triggers before selection screen display.
    AT-SELECTION-SCREEN: This event triggers after proccesing user input still selection screen is in active mode.
    START OF SELECTION: Start of selection screen triggers after proceesing selection screen.
    END-OF-SELECTION : It is for Logical Database Reporting.
    Interactive Reports
    As the name suggests, the user can Interact with the report. We can have a drill down into the report data. For example, Column one of the report displays the material numbers, and the user feels that he needs some more specific data about the vendor for that material, he can HIDE that data under those material numbers.
    And when the user clicks the material number, another report (actually sub report/secondary list) which displays the vendor details will be displayed.
    We can have a basic list (number starts from 0) and 20 secondary lists (1 to 21).
    Events associated with Interactive Reports are:
    1. AT LINE-SELECTION
    2. AT USER-COMMAND
    3. AT PF<key>
    4. TOP-OF-PAGE DURING LINE-SELECTION.
    HIDE statement holds the data to be displayed in the secondary list.
    sy-lisel : contains data of the selected line.
    sy-lsind : contains the level of report (from 0 to 21)
    Interactive Report Events:
    AT LINE-SELECTION : This Event triggers when we double click a line on the list, when the event is triggered a new sublist is going to be generated. Under this event what ever the statements that are been return will be displayed on newly generated sublist.
    AT PFn: For predefined function keys...
    AT USER-COMMAND : It provides user functions keys.
    TOP-OF-PAGE DURING LINE-SELECTION :top of page event for secondary list.
    Reward if found helpful

  • Reg. alv and interactive reports

    Hi Friends,
    What is the difference between alv and interactive reports?.
    rewards are helpful answers.

    Hi,
    ABAP List Viewer
    The common features of report are column alignment, sorting, filtering, subtotals, totals etc. To implement these, a lot of coding and logic is to be put. To avoid that we can use a concept called ABAP List Viewer (ALV).
    Using ALV, we can have three types of reports:
    1. Simple Report
    2. Block Report
    3. Hierarchical Sequential Report
    Interactive Reports
    As the name suggests, the user can Interact with the report. We can have a drill down into the report data.
    Purpose
        Interactive report provides you with comfortable functions for navigating through your data.
    Use
    Interactive report are used to display multiple list in one single report
    It has basic list and then you can  navigate to one or other screens in one single report
    Enhance the efficiency & transparency of Business Processes
    Example :  Column one of the report displays the material numbers, and the user feels that he needs some more specific data about the vendor for that material, he can HIDE that data under those material numbers.
    And when the user clicks the material number, another report (actually sub report/secondary list) which displays the vendor details.
    Advantage of ALV over Interactive:--
    1> Graphic Can be added
    2> Less Amount Of coding
    Reward If Helpful

  • Apex 4.1.1 Difference in Saving Private Interactive reports

    Hi,
    our customers found a difference in saving reports (interactive report) and i am not sure if it is a bug or a feature.
    Environment
    Redhat Linux 5.8 (64bit)
    Oracle 11.2.0.3.0 64bit
    Apex 4.1.1.00.23
    Description:
    - If i change a saved report (move columns or change filter etc.) i go to the action menu choose 'save report' and my saved report are changed permant and in the session. Thats ok and are to be expected.
    - If i change a saved report and click on the link_ of the saved report (on top of the Interacive report, the dialog box seems to be the same), only the session version of the report gets changed!
    I have checked this several times with the view APEX_APPLICATION_PAGE_IR_RPT.
    Is this a bug?
    regards,
    Wolfgang

    Hi Wolfgang,
    The behavior you are seeing is not a bug, but rather designed behavior. The saved report link in the report settings is rename report link. If you hover over the link, Rename Report bubble displays. You can change the report attributes such as name, public and description. To save the report settings (filter, highlight, sort, control break, etc.), you need to click Actions > Save Report to save.
    Regards,
    Christina

  • Saved Interactive Reports after APEX Upgrade

    Hi,
    When you do an APEX Upgrade are saved interactive reports kept?
    Martin

    I have been experiencing lost saved "as Named Report" Interactive reports, whenever I migrate the application from test to prod.
    To clarify how we operate.
    We have a test APEX environment that is separate to production. The Test app has a different App_id but uses the same schema name. In test the application Id is 1xxx (eg 1201) and in test 2xxx (2201). I export Test 1201 and then import into Prod changing the App_id to overwrite 2201. I always lose the saved reports. I just tried an experiment of creating the saved report in Test and seeing if it migrates to prod, but of course it does not.
    How should I operate the two different Test and Prod environment to be "best practice" and not lose "as Named Report" Interactive report saved by the end-user?
    thanks Peter

  • Search chinese in the interactive report

    I find the interactive report does not run fine for the chinese.
    I can not search the chinese in the interactive report.

    Interactive report search on multi byte string seems to work fine. Do you have a test case I can take a look perhaps in apex.oracle.com?
    - Christina

  • Please send me some real time quetions in REPORTS/ ALV  REPORTS

    please anybody can send me some real time issues and quetions from REPORTS,
    ALV REPORTS

    Hi,
    Report is basically a program which extracts the data from the database tables based on some inputs and gives the output as a list.
    Report are classified as Classical Reports, Interactive Reports and ALV Report.
    Classical Report is a normal report which just displays the output.User cannot interact with that report.
    Interactive Report is nothing but, a user can interacte with the report.After a basic list is displayed, user can click on some field on the list which generates a secondary list giving the necessary information relevant to that field.
    ALV Report is to provide users with a consistent, user friendly and functional method of manipulating the data, which appears on report lists. ALV provides more advantages than the normal report
    Reports
    http://www.sapgenie.com/abap/reports.htm
    http://www.allsaplinks.com/material.html
    http://www.sapdevelopment.co.uk/reporting/reportinghome.htm
    http://www.sapfans.com/forums/viewtopic.php?t=58286
    http://www.sapfans.com/forums/viewtopic.php?t=76490
    http://www.sapfans.com/forums/viewtopic.php?t=20591
    http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.
    http://www.sapbrain.com/FAQs/TECHNICAL/SAP_ABAP_REPORTS_FAQ.html
    http://www.sap-img.com/
    http://www.sapdevelopment.com
    http://www.sapmaterial.com
    ALV programs.
    http://www.geocities.com/mpioud/Abap_programs.html
    . How do I program double click in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=11601
    http://www.sapfans.com/forums/viewtopic.php?t=23010
    How can I use ALV for reports that are going to be run in background?
    http://www.sapfans.com/forums/viewtopic.php?t=83243
    http://www.sapfans.com/forums/viewtopic.php?t=19224
    ALV
    http://www.sapfans.com/forums/viewtopic.php?t=58286
    http://www.sapfans.com/forums/viewtopic.php?t=76490
    http://www.sapfans.com/forums/viewtopic.php?t=20591
    http://www.sapfans.com/forums/viewtopic.php?t=66305 - http://www.sapgenie.com/abap/reports.htm
    http://www.allsaplinks.com/material.html
    http://www.sapdevelopment.co.uk/reporting/reportinghome.htm
    Top-of-page in ALV
    selection-screen and top-of-page in ALV
    ALV Group Heading
    http://www.sap-img.com/fu037.htm
    ALV
    http://www.geocities.com/mpioud/Abap_programs.html
    Regards,
    Priyanka.

  • Basic question in interactive reporting

    Hi
    I'm a kid in IR, I installed IR Studio 9.3.1 , and I even installed IR web Client from workspace, Can anyone tell me how to login in to web client, I mean I need web address. If my question is wrong ...let me know how IR works , where you develop(I guess obviously in studio) , is there any webadress like planning.
    I appreciate if any one give some basic Idea.
    Thanks
    M.V

    You do not need to "log-in" to webclient. As I suppose (you installed webclient) you are allready logged in to workspace and you only need to import an interactive reporting document (bqy) into workspace. after that you just have to rightclick on the file in your workspacefolder and choose if you want to open the document in html or in webclient. when you choose the client, the plugin will open and you can use many of the functions you also have in the studioclient. in html you only have very few options of editing.
    regards,
    Marius
    Message was edited by:
    user619911

  • Interactive report basic list concept

    Suppose in a basic list i have 7 parallel detail list.i am in basic list is there any way to go directly to 7 th detail list from basiclist or from 1st detail list to 7 th detail list vice-versa.
    plz tell me..i am waiting.. for reply
    thanx
    arya

    Hi...
        Just go through following code.... its for normal interactive reports...
    TYPES : BEGIN OF st_kna1,
    kunnr TYPE kna1-kunnr, "CUSTOMER NUMBER
    name1 TYPE kna1-name1, "CUSTOMER NAME
    END OF st_kna1.
    TYPES : BEGIN OF st_vbak,
    kunnr TYPE kna1-kunnr,
    vbeln TYPE vbak-vbeln, "SALES DOCUMENT NUMBER
    erdat TYPE vbak-erdat, "DATE ON WHICH THE RECORD WAS CREATED
    audat TYPE vbak-audat, "DOCUMENT DATE
    auart TYPE vbak-auart, "SALES DOCUMENT TYPE
    ernam TYPE vbak-ernam, "NAME OF PERSON WHO CREATED THE OBJECT.
    augru TYPE vbak-augru, "ORDER REASON
    END OF st_vbak.
    TYPES : BEGIN OF st_vbap,
    vbeln TYPE vbak-vbeln,
    posnr TYPE vbap-posnr, "SALES DOCUMENT ITEM
    matnr TYPE vbap-matnr, "MATERIAL NUMBER
    charg TYPE vbap-charg, "BATCH NUMBER
    matkl TYPE vbap-matkl, "MATERIAL GROUP
    posar TYPE vbap-posar, "ITEM TYPE
    END OF st_vbap.
    DATA : it_kna1 TYPE STANDARD TABLE OF st_kna1,
    it_vbak TYPE STANDARD TABLE OF st_vbak,
    it_vbap TYPE STANDARD TABLE OF st_vbap,
    wa_kna1 TYPE st_kna1,
    wa_vbak TYPE st_vbak,
    wa_vbap TYPE st_vbap.
    DATA : v_fld(15),
    v_kunnr TYPE kna1-kunnr,
    v_vbeln TYPE vbak-vbeln.
    SELECT-OPTIONS
    PARAMETERS
    SELECT-OPTIONS so_kunnr FOR v_kunnr. "CUSTOMER NUMBER
    PARAMETERS : p_max TYPE i. "NUMBER OF HITS
    START-OF-SELECTION
    START-OF-SELECTION.
    PERFORM get_customerdata.
    SET PF-STATUS 'MENU1'.
    AT LINE-SELECTION
    AT LINE-SELECTION.
    IF sy-lsind = 1.
    PERFORM get_salesheader.
    ELSEIF sy-lsind = 2.
    PERFORM get_salesitemdata.
    ENDIF.
    AT USER-COMMAND
    AT USER-COMMAND.
    CASE sy-ucomm.
    WHEN 'DISP'.
    PERFORM get_salesheader.
    WHEN 'ITEM'.
    PERFORM get_salesitemdata.
    WHEN 'VA03'.
    SET PARAMETER ID 'AUN' FIELD wa_vbak-vbeln.
    CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
    ENDCASE.
    TOP-OF-PAGE
    TOP-OF-PAGE.
    ULINE AT /1(56).
    WRITE : /1 sy-vline ,
    2(15) text-004 COLOR 1 ,
    sy-vline ,
    20(35) text-005 COLOR 1 ,
    sy-vline.
    ULINE AT /1(56).
    TOP-OF-PAGE DURING LINE-SELECTION.
    TOP-OF-PAGE DURING LINE-SELECTION.
    CASE sy-lsind.
    WHEN 1.
    PERFORM get_topofpage1.
    WHEN 2.
    PERFORM get_topofpage2.
    ENDCASE.
    FORM GET_CUSTOMERDATA
    FORM get_customerdata.
    SELECT kunnr name1
    FROM kna1
    INTO TABLE it_kna1
    UP TO p_max ROWS
    WHERE kunnr IN so_kunnr.
    IF sy-subrc EQ 0.
    LOOP AT it_kna1 INTO wa_kna1.
    WRITE : / sy-vline,
    2(15) wa_kna1-kunnr ,
    sy-vline ,
    20 wa_kna1-name1,
    sy-vline.
    HIDE : wa_kna1-kunnr , wa_kna1-name1.
    CLEAR wa_kna1.
    ENDLOOP.
    ULINE AT : /1(56).
    ELSE.
    MESSAGE w000(z50871msg).
    ENDIF.
    ENDFORM. "GET_CUSTOMERDATA
    FORM GET_SALESHEADER
    FORM get_salesheader.
    SET PF-STATUS 'MENU2'.
    GET CURSOR FIELD v_fld VALUE v_kunnr.
    IF v_fld = 'WA_KNA1-KUNNR'.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
    input = v_kunnr
    IMPORTING
    output = v_kunnr.
    SELECT kunnr vbeln erdat audat auart ernam augru
    FROM vbak
    INTO TABLE it_vbak
    WHERE kunnr = v_kunnr.
    IF sy-subrc EQ 0.
    LOOP AT it_vbak INTO wa_vbak.
    WRITE : / sy-vline ,
    2(22) wa_vbak-vbeln ,
    sy-vline,
    27(25) wa_vbak-erdat ,
    sy-vline ,
    55(15) wa_vbak-audat ,
    sy-vline ,
    73(15) wa_vbak-auart ,
    sy-vline,
    91(16) wa_vbak-ernam ,
    sy-vline,
    109(13) wa_vbak-augru,
    123 sy-vline.
    HIDE : wa_vbak-vbeln.
    CLEAR wa_vbak.
    ENDLOOP.
    ULINE AT : /1(123).
    ELSE.
    MESSAGE i015(z50871msg).
    ENDIF.
    ELSE.
    MESSAGE i013(z50871msg).
    ENDIF.
    ENDFORM. "GET_SALESHEADER
    FORM GET_SALESITEMDATA
    FORM get_salesitemdata.
    SET PF-STATUS space.
    GET CURSOR FIELD v_fld VALUE v_vbeln.
    IF v_fld = 'WA_VBAK-VBELN'.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
    input = v_vbeln
    IMPORTING
    output = v_vbeln.
    SELECT vbeln posnr matnr charg matkl posar
    FROM vbap
    INTO TABLE it_vbap
    WHERE vbeln = v_vbeln.
    LOOP AT it_vbap INTO wa_vbap.
    WRITE : /1 sy-vline,
    2(13) wa_vbap-posnr ,
    sy-vline,
    18(18) wa_vbap-matnr ,
    sy-vline,
    40(13) wa_vbap-charg ,
    sy-vline,
    56(16) wa_vbap-matkl ,
    sy-vline,
    75 wa_vbap-posar,
    112 sy-vline.
    CLEAR wa_vbap.
    ENDLOOP.
    ULINE AT : /1(112).
    ELSE.
    MESSAGE i014(z50871msg).
    ENDIF.
    ENDFORM. "GET_SALESITEMDATA
    FORM GET_TOPOFPAGE1
    FORM get_topofpage1.
    ULINE AT : /1(123).
    WRITE : / sy-vline ,
    2 text-000 ,
    wa_kna1-kunnr ,
    75 text-001 ,
    wa_kna1-name1,
    123 sy-vline.
    ULINE AT : /1(123).
    WRITE : / sy-vline ,
    2(22) text-006 COLOR 1,
    sy-vline,
    27(25) text-007 COLOR 1 ,
    sy-vline ,
    55(15) text-008 COLOR 1 ,
    sy-vline ,
    73(15) text-009 COLOR 1 ,
    sy-vline,
    91(16) text-010 COLOR 1 ,
    sy-vline,
    109(13) text-011 COLOR 1,
    123 sy-vline.
    ULINE AT : /1(123).
    ENDFORM. "GET_TOPOFPAGE1
    FORM GET_TOPOFPAGE2
    FORM get_topofpage2.
    ULINE AT : /1(112).
    WRITE : / sy-vline ,
    2 text-000 ,
    wa_kna1-kunnr ,
    35 text-001 ,
    wa_kna1-name1 ,
    85 text-003 ,
    wa_vbak-vbeln ,
    112 sy-vline.
    ULINE AT : /1(112).
    WRITE : /1 sy-vline,
    2(13) text-012 COLOR 1,
    sy-vline,
    18(18) text-013 COLOR 1 ,
    sy-vline,
    40(13) text-014 COLOR 1 ,
    sy-vline,
    56(16) text-015 COLOR 1 ,
    sy-vline,
    75 text-016 COLOR 1 ,
    112 sy-vline.
    ULINE AT : /1(112).
    ENDFORM. "GET_TOPOFPAGE2
    Thanks,
    Naveen.I

  • 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>

  • Issue in interactive report

    Hi All,
    in my report i am using interactive concept. for example i am giving personal number range in selection screen as 12900 13600 . In basic  list it is displaying the output. when i click on personal number it will show the details in secondary list ut in my report in basic list when i click on 12900 it is considering last pernr  i.e. 13600 and it is showing the 13600 details in the secondary list anybody can help i am sending my code below.
    REPORT zmaheedhar.
    TABLES : pa0001.
    DATA : BEGIN OF itab OCCURS 0,
             pernr TYPE pa0001-pernr,
             begda TYPE pa0001-begda,
           END OF itab.
    DATA : BEGIN OF lt_pa2001 OCCURS 0,
    pernr TYPE pa0001-pernr,
    awart TYPE pa2001-awart,
    begda TYPE pa2001-begda,
           END OF lt_pa2001.
    DATA : v_field(30) TYPE c.
    SELECT-OPTIONS : s_pernr FOR pa0001-pernr.
    SELECT pernr
           begda
      FROM pa0001
      INTO TABLE itab
      WHERE pernr IN s_pernr AND
            begda LE sy-datum AND
            endda GE sy-datum.
    IF NOT itab[] IS INITIAL.
      SORT itab BY pernr.
    ENDIF.
    LOOP AT itab.
      WRITE: /2 itab-pernr HOTSPOT ON,
              itab-begda.
    ENDLOOP.
    AT LINE-SELECTION.
      GET CURSOR FIELD v_field.
      CASE v_field.
        WHEN 'ITAB-PERNR'.
          PERFORM get_data USING itab-pernr.
      ENDCASE.
    *&      Form  GET_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM get_data  USING lv_pernr.
      CLEAR : lt_pa2001.refresh lt_pa2001.
      SELECT pernr awart begda
        FROM pa2001 INTO TABLE lt_pa2001
      WHERE pernr = lv_pernr.
    IF NOT LT_PA2001[] IS INITIAL.
      SORT LT_PA2001 BY PERNR.
    ENDIF.
    LOOP AT LT_PA2001.
      WRITE :/2 LT_PA2001-PERNR,
                LT_PA2001-AWART,
                LT_PA2001-BEGDA.
    ENDLOOP.
    ENDFORM.                    " GET_DATA
    thanks,
    maheedhar

    Here is the corrected code:
    *& Report  Z0310_TEST1
    REPORT  z0310_test1.
    TABLES : pa0001.
    DATA : BEGIN OF itab OCCURS 0,
    pernr TYPE pa0001-pernr,
    begda TYPE pa0001-begda,
    END OF itab.
    DATA : BEGIN OF lt_pa2001 OCCURS 0,
    pernr TYPE pa0001-pernr,
    awart TYPE pa2001-awart,
    begda TYPE pa2001-begda,
    END OF lt_pa2001.
    DATA : v_field(30) TYPE c.
    SELECT-OPTIONS : s_pernr FOR pa0001-pernr.
    SELECT pernr
    begda
    FROM pa0001
    INTO TABLE itab
    WHERE pernr IN s_pernr AND
    begda LE sy-datum AND
    endda GE sy-datum.
    IF NOT itab[] IS INITIAL.
      SORT itab BY pernr.
    ENDIF.
    LOOP AT itab.
      WRITE: /2 itab-pernr HOTSPOT ON,
      itab-begda.
      HIDE itab-pernr.
    ENDLOOP.
    AT LINE-SELECTION.
      GET CURSOR FIELD v_field.
      CASE v_field.
        WHEN 'ITAB-PERNR'.
          PERFORM get_data USING itab-pernr.
      ENDCASE.
    *& Form GET_DATA
    FORM get_data USING lv_pernr.
      CLEAR : lt_pa2001.REFRESH lt_pa2001.
      SELECT pernr awart begda
      FROM pa2001 INTO TABLE lt_pa2001
      WHERE pernr = lv_pernr.
      IF NOT lt_pa2001[] IS INITIAL.
        SORT lt_pa2001 BY pernr.
        LOOP AT lt_pa2001.
          WRITE :/2 lt_pa2001-pernr,
          lt_pa2001-awart,
          lt_pa2001-begda.
        ENDLOOP.
      ENDIF.
    ENDFORM. " GET_DATA
    Hope That Helps
    Anirban M.

  • Pf status in interactive report

    Hi,
    i have developed an interactive report and i have used menus to navigate from basic list to secondary lists and it worked fine.
    i tried to create two buttons in the application tool bar FORWARD and BACK to navigate in between basic and secondary lists.
    i used the same function code for both buttons and menus. now iam unable to navigate from basic list to secondary lists.
    before creating buttons on hte application tool bar the object was woking fine.
    do i need to assign seperate function code to buttons and meus.
    please let me know.

    Hi,
    Is it Possible for you to go the secondary index pages from the Primary index pages & viceversa also?
    With Regards,
    Sumodh.P

Maybe you are looking for

  • PDF Conversion in ECC5

    Hi, I have configured SCOT and while sending reports via scot the PDF conversino is not getting done properly. The report is getting converted to PDF but it is not getting displayed fully. Some parts are missing from right hand side and below. In the

  • Run button issue

    hi, Expert I am using Jdeveloper 11g 11.1.1.4 and build a ADF application. After I succesful compile my application and pressing the button 'Run' to run my application in intergratedWeblogicserver, the page always started from my application template

  • Explanation of Edge Detection of Digital Images

    Can anyone suggest the best links for the complete explanation of doing edge detection using java.

  • Download error/unable to download song from itunes?

    I bought songs from itunes store but i can not get them downloded. What I have to do? I have this message showing under the title"download error. Tap to try" And anotner message appears: Unable to download song, "name of song" could not be downloaded

  • Game installed but won't load

    I installed horse racing fantasy 3 and after installation I click on the icon and it opens and it says "loading" but nothing happens. The support for the game says its on my end i turned off firewalls and it still didnt work. I have dv6.1355dx someon