<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Regarding Interactive ALV using OOP concepts in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-interactive-alv-using-oop-concepts/m-p/3494415#M840469</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;Can anyone please send me the sample code for interactive ALV using OOP concepts.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Sandeep Reddy.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 28 Feb 2008 09:28:51 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-02-28T09:28:51Z</dc:date>
    <item>
      <title>Regarding Interactive ALV using OOP concepts</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-interactive-alv-using-oop-concepts/m-p/3494415#M840469</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;Can anyone please send me the sample code for interactive ALV using OOP concepts.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Sandeep Reddy.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Feb 2008 09:28:51 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-interactive-alv-using-oop-concepts/m-p/3494415#M840469</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-28T09:28:51Z</dc:date>
    </item>
    <item>
      <title>Re: Regarding Interactive ALV using OOP concepts</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-interactive-alv-using-oop-concepts/m-p/3494416#M840470</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try like this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZALV_OOP
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*

REPORT  zalv_oop.

*----------------------------------------------------------------------*
*       CLASS lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION .
  PUBLIC SECTION .
    METHODS:

*--Double-click control
    handle_double_click
    FOR EVENT double_click OF cl_gui_alv_grid
    IMPORTING e_row e_column es_row_no.

  PRIVATE SECTION.
ENDCLASS.                    "lcl_event_handler DEFINITION


*----------------------------------------------------------------------*
*       CLASS lcl_event_handler IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION .


*--Handle Double Click
  METHOD handle_double_click .
    PERFORM handle_double_click USING e_row e_column es_row_no .
  ENDMETHOD .                    "handle_double_click

ENDCLASS .                    "lcl_event_handler IMPLEMENTATION

TABLES : mseg.

DATA : BEGIN OF itab OCCURS 0,
        mblnr LIKE mseg-mblnr,
        matnr LIKE mseg-matnr,
        menge LIKE mseg-menge,
       END OF itab.

DATA : gr_alvgrid TYPE REF TO cl_gui_alv_grid,
       gr_ccontainer TYPE REF TO cl_gui_custom_container,
       gt_fcat TYPE lvc_t_fcat,
       gs_layo TYPE lvc_s_layo.


DATA gr_event_handler TYPE REF TO lcl_event_handler .

DATA : ok_code LIKE sy-ucomm.

DATA : t_mat LIKE mara-matnr.


DATA: variant TYPE disvariant.


SELECTION-SCREEN : BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_mblnr FOR mseg-mblnr.
SELECTION-SCREEN : END OF BLOCK blk1.


START-OF-SELECTION.

  SET SCREEN 100.


  CREATE OBJECT gr_event_handler .
  PERFORM get_data.

  PERFORM dis_data.


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  get_data
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM get_data.

  SELECT mblnr matnr menge FROM mseg INTO CORRESPONDING FIELDS OF TABLE itab
   WHERE mblnr IN s_mblnr.

  variant-report = sy-repid.
  variant-username = sy-uname.

ENDFORM.                    "get_data

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  dis_data
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM dis_data.

  IF gr_alvgrid IS INITIAL.

    CREATE OBJECT gr_ccontainer
      EXPORTING
        container_name              = 'CC_ALV'
      EXCEPTIONS
        cntl_error                  = 1
        cntl_system_error           = 2
        create_error                = 3
        lifetime_error              = 4
        lifetime_dynpro_dynpro_link = 5
        OTHERS                      = 6.
    IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

    CREATE OBJECT gr_alvgrid
      EXPORTING
        i_parent          = gr_ccontainer
      EXCEPTIONS
        error_cntl_create = 1
        error_cntl_init   = 2
        error_cntl_link   = 3
        error_dp_create   = 4
        OTHERS            = 5.
    IF sy-subrc &amp;lt;&amp;gt; 0.
*     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

    PERFORM create_fcat CHANGING gt_fcat.

    PERFORM create_layout CHANGING gs_layo.

    CALL METHOD gr_alvgrid-&amp;gt;set_table_for_first_display
      EXPORTING
        is_variant                    = variant
        i_save                        = 'A'
        is_layout                     = gs_layo
      CHANGING
        it_outtab                     = itab[]
        it_fieldcatalog               = gt_fcat
            .
    IF sy-subrc &amp;lt;&amp;gt; 0.
*     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

    SET HANDLER gr_event_handler-&amp;gt;handle_double_click FOR gr_alvgrid .

  ENDIF.
ENDFORM.                    "dis_data
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  create_fcat
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      &amp;lt;--P_GT_FCAT  text
*----------------------------------------------------------------------*
FORM create_fcat  CHANGING pt_fcat TYPE lvc_t_fcat.

  DATA : ls_fcat TYPE lvc_s_fcat.

  ls_fcat-fieldname = 'MBLNR'.
  ls_fcat-coltext = 'Material Doc.'.
  APPEND ls_fcat TO pt_fcat.

  ls_fcat-fieldname = 'MATNR'.
  ls_fcat-coltext = 'Material'.
  APPEND ls_fcat TO pt_fcat.

  ls_fcat-fieldname = 'MENGE'.
  ls_fcat-coltext = 'Quantity'.
  APPEND ls_fcat TO pt_fcat.

ENDFORM.                    " create_fcat
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  create_layout
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      &amp;lt;--P_GS_LAYO  text
*----------------------------------------------------------------------*
FORM create_layout  CHANGING ps_layo TYPE lvc_s_layo.

  ps_layo-zebra = 'X'.
ENDFORM.                    " create_layout
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  STATUS_0100  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'ZALV_OOP'.
*  SET TITLEBAR 'xxx'.

ENDMODULE.                 " STATUS_0100  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  USER_COMMAND_0100  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

  ok_code = sy-ucomm.

  CASE ok_code.
    WHEN 'BACK' OR 'UP' OR 'CANC'.
      LEAVE PROGRAM.
  ENDCASE.

ENDMODULE.                 " USER_COMMAND_0100  INPUT


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  handle_double_click
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      --&amp;gt;I_ROW      text
*      --&amp;gt;I_COLUMN   text
*      --&amp;gt;IS_ROW_NO  text
*----------------------------------------------------------------------*
FORM handle_double_click USING i_row TYPE lvc_s_row
                               i_column TYPE lvc_s_col
                               is_row_no TYPE lvc_s_roid.

  READ TABLE itab INDEX is_row_no-row_id .

  IF sy-subrc = 0 .
    IF i_column = 'MATNR'.
      t_mat = itab-matnr.
      SET PARAMETER ID 'MAT' FIELD t_mat.
      CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
      SET PARAMETER ID 'MAT' FIELD space.

    ELSEIF i_column = 'MBLNR'.

      CALL TRANSACTION 'MIGO'.
    ENDIF .
  ENDIF.
ENDFORM .                    "handle_double_click

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;here in screen 100 i have taken one custom control with name &lt;STRONG&gt;cc_alv&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward if usefull..&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Feb 2008 09:52:58 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-interactive-alv-using-oop-concepts/m-p/3494416#M840470</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-28T09:52:58Z</dc:date>
    </item>
    <item>
      <title>Re: Regarding Interactive ALV using OOP concepts</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-interactive-alv-using-oop-concepts/m-p/3494417#M840471</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;{code*"Table declarations...................................................&lt;/P&gt;&lt;P&gt;TABLES:&lt;/P&gt;&lt;P&gt;EKKO, " Purchasing Document Header&lt;/P&gt;&lt;P&gt;CDHDR, " Change document header&lt;/P&gt;&lt;P&gt;SSCRFIELDS. " Fields on selection screens&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*"Selection screen elements............................................&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS:&lt;/P&gt;&lt;P&gt;S_EBELN FOR EKKO-EBELN, " Purchasing Document Number&lt;/P&gt;&lt;P&gt;S_LIFNR FOR EKKO-LIFNR, " Vendor's account number&lt;/P&gt;&lt;P&gt;S_EKGRP FOR EKKO-EKGRP, " Purchasing group&lt;/P&gt;&lt;P&gt;S_BEDAT FOR EKKO-BEDAT, " Purchasing Document Date&lt;/P&gt;&lt;P&gt;S_UDATE FOR CDHDR-UDATE. " Creation date of the change&lt;/P&gt;&lt;P&gt;" document&lt;/P&gt;&lt;P&gt;*" Data declarations...................................................&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Field String to hold Purchase Document Number * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;BEGIN OF FS_EBELN,&lt;/P&gt;&lt;P&gt;EBELN(90) TYPE C, " Purchase Document Number&lt;/P&gt;&lt;P&gt;ERNAM TYPE EKKO-ERNAM, " Name of Person who Created&lt;/P&gt;&lt;P&gt;" the Object&lt;/P&gt;&lt;P&gt;LIFNR TYPE EKKO-LIFNR, " Vendor's account number&lt;/P&gt;&lt;P&gt;EKGRP TYPE EKKO-EKGRP, " Purchasing group&lt;/P&gt;&lt;P&gt;BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date&lt;/P&gt;&lt;P&gt;END OF FS_EBELN,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Field String to hold Purchase Document Header * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;BEGIN OF FS_EKKO,&lt;/P&gt;&lt;P&gt;EBELN TYPE EKKO-EBELN, " Purchasing Document Number&lt;/P&gt;&lt;P&gt;ERNAM TYPE EKKO-ERNAM, " Name of Person who Created the&lt;/P&gt;&lt;P&gt;" Object&lt;/P&gt;&lt;P&gt;LIFNR TYPE EKKO-LIFNR, " Vendor's account number&lt;/P&gt;&lt;P&gt;EKGRP TYPE EKKO-EKGRP, " Purchasing group&lt;/P&gt;&lt;P&gt;BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date&lt;/P&gt;&lt;P&gt;END OF FS_EKKO,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Field String to hold Account Number and name of the Vendor * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;BEGIN OF FS_LFA1,&lt;/P&gt;&lt;P&gt;LIFNR TYPE LFA1-LIFNR, " Account Number of Vendor&lt;/P&gt;&lt;P&gt;NAME1 TYPE LFA1-NAME1, " Name1&lt;/P&gt;&lt;P&gt;END OF FS_LFA1,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Field String to hold Change date and the name of the user * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;BEGIN OF FS_CDHDR,&lt;/P&gt;&lt;P&gt;OBJECTCLAS TYPE CDHDR-OBJECTCLAS, " Object Class&lt;/P&gt;&lt;P&gt;OBJECTID TYPE CDHDR-OBJECTID, " Object value&lt;/P&gt;&lt;P&gt;CHANGENR TYPE CDHDR-CHANGENR, " Document change number&lt;/P&gt;&lt;P&gt;USERNAME TYPE CDHDR-USERNAME, " User name&lt;/P&gt;&lt;P&gt;UDATE TYPE CDHDR-UDATE, " Creation date of the change&lt;/P&gt;&lt;P&gt;" document&lt;/P&gt;&lt;P&gt;END OF FS_CDHDR,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Field String to hold Change document items * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;BEGIN OF FS_CDPOS,&lt;/P&gt;&lt;P&gt;OBJECTCLAS TYPE CDPOS-OBJECTCLAS," Object class&lt;/P&gt;&lt;P&gt;OBJECTID(10) TYPE C, " Object Value&lt;/P&gt;&lt;P&gt;CHANGENR TYPE CDPOS-CHANGENR, " Document change number&lt;/P&gt;&lt;P&gt;TABNAME TYPE CDPOS-TABNAME, " Table Name&lt;/P&gt;&lt;P&gt;FNAME TYPE CDPOS-FNAME, " Field Name&lt;/P&gt;&lt;P&gt;VALUE_NEW TYPE CDPOS-VALUE_NEW, " New contents of changed field&lt;/P&gt;&lt;P&gt;VALUE_OLD TYPE CDPOS-VALUE_OLD, " Old contents of changed field&lt;/P&gt;&lt;P&gt;END OF FS_CDPOS,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Field String to hold Date Element Name * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;BEGIN OF FS_DATAELE,&lt;/P&gt;&lt;P&gt;TABNAME TYPE DD03L-TABNAME, " Table Name&lt;/P&gt;&lt;P&gt;FIELDNAME TYPE DD03L-FIELDNAME, " Field Name&lt;/P&gt;&lt;P&gt;ROLLNAME TYPE DD03L-ROLLNAME, " Data element (semantic domain)&lt;/P&gt;&lt;P&gt;END OF FS_DATAELE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Field String to hold Short Text of the Date Element * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;BEGIN OF FS_TEXT,&lt;/P&gt;&lt;P&gt;ROLLNAME TYPE DD04T-ROLLNAME, " Data element (semantic domain)&lt;/P&gt;&lt;P&gt;DDTEXT TYPE DD04T-DDTEXT, " Short Text Describing R/3&lt;/P&gt;&lt;P&gt;" Repository Objects&lt;/P&gt;&lt;P&gt;END OF FS_TEXT,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Field String to hold data to be displayed on the ALV grid * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;BEGIN OF FS_OUTTAB,&lt;/P&gt;&lt;P&gt;EBELN TYPE EKKO-EBELN, " Purchasing Document Number&lt;/P&gt;&lt;P&gt;ERNAM TYPE EKKO-ERNAM, " Name of Person who Created the&lt;/P&gt;&lt;P&gt;" Object&lt;/P&gt;&lt;P&gt;LIFNR TYPE EKKO-LIFNR, " Vendor's account number&lt;/P&gt;&lt;P&gt;EKGRP TYPE EKKO-EKGRP, " Purchasing group&lt;/P&gt;&lt;P&gt;BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date&lt;/P&gt;&lt;P&gt;WERKS TYPE LFA1-WERKS, " Plant&lt;/P&gt;&lt;P&gt;NAME1 TYPE LFA1-NAME1, " Name1&lt;/P&gt;&lt;P&gt;USERNAME TYPE CDHDR-USERNAME, " User name&lt;/P&gt;&lt;P&gt;UDATE TYPE CDHDR-UDATE, " Creation date of the change&lt;/P&gt;&lt;P&gt;" document&lt;/P&gt;&lt;P&gt;DDTEXT TYPE DD04T-DDTEXT, " Short Text Describing R/3&lt;/P&gt;&lt;P&gt;" Repository Objects&lt;/P&gt;&lt;P&gt;VALUE_NEW TYPE CDPOS-VALUE_NEW, " New contents of changed field&lt;/P&gt;&lt;P&gt;VALUE_OLD TYPE CDPOS-VALUE_OLD, " Old contents of changed field&lt;/P&gt;&lt;P&gt;END OF FS_OUTTAB,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Internal table to hold Purchase Document Number * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;T_EBELN LIKE STANDARD TABLE&lt;/P&gt;&lt;P&gt;OF FS_EBELN,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Internal table to hold Purchase Document Header * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;T_EKKO LIKE STANDARD TABLE&lt;/P&gt;&lt;P&gt;OF FS_EKKO,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Temp Internal table to hold Purchase Document Header * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;T_EKKO_TEMP LIKE STANDARD TABLE&lt;/P&gt;&lt;P&gt;OF FS_EKKO,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Internal table to hold Account number and Name of the Vendor * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;T_LFA1 LIKE STANDARD TABLE&lt;/P&gt;&lt;P&gt;OF FS_LFA1,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Internal Table to hold Change date and the name of the user * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;T_CDHDR LIKE STANDARD TABLE&lt;/P&gt;&lt;P&gt;OF FS_CDHDR,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Internal Table to hold Change document items * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;T_CDPOS LIKE STANDARD TABLE&lt;/P&gt;&lt;P&gt;OF FS_CDPOS,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Temp. Internal Table to hold Change document items * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;T_CDPOS_TEMP LIKE STANDARD TABLE&lt;/P&gt;&lt;P&gt;OF FS_CDPOS,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Internal Table to hold Data Element Name * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;T_DATAELE LIKE STANDARD TABLE&lt;/P&gt;&lt;P&gt;OF FS_DATAELE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Temp. Internal Table to hold Data Element Name * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;T_DATAELE_TEMP LIKE STANDARD TABLE&lt;/P&gt;&lt;P&gt;OF FS_DATAELE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Internal Table to hold Short Text of the Date Element * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;T_TEXT LIKE STANDARD TABLE&lt;/P&gt;&lt;P&gt;OF FS_TEXT,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Internal Table to hold data to be displayed on the ALV grid * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;T_OUTTAB LIKE STANDARD TABLE&lt;/P&gt;&lt;P&gt;OF FS_OUTTAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;C L A S S D E F I N I T I O N * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;CLASS LCL_EVENT_HANDLER DEFINITION DEFERRED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*" Data declarations...................................................&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Work variables * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;W_EBELN TYPE EKKO-EBELN, " Purchasing Document Number&lt;/P&gt;&lt;P&gt;W_LIFNR TYPE EKKO-LIFNR, " Vendor's account number&lt;/P&gt;&lt;P&gt;W_EKGRP TYPE EKKO-EKGRP, " Purchasing group&lt;/P&gt;&lt;P&gt;W_VALUE TYPE EKKO-EBELN, " Reflected Value&lt;/P&gt;&lt;P&gt;W_SPACE VALUE ' ', " Space&lt;/P&gt;&lt;P&gt;W_FLAG TYPE I, " Flag Variable&lt;/P&gt;&lt;P&gt;W_VARIANT TYPE DISVARIANT, " Variant&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ALV Grid &lt;/P&gt;&lt;P&gt;W_GRID TYPE REF TO CL_GUI_ALV_GRID,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Event Handler &lt;/P&gt;&lt;P&gt;W_EVENT_CLICK TYPE REF TO LCL_EVENT_HANDLER,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Field catalog table &lt;/P&gt;&lt;P&gt;T_FIELDCAT TYPE LVC_T_FCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN EVENT * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON S_EBELN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to validate Purchase Document Number. &lt;/P&gt;&lt;P&gt;PERFORM VALIDATE_PD_NUM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON S_LIFNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to validate Vendor Number. &lt;/P&gt;&lt;P&gt;PERFORM VALIDATE_VEN_NUM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON S_EKGRP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to validate Purchase Group. &lt;/P&gt;&lt;P&gt;PERFORM VALIDATE_PUR_GRP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION EVENT * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to select all Purchase orders. &lt;/P&gt;&lt;P&gt;PERFORM SELECT_PO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK W_FLAG EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to select Object values. &lt;/P&gt;&lt;P&gt;PERFORM SELECT_OBJ_ID.&lt;/P&gt;&lt;P&gt;CHECK W_FLAG EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to select Changed values. &lt;/P&gt;&lt;P&gt;PERFORM SELECT_CHANGED_VALUE.&lt;/P&gt;&lt;P&gt;CHECK W_FLAG EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to Select Purchase Orders. &lt;/P&gt;&lt;P&gt;PERFORM SELECT_PUR_DOC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to select Vendor Details. &lt;/P&gt;&lt;P&gt;PERFORM SELECT_VENDOR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to select Text for the Changed values. &lt;/P&gt;&lt;P&gt;PERFORM DESCRIPTION.&lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION EVENT * &lt;/P&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT T_EKKO IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to populate the Output Table. &lt;/P&gt;&lt;P&gt;PERFORM FILL_OUTTAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to build Field Catalog. &lt;/P&gt;&lt;P&gt;PERFORM PREPARE_FIELD_CATALOG CHANGING T_FIELDCAT.&lt;/P&gt;&lt;P&gt;CALL SCREEN 100.&lt;/P&gt;&lt;P&gt;ENDIF. " IF NOT T_EKKO...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS LCL_EVENT_HANDLER DEFINITION &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Defining Class which handles events &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;CLASS LCL_EVENT_HANDLER DEFINITION .&lt;/P&gt;&lt;P&gt;PUBLIC SECTION .&lt;/P&gt;&lt;P&gt;METHODS:&lt;/P&gt;&lt;P&gt;HANDLE_HOTSPOT_CLICK&lt;/P&gt;&lt;P&gt;FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;IMPORTING E_ROW_ID E_COLUMN_ID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS. " LCL_EVENT_HANDLER DEFINITION&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS LCL_EVENT_HANDLER IMPLEMENTATION &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Implementing the Class which can handle events &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;CLASS LCL_EVENT_HANDLER IMPLEMENTATION .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---Handle Double Click&lt;/P&gt;&lt;P&gt;METHOD HANDLE_HOTSPOT_CLICK .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to get the HotSpot Cell information. &lt;/P&gt;&lt;P&gt;PERFORM GET_CELL_INFO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SET PARAMETER ID 'BES' FIELD W_VALUE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'ME23N'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMETHOD. " HANDLE_HOTSPOT_CLICK&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS. " LCL_EVENT_HANDLER&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Module STATUS_0100 OUTPUT&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PBO Event &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;MODULE STATUS_0100 OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SET PF-STATUS 'OOPS'.&lt;/P&gt;&lt;P&gt;SET TITLEBAR 'TIT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to fill the Variant Structure &lt;/P&gt;&lt;P&gt;PERFORM FILL_VARIANT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF W_GRID IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE OBJECT W_GRID&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_SHELLSTYLE = 0 &lt;/P&gt;&lt;P&gt;I_LIFETIME = &lt;/P&gt;&lt;P&gt;I_PARENT = CL_GUI_CONTAINER=&amp;gt;SCREEN0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_APPL_EVENTS = &lt;/P&gt;&lt;P&gt;I_PARENTDBG = &lt;/P&gt;&lt;P&gt;I_APPLOGPARENT = &lt;/P&gt;&lt;P&gt;I_GRAPHICSPARENT = &lt;/P&gt;&lt;P&gt;I_NAME = &lt;/P&gt;&lt;P&gt;I_FCAT_COMPLETE = SPACE &lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;ERROR_CNTL_CREATE = 1&lt;/P&gt;&lt;P&gt;ERROR_CNTL_INIT = 2&lt;/P&gt;&lt;P&gt;ERROR_CNTL_LINK = 3&lt;/P&gt;&lt;P&gt;ERROR_DP_CREATE = 4&lt;/P&gt;&lt;P&gt;OTHERS = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC 0.&lt;/P&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;ENDIF. " IF SY-SUBRC 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD W_GRID-&amp;gt;SET_TABLE_FOR_FIRST_DISPLAY&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_BUFFER_ACTIVE = &lt;/P&gt;&lt;P&gt;I_BYPASSING_BUFFER = &lt;/P&gt;&lt;P&gt;I_CONSISTENCY_CHECK = &lt;/P&gt;&lt;P&gt;I_STRUCTURE_NAME = &lt;/P&gt;&lt;P&gt;IS_VARIANT = W_VARIANT&lt;/P&gt;&lt;P&gt;I_SAVE = 'A'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_DEFAULT = 'X' &lt;/P&gt;&lt;P&gt;IS_LAYOUT = &lt;/P&gt;&lt;P&gt;IS_PRINT = &lt;/P&gt;&lt;P&gt;IT_SPECIAL_GROUPS = &lt;/P&gt;&lt;P&gt;IT_TOOLBAR_EXCLUDING = &lt;/P&gt;&lt;P&gt;IT_HYPERLINK = &lt;/P&gt;&lt;P&gt;IT_ALV_GRAPHICS = &lt;/P&gt;&lt;P&gt;IT_EXCEPT_QINFO = &lt;/P&gt;&lt;P&gt;IR_SALV_ADAPTER = &lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;IT_OUTTAB = T_OUTTAB&lt;/P&gt;&lt;P&gt;IT_FIELDCATALOG = T_FIELDCAT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IT_SORT = &lt;/P&gt;&lt;P&gt;IT_FILTER = &lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;INVALID_PARAMETER_COMBINATION = 1&lt;/P&gt;&lt;P&gt;PROGRAM_ERROR = 2&lt;/P&gt;&lt;P&gt;TOO_MANY_LINES = 3&lt;/P&gt;&lt;P&gt;OTHERS = 4&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC 0.&lt;/P&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;ENDIF. " IF SY-SUBRC 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF. " IF W_GRID IS INITIAL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE OBJECT W_EVENT_CLICK.&lt;/P&gt;&lt;P&gt;SET HANDLER W_EVENT_CLICK-&amp;gt;HANDLE_HOTSPOT_CLICK FOR W_GRID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE. " STATUS_0100 OUTPUT&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Module USER_COMMAND_0100 INPUT&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PAI Event &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;MODULE USER_COMMAND_0100 INPUT.&lt;/P&gt;&lt;P&gt;CASE SY-UCOMM.&lt;/P&gt;&lt;P&gt;WHEN 'BACK'.&lt;/P&gt;&lt;P&gt;LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;WHEN 'EXIT'.&lt;/P&gt;&lt;P&gt;LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;WHEN 'CANCEL'.&lt;/P&gt;&lt;P&gt;LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;ENDMODULE. " USER_COMMAND_0100 INPUT&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form PREPARE_FIELD_CATALOG&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to build the Field catalog &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;--P_T_FIELDCAT Field Catalog Table &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM PREPARE_FIELD_CATALOG CHANGING PT_FIELDCAT TYPE LVC_T_FCAT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA LS_FCAT TYPE LVC_S_FCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Purchasing group... &lt;/P&gt;&lt;P&gt;LS_FCAT-FIELDNAME = 'EKGRP'.&lt;/P&gt;&lt;P&gt;LS_FCAT-REF_TABLE = 'EKKO'.&lt;/P&gt;&lt;P&gt;LS_FCAT-INTTYPE = 'C'.&lt;/P&gt;&lt;P&gt;LS_FCAT-OUTPUTLEN = '10'.&lt;/P&gt;&lt;P&gt;APPEND LS_FCAT TO PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;CLEAR LS_FCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Purchasing Document Number... &lt;/P&gt;&lt;P&gt;LS_FCAT-FIELDNAME = 'EBELN'.&lt;/P&gt;&lt;P&gt;LS_FCAT-REF_TABLE = 'EKKO' .&lt;/P&gt;&lt;P&gt;LS_FCAT-EMPHASIZE = 'C411'.&lt;/P&gt;&lt;P&gt;LS_FCAT-INTTYPE = 'C'.&lt;/P&gt;&lt;P&gt;LS_FCAT-OUTPUTLEN = '10'.&lt;/P&gt;&lt;P&gt;LS_FCAT-HOTSPOT = 'X'.&lt;/P&gt;&lt;P&gt;APPEND LS_FCAT TO PT_FIELDCAT .&lt;/P&gt;&lt;P&gt;CLEAR LS_FCAT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Name of Person who Created the Object... &lt;/P&gt;&lt;P&gt;LS_FCAT-FIELDNAME = 'ERNAM'.&lt;/P&gt;&lt;P&gt;LS_FCAT-REF_TABLE = 'EKKO'.&lt;/P&gt;&lt;P&gt;LS_FCAT-OUTPUTLEN = '15' .&lt;/P&gt;&lt;P&gt;APPEND LS_FCAT TO PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;CLEAR LS_FCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Purchasing Document Date... &lt;/P&gt;&lt;P&gt;LS_FCAT-FIELDNAME = 'BEDAT'.&lt;/P&gt;&lt;P&gt;LS_FCAT-REF_TABLE = 'EKKO'.&lt;/P&gt;&lt;P&gt;LS_FCAT-INTTYPE = 'C'.&lt;/P&gt;&lt;P&gt;LS_FCAT-OUTPUTLEN = '10'.&lt;/P&gt;&lt;P&gt;APPEND LS_FCAT TO PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;CLEAR LS_FCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Vendor's account number... &lt;/P&gt;&lt;P&gt;LS_FCAT-FIELDNAME = 'LIFNR'.&lt;/P&gt;&lt;P&gt;LS_FCAT-REF_TABLE = 'EKKO'.&lt;/P&gt;&lt;P&gt;LS_FCAT-INTTYPE = 'C'.&lt;/P&gt;&lt;P&gt;LS_FCAT-OUTPUTLEN = '10'.&lt;/P&gt;&lt;P&gt;APPEND LS_FCAT TO PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;CLEAR LS_FCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Account Number of Vendor or Creditor... &lt;/P&gt;&lt;P&gt;LS_FCAT-FIELDNAME = 'NAME1'.&lt;/P&gt;&lt;P&gt;LS_FCAT-REF_TABLE = 'LFA1'.&lt;/P&gt;&lt;P&gt;LS_FCAT-INTTYPE = 'C'.&lt;/P&gt;&lt;P&gt;LS_FCAT-OUTPUTLEN = '10'.&lt;/P&gt;&lt;P&gt;LS_FCAT-COLTEXT = 'Vendor Name'(001).&lt;/P&gt;&lt;P&gt;LS_FCAT-SELTEXT = 'Vendor Name'(001).&lt;/P&gt;&lt;P&gt;APPEND LS_FCAT TO PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;CLEAR LS_FCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Creation date of the change document... &lt;/P&gt;&lt;P&gt;LS_FCAT-FIELDNAME = 'UDATE'.&lt;/P&gt;&lt;P&gt;LS_FCAT-REF_TABLE = 'CDHDR'.&lt;/P&gt;&lt;P&gt;LS_FCAT-INTTYPE = 'C'.&lt;/P&gt;&lt;P&gt;LS_FCAT-OUTPUTLEN = '10'.&lt;/P&gt;&lt;P&gt;LS_FCAT-COLTEXT = 'Change Date'(002).&lt;/P&gt;&lt;P&gt;LS_FCAT-SELTEXT = 'Change Date'(002).&lt;/P&gt;&lt;P&gt;APPEND LS_FCAT TO PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;CLEAR LS_FCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;User name of the person responsible in change document... &lt;/P&gt;&lt;P&gt;LS_FCAT-FIELDNAME = 'USERNAME'.&lt;/P&gt;&lt;P&gt;LS_FCAT-REF_TABLE = 'CDHDR'.&lt;/P&gt;&lt;P&gt;LS_FCAT-INTTYPE = 'C'.&lt;/P&gt;&lt;P&gt;LS_FCAT-OUTPUTLEN = '10'.&lt;/P&gt;&lt;P&gt;LS_FCAT-COLTEXT = 'Modified by'(003).&lt;/P&gt;&lt;P&gt;LS_FCAT-SELTEXT = 'Modified by'(003).&lt;/P&gt;&lt;P&gt;APPEND LS_FCAT TO PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;CLEAR LS_FCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Short Text Describing R/3 Repository Objects... &lt;/P&gt;&lt;P&gt;LS_FCAT-FIELDNAME = 'DDTEXT'.&lt;/P&gt;&lt;P&gt;LS_FCAT-REF_TABLE = 'DD04T'.&lt;/P&gt;&lt;P&gt;LS_FCAT-INTTYPE = 'C'.&lt;/P&gt;&lt;P&gt;LS_FCAT-OUTPUTLEN = '15'.&lt;/P&gt;&lt;P&gt;APPEND LS_FCAT TO PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;CLEAR LS_FCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Old contents of changed field... &lt;/P&gt;&lt;P&gt;LS_FCAT-FIELDNAME = 'VALUE_OLD'.&lt;/P&gt;&lt;P&gt;LS_FCAT-REF_TABLE = 'CDPOS'.&lt;/P&gt;&lt;P&gt;LS_FCAT-INTTYPE = 'C'.&lt;/P&gt;&lt;P&gt;LS_FCAT-OUTPUTLEN = '12'.&lt;/P&gt;&lt;P&gt;APPEND LS_FCAT TO PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;CLEAR LS_FCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;New contents of changed field... &lt;/P&gt;&lt;P&gt;LS_FCAT-FIELDNAME = 'VALUE_NEW'.&lt;/P&gt;&lt;P&gt;LS_FCAT-REF_TABLE = 'CDPOS'.&lt;/P&gt;&lt;P&gt;LS_FCAT-INTTYPE = 'C'.&lt;/P&gt;&lt;P&gt;LS_FCAT-OUTPUTLEN = '12'.&lt;/P&gt;&lt;P&gt;APPEND LS_FCAT TO PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;CLEAR LS_FCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " PREPARE_FIELD_CATALOG&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form SELECT_PO&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to select all the Purchase Orders &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are no interface parameters to be passed to this subroutine. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM SELECT_PO .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT EBELN " Purchasing Document Number&lt;/P&gt;&lt;P&gt;ERNAM " Name of Person who Created&lt;/P&gt;&lt;P&gt;" the Object&lt;/P&gt;&lt;P&gt;LIFNR " Vendor's account number&lt;/P&gt;&lt;P&gt;EKGRP " Purchasing group&lt;/P&gt;&lt;P&gt;BEDAT " Purchasing Document Date&lt;/P&gt;&lt;P&gt;FROM EKKO&lt;/P&gt;&lt;P&gt;PACKAGE SIZE 10000&lt;/P&gt;&lt;P&gt;APPENDING TABLE T_EBELN&lt;/P&gt;&lt;P&gt;WHERE EBELN IN S_EBELN&lt;/P&gt;&lt;P&gt;AND BEDAT IN S_BEDAT.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;W_FLAG = 1.&lt;/P&gt;&lt;P&gt;MESSAGE S401(M8).&lt;/P&gt;&lt;P&gt;ENDIF. " IF SY-SUBRC NE 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " SELECT_PO&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form SELECT_OBJ_ID&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to select Object ID &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are no interface parameters to be passed to this subroutine. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM SELECT_OBJ_ID .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT T_EBELN IS INITIAL. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT OBJECTCLAS " Object Class&lt;/P&gt;&lt;P&gt;OBJECTID " Object value&lt;/P&gt;&lt;P&gt;CHANGENR " Document change number&lt;/P&gt;&lt;P&gt;USERNAME " User name&lt;/P&gt;&lt;P&gt;UDATE " Creation date&lt;/P&gt;&lt;P&gt;FROM CDHDR&lt;/P&gt;&lt;P&gt;INTO TABLE T_CDHDR&lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN T_EBELN&lt;/P&gt;&lt;P&gt;WHERE OBJECTID EQ T_EBELN-EBELN&lt;/P&gt;&lt;P&gt;AND UDATE IN S_UDATE&lt;/P&gt;&lt;P&gt;AND TCODE IN ('ME21N','ME22N','ME23N').&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDSELECT. &lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;W_FLAG = 1.&lt;/P&gt;&lt;P&gt;MESSAGE S833(M8) WITH 'Header Not Found'(031).&lt;/P&gt;&lt;P&gt;ENDIF. " IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF. " IF NOT T_EBELN IS INITIAL &lt;/P&gt;&lt;P&gt;ENDFORM. " SELECT_OBJ_ID&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form SELECT_CHANGED_VALUE&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to select Changed Values &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are no interface parameters to be passed to this subroutine. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM SELECT_CHANGED_VALUE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT T_CDHDR IS INITIAL. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT OBJECTCLAS " Object class&lt;/P&gt;&lt;P&gt;OBJECTID " Object value&lt;/P&gt;&lt;P&gt;CHANGENR " Document change number&lt;/P&gt;&lt;P&gt;TABNAME " Table Name&lt;/P&gt;&lt;P&gt;FNAME " Field Name&lt;/P&gt;&lt;P&gt;VALUE_NEW " New contents of changed field&lt;/P&gt;&lt;P&gt;VALUE_OLD " Old contents of changed field&lt;/P&gt;&lt;P&gt;FROM CDPOS&lt;/P&gt;&lt;P&gt;PACKAGE SIZE 10000&lt;/P&gt;&lt;P&gt;APPENDING TABLE T_CDPOS&lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN T_CDHDR&lt;/P&gt;&lt;P&gt;WHERE OBJECTCLAS EQ T_CDHDR-OBJECTCLAS&lt;/P&gt;&lt;P&gt;AND OBJECTID EQ T_CDHDR-OBJECTID&lt;/P&gt;&lt;P&gt;AND CHANGENR EQ T_CDHDR-CHANGENR.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;W_FLAG = 1.&lt;/P&gt;&lt;P&gt;MESSAGE S833(M8) WITH 'Item Not Found'(032).&lt;/P&gt;&lt;P&gt;ENDIF. " IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF. " IF NOT T_CDHDR IS INITIAL &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;T_CDPOS_TEMP] = T_CDPOS[.&lt;/P&gt;&lt;P&gt;ENDFORM. " SELECT_CHANGED_VALUE&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form SELECT_PUR_DOC&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to select Purchase Order Details &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are no interface parameters to be passed to this subroutine. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM SELECT_PUR_DOC .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT T_CDPOS IS INITIAL. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT T_EBELN BY EBELN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT T_CDPOS INTO FS_CDPOS.&lt;/P&gt;&lt;P&gt;READ TABLE T_EBELN INTO FS_EBELN WITH KEY EBELN =&lt;/P&gt;&lt;P&gt;FS_CDPOS-OBJECTID BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;DELETE TABLE T_EBELN FROM FS_EBELN.&lt;/P&gt;&lt;P&gt;ENDIF. " IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;ENDLOOP. " LOOP AT T_CDPOS...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT T_EBELN INTO FS_EBELN.&lt;/P&gt;&lt;P&gt;MOVE FS_EBELN-EBELN TO FS_EKKO-EBELN.&lt;/P&gt;&lt;P&gt;MOVE FS_EBELN-ERNAM TO FS_EKKO-ERNAM.&lt;/P&gt;&lt;P&gt;MOVE FS_EBELN-LIFNR TO FS_EKKO-LIFNR.&lt;/P&gt;&lt;P&gt;MOVE FS_EBELN-EKGRP TO FS_EKKO-EKGRP.&lt;/P&gt;&lt;P&gt;MOVE FS_EBELN-BEDAT TO FS_EKKO-BEDAT.&lt;/P&gt;&lt;P&gt;APPEND FS_EKKO TO T_EKKO.&lt;/P&gt;&lt;P&gt;ENDLOOP. " LOOP AT T_EBELN...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;T_EKKO_TEMP] = T_EKKO[.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF. " IF NOT T_CDPOS IS INITIAL &lt;/P&gt;&lt;P&gt;ENDFORM. " SELECT_PUR_DOC&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form SELECT_VENDOR&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to select Vendor details &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are no interface parameters to be passed to this subroutine. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM SELECT_VENDOR .&lt;/P&gt;&lt;P&gt;IF NOT T_EKKO IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT T_EKKO_TEMP BY LIFNR.&lt;/P&gt;&lt;P&gt;DELETE ADJACENT DUPLICATES FROM T_EKKO_TEMP COMPARING LIFNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT LIFNR " Account Number of Vendor or&lt;/P&gt;&lt;P&gt;" Creditor&lt;/P&gt;&lt;P&gt;NAME1 " Name 1&lt;/P&gt;&lt;P&gt;FROM LFA1&lt;/P&gt;&lt;P&gt;INTO TABLE T_LFA1&lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN T_EKKO_TEMP&lt;/P&gt;&lt;P&gt;WHERE LIFNR EQ T_EKKO_TEMP-LIFNR.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;MESSAGE S002(M8) WITH 'Master Details'(033).&lt;/P&gt;&lt;P&gt;ENDIF. " IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF. " IF NOT T_EKKO IS INITIAL&lt;/P&gt;&lt;P&gt;ENDFORM. " SELECT_VENDOR&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form DESCRIPTION&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to get the description &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are no interface parameters to be passed to this subroutine. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM DESCRIPTION .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT T_CDPOS IS INITIAL. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT T_CDPOS_TEMP BY TABNAME FNAME.&lt;/P&gt;&lt;P&gt;DELETE ADJACENT DUPLICATES FROM T_CDPOS_TEMP COMPARING TABNAME FNAME&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT TABNAME " Table Name&lt;/P&gt;&lt;P&gt;FIELDNAME " Field Name&lt;/P&gt;&lt;P&gt;ROLLNAME " Data element&lt;/P&gt;&lt;P&gt;FROM DD03L&lt;/P&gt;&lt;P&gt;INTO TABLE T_DATAELE&lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN T_CDPOS_TEMP&lt;/P&gt;&lt;P&gt;WHERE TABNAME EQ T_CDPOS_TEMP-TABNAME&lt;/P&gt;&lt;P&gt;AND FIELDNAME EQ T_CDPOS_TEMP-FNAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT T_DATAELE IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;T_DATAELE_TEMP] = T_DATAELE[.&lt;/P&gt;&lt;P&gt;SORT T_DATAELE_TEMP BY ROLLNAME.&lt;/P&gt;&lt;P&gt;DELETE ADJACENT DUPLICATES FROM T_DATAELE_TEMP COMPARING ROLLNAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT ROLLNAME " Data element&lt;/P&gt;&lt;P&gt;DDTEXT " Short Text Describing R/3&lt;/P&gt;&lt;P&gt;" Repository Objects&lt;/P&gt;&lt;P&gt;FROM DD04T&lt;/P&gt;&lt;P&gt;INTO TABLE T_TEXT&lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN T_DATAELE_TEMP&lt;/P&gt;&lt;P&gt;WHERE ROLLNAME EQ T_DATAELE_TEMP-ROLLNAME&lt;/P&gt;&lt;P&gt;AND DDLANGUAGE EQ SY-LANGU.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ENDIF. " IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF. " IF NOT T_DATAELE IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF. " IF NOT T_CDPOS IS INITIAL. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " DESCRIPTION&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form FILL_OUTTAB&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to populate the Outtab &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are no interface parameters to be passed to this subroutine. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM FILL_OUTTAB .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT T_CDHDR BY OBJECTCLAS OBJECTID CHANGENR.&lt;/P&gt;&lt;P&gt;SORT T_EKKO BY EBELN.&lt;/P&gt;&lt;P&gt;SORT T_LFA1 BY LIFNR.&lt;/P&gt;&lt;P&gt;SORT T_DATAELE BY TABNAME FIELDNAME.&lt;/P&gt;&lt;P&gt;SORT T_TEXT BY ROLLNAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT T_CDPOS INTO FS_CDPOS.&lt;/P&gt;&lt;P&gt;READ TABLE T_CDHDR INTO FS_CDHDR WITH KEY&lt;/P&gt;&lt;P&gt;OBJECTCLAS = FS_CDPOS-OBJECTCLAS&lt;/P&gt;&lt;P&gt;OBJECTID = FS_CDPOS-OBJECTID&lt;/P&gt;&lt;P&gt;CHANGENR = FS_CDPOS-CHANGENR&lt;/P&gt;&lt;P&gt;BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;MOVE FS_CDHDR-USERNAME TO FS_OUTTAB-USERNAME.&lt;/P&gt;&lt;P&gt;MOVE FS_CDHDR-UDATE TO FS_OUTTAB-UDATE.&lt;/P&gt;&lt;P&gt;READ TABLE T_EKKO INTO FS_EKKO WITH KEY&lt;/P&gt;&lt;P&gt;EBELN = FS_CDHDR-OBJECTID&lt;/P&gt;&lt;P&gt;BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;MOVE FS_EKKO-EBELN TO FS_OUTTAB-EBELN.&lt;/P&gt;&lt;P&gt;MOVE FS_EKKO-ERNAM TO FS_OUTTAB-ERNAM.&lt;/P&gt;&lt;P&gt;MOVE FS_EKKO-LIFNR TO FS_OUTTAB-LIFNR.&lt;/P&gt;&lt;P&gt;MOVE FS_EKKO-EKGRP TO FS_OUTTAB-EKGRP.&lt;/P&gt;&lt;P&gt;MOVE FS_EKKO-BEDAT TO FS_OUTTAB-BEDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE T_LFA1 INTO FS_LFA1 WITH KEY&lt;/P&gt;&lt;P&gt;LIFNR = FS_EKKO-LIFNR&lt;/P&gt;&lt;P&gt;BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;MOVE FS_LFA1-NAME1 TO FS_OUTTAB-NAME1.&lt;/P&gt;&lt;P&gt;ENDIF. " IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF. " IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF. " IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE FS_CDPOS-VALUE_NEW TO FS_OUTTAB-VALUE_NEW.&lt;/P&gt;&lt;P&gt;MOVE FS_CDPOS-VALUE_OLD TO FS_OUTTAB-VALUE_OLD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE T_DATAELE INTO FS_DATAELE WITH KEY&lt;/P&gt;&lt;P&gt;TABNAME = FS_CDPOS-TABNAME&lt;/P&gt;&lt;P&gt;FIELDNAME = FS_CDPOS-FNAME&lt;/P&gt;&lt;P&gt;BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;READ TABLE T_TEXT INTO FS_TEXT WITH KEY&lt;/P&gt;&lt;P&gt;ROLLNAME = FS_DATAELE-ROLLNAME&lt;/P&gt;&lt;P&gt;BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;MOVE FS_TEXT-DDTEXT TO FS_OUTTAB-DDTEXT.&lt;/P&gt;&lt;P&gt;ENDIF. " IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF. " IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND FS_OUTTAB TO T_OUTTAB.&lt;/P&gt;&lt;P&gt;CLEAR FS_OUTTAB.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " FILL_OUTTAB&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form GET_CELL_INFO&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to get the Cell Information &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--&amp;gt; W_VALUE Holds the value of Hotspot clicked &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM GET_CELL_INFO .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD W_GRID-&amp;gt;GET_CURRENT_CELL&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;E_ROW = &lt;/P&gt;&lt;P&gt;E_VALUE = W_VALUE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;E_COL = &lt;/P&gt;&lt;P&gt;ES_ROW_ID = &lt;/P&gt;&lt;P&gt;ES_COL_ID = &lt;/P&gt;&lt;P&gt;ES_ROW_NO = &lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;ENDFORM. " GET_CELL_INFO&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form VALIDATE_PD_NUM&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to validate Purchase Document Number &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are no interface parameters to be passed to this subroutine. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM VALIDATE_PD_NUM .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT S_EBELN[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT EBELN " Purchase Document Number&lt;/P&gt;&lt;P&gt;FROM EKKO&lt;/P&gt;&lt;P&gt;INTO W_EBELN&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE EBELN IN S_EBELN.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;CLEAR SSCRFIELDS-UCOMM.&lt;/P&gt;&lt;P&gt;MESSAGE E717(M8).&lt;/P&gt;&lt;P&gt;ENDIF. " IF SY-SUBRC NE 0&lt;/P&gt;&lt;P&gt;ENDIF. " IF NOT S_EBELN[]...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " VALIDATE_PD_NUM&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form VALIDATE_VEN_NUM&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to validate Vendor Number &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are no interface parameters to be passed to this subroutine. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM VALIDATE_VEN_NUM .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT S_LIFNR[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT LIFNR " Vendor Number&lt;/P&gt;&lt;P&gt;FROM LFA1&lt;/P&gt;&lt;P&gt;INTO W_LIFNR&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE LIFNR IN S_LIFNR.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;CLEAR SSCRFIELDS-UCOMM.&lt;/P&gt;&lt;P&gt;MESSAGE E002(M8) WITH W_SPACE.&lt;/P&gt;&lt;P&gt;ENDIF. " IF SY-SUBRC NE 0&lt;/P&gt;&lt;P&gt;ENDIF. " IF NOT S_LIFNR[]...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " VALIDATE_VEN_NUM&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form VALIDATE_PUR_GRP&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to validate the Purchase Group &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are no interface parameters to be passed to this subroutine. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM VALIDATE_PUR_GRP .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT S_EKGRP[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT EKGRP " Purchase Group&lt;/P&gt;&lt;P&gt;FROM T024&lt;/P&gt;&lt;P&gt;INTO W_EKGRP&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE EKGRP IN S_EKGRP.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;CLEAR SSCRFIELDS-UCOMM.&lt;/P&gt;&lt;P&gt;MESSAGE E622(M8) WITH W_SPACE.&lt;/P&gt;&lt;P&gt;ENDIF. " IF SY-SUBRC NE 0&lt;/P&gt;&lt;P&gt;ENDIF. " IF NOT S_EKFRP[]...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " VALIDATE_PUR_GRP&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form FILL_VARIANT&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine to fill the Variant Structure &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are no interface parameters to be passed to this subroutine &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM FILL_VARIANT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Filling the Variant structure &lt;/P&gt;&lt;P&gt;W_VARIANT-REPORT = SY-REPID.&lt;/P&gt;&lt;P&gt;W_VARIANT-USERNAME = SY-UNAME.&lt;/P&gt;&lt;P&gt;ENDFORM. " FILL_VARIANT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;{code}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;with regards,&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Feb 2008 09:57:22 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-interactive-alv-using-oop-concepts/m-p/3494417#M840471</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-28T09:57:22Z</dc:date>
    </item>
  </channel>
</rss>

