Navigation from ALV  Record to Tcode

Hello All,
I have  a requirement like this,
My zPROGARM is displaying one ALV output. When an user select one record/cell
it has to navigate to particular Tcode  .
Is it Possible?
Kindly advice me on this.
Thankyou,
Ram.

HI...,,
Check this program...
REPORT  YH627_PO_CHANGES_SOX_REPORTING MESSAGE-ID M8.
*"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,
Internal table to hold Purchase Document Number                     *
  T_EBELN LIKE STANDARD TABLE
            OF FS_EBELN.
Field String to hold Purchase Document Header                       *
DATA:
  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,
Internal table to hold Purchase Document Header                     *
T_EKKO LIKE STANDARD TABLE
          OF FS_EKKO.
Field String to hold Account Number and name of the Vendor          *
DATA:
  BEGIN OF FS_LFA1,
    LIFNR TYPE LFA1-LIFNR,             " Account Number of Vendor
    NAME1 TYPE LFA1-NAME1,             " Name1
  END OF FS_LFA1,
Internal table to hold Account number and Name of the Vendor        *
  T_LFA1 LIKE STANDARD TABLE
           OF FS_LFA1.
Field String to hold Change date and the name of the user           *
DATA:
  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,
Internal Table to hold Change date and the name of the user         *
  T_CDHDR LIKE STANDARD TABLE
            OF FS_CDHDR.
Field String to hold Change document items                          *
DATA:
  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,
Internal Table to hold Change document items                        *
  T_CDPOS LIKE STANDARD TABLE
            OF FS_CDPOS.
Field String to hold Date Element Name                              *
DATA:
  BEGIN OF FS_DATAELE,
    TABNAME   TYPE DD03L-TABNAME,      " Table Name
    FIELDNAME TYPE DD03L-FIELDNAME,    " Field Name
    ROLLNAME  TYPE DD03L-ROLLNAME,     " Data element
  END OF FS_DATAELE,
Internal Table to hold Data Element Name                            *
  T_DATAELE LIKE STANDARD TABLE
              OF FS_DATAELE.
Field String to hold Short Text of the Date Element                 *
DATA:
  BEGIN OF FS_TEXT,
    ROLLNAME TYPE DD04T-ROLLNAME,      " Data element
    DDTEXT   TYPE DD04T-DDTEXT,        " Short Text
  END OF FS_TEXT,
Internal Table to hold Short Text of the Date Element               *
  T_TEXT LIKE STANDARD TABLE
           OF FS_TEXT.
Field String to hold data to be displayed on the ALV grid           *
DATA:
  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 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
*--- ALV Grid
    W_GRID      TYPE REF TO CL_GUI_ALV_GRID,
*--- Event Handler
    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.
  PERFORM VALIDATE_PD_NUM.
AT SELECTION-SCREEN ON S_LIFNR.
  PERFORM VALIDATE_VEN_NUM.
AT SELECTION-SCREEN ON S_EKGRP.
  PERFORM VALIDATE_PUR_GRP.
                      START-OF-SELECTION EVENT                      *
START-OF-SELECTION.
  PERFORM SELECT_PO.
  PERFORM SELECT_OBJ_ID.
  PERFORM SELECT_CHANGED_VALUE.
  PERFORM SELECT_PUR_DOC.
  PERFORM SELECT_VENDOR.
  PERFORM DESCRIPTION.
                      END-OF-SELECTION EVENT                        *
END-OF-SELECTION.
  IF NOT T_EKKO IS INITIAL.
    PERFORM FILL_OUTTAB.
  ENDIF.                               " IF NOT T_EKKO...
  PERFORM PREPARE_FIELD_CATALOG CHANGING T_FIELDCAT .
  CALL SCREEN 100.
      CLASS LCL_EVENT_HANDLER DEFINITION
<b>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</b> DEFINITION
      CLASS LCL_EVENT_HANDLER IMPLEMENTATION
CLASS LCL_EVENT_HANDLER IMPLEMENTATION .
*---Handle Double Click
<b>  METHOD HANDLE_HOTSPOT_CLICK .
    PERFORM GET_CELL_INFO.
    SET PARAMETER ID 'BES' FIELD W_VALUE.
    CALL TRANSACTION 'ME23N'.
  ENDMETHOD.                           " HANDLE_HOTSPOT_CLICK</b>
ENDCLASS.                              " LCL_EVENT_HANDLER
*&      Module  STATUS_0100  OUTPUT
      PBO Event
MODULE STATUS_0100 OUTPUT.
  IF T_OUTTAB IS INITIAL.
    LEAVE PROGRAM.
  ENDIF.                               " IF T_OUTTAB...
  SET PF-STATUS 'OOPS'.
  SET TITLEBAR 'TIT'.
  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                    =
       I_SAVE                        =
       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 EVENT_CLICK.
  SET HANDLER 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.
  LS_FCAT-FIELDNAME = 'EKGRP'(011).
  LS_FCAT-REF_TABLE = 'EKKO'(002).
  LS_FCAT-INTTYPE   = 'C'(003).
  LS_FCAT-OUTPUTLEN = '10'.
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
<b>  LS_FCAT-FIELDNAME = 'EBELN'(001).
  LS_FCAT-REF_TABLE = 'EKKO'(002) .
  LS_FCAT-EMPHASIZE = 'C411'(007).
  LS_FCAT-INTTYPE   = 'C'(003).
  LS_FCAT-OUTPUTLEN = '10'.
  LS_FCAT-HOTSPOT   = 'X'(004).
  APPEND LS_FCAT TO PT_FIELDCAT .
  CLEAR LS_FCAT .</b>
  LS_FCAT-FIELDNAME = 'ERNAM'(006) .
  LS_FCAT-REF_TABLE = 'EKKO'(002) .
  LS_FCAT-OUTPUTLEN = '15' .
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
  LS_FCAT-FIELDNAME = 'BEDAT'(013).
  LS_FCAT-REF_TABLE = 'EKKO'(002).
  LS_FCAT-INTTYPE   = 'C'(003).
  LS_FCAT-OUTPUTLEN = '10'.
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
  LS_FCAT-FIELDNAME = 'LIFNR'(009).
  LS_FCAT-REF_TABLE = 'EKKO'(002).
  LS_FCAT-INTTYPE   = 'C'(003).
  LS_FCAT-OUTPUTLEN = '10'.
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
  LS_FCAT-FIELDNAME = 'NAME1'(015).
  LS_FCAT-REF_TABLE = 'LFA1'(016).
  LS_FCAT-INTTYPE   = 'C'(003).
  LS_FCAT-OUTPUTLEN = '10'.
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
  LS_FCAT-FIELDNAME = 'UDATE'(021).
  LS_FCAT-REF_TABLE = 'CDHDR'(019).
  LS_FCAT-INTTYPE   = 'C'(003).
  LS_FCAT-OUTPUTLEN = '10'.
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
  LS_FCAT-FIELDNAME = 'USERNAME'(018).
  LS_FCAT-REF_TABLE = 'CDHDR'(019).
  LS_FCAT-INTTYPE   = 'C'(003).
  LS_FCAT-OUTPUTLEN = '10'.
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
  LS_FCAT-FIELDNAME = 'DDTEXT'(023).
  LS_FCAT-REF_TABLE = 'DD04T'(024).
  LS_FCAT-INTTYPE   = 'C'(003).
  LS_FCAT-OUTPUTLEN = '15'.
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
  LS_FCAT-FIELDNAME = 'VALUE_OLD'(029).
  LS_FCAT-REF_TABLE = 'CDPOS'(027).
  LS_FCAT-INTTYPE   = 'C'(003).
  LS_FCAT-OUTPUTLEN = '12'.
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
  LS_FCAT-FIELDNAME = 'VALUE_NEW'(026).
  LS_FCAT-REF_TABLE = 'CDPOS'(027).
  LS_FCAT-INTTYPE   = 'C'(003).
  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
    INTO TABLE T_EBELN
   WHERE EBELN IN S_EBELN
     AND BEDAT IN S_BEDAT.
IF SY-SUBRC NE 0.
   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').
   IF SY-SUBRC NE 0.
     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
      INTO 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.
    IF SY-SUBRC NE 0.
      MESSAGE S833(M8) WITH 'Item Not Found'(032).
    ENDIF.                             " IF SY-SUBRC NE 0.
  ENDIF.                               " IF NOT T_CDHDR IS INITIAL
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...
  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.
    SELECT LIFNR                       " Account Number of Vendor or
                                       " Creditor
           NAME1                       " Name 1
      FROM LFA1
      INTO TABLE T_LFA1
   FOR ALL ENTRIES IN T_EKKO
     WHERE LIFNR EQ T_EKKO-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.
    SELECT TABNAME                     " Table Name
           FIELDNAME                   " Field Name
           ROLLNAME                    " Data element
      FROM DD03L
      INTO TABLE T_DATAELE
   FOR ALL ENTRIES IN T_CDPOS
     WHERE TABNAME EQ T_CDPOS-TABNAME
       AND FIELDNAME EQ T_CDPOS-FNAME.
    IF NOT T_DATAELE IS INITIAL.
      SELECT ROLLNAME                  " Data element
             DDTEXT                    " Short Text Describing R/3
                                       " Repository Objects
        FROM DD04T
        INTO TABLE T_TEXT
     FOR ALL ENTRIES IN T_DATAELE
       WHERE ROLLNAME EQ T_DATAELE-ROLLNAME
         AND DDLANGUAGE EQ 'EN'.
      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 OBJECTID.
  SORT T_CDPOS BY OBJECTCLAS OBJECTID CHANGENR.
  SORT T_LFA1  BY LIFNR.
  SORT T_DATAELE BY TABNAME FIELDNAME.
  SORT T_TEXT BY ROLLNAME.
  LOOP AT T_EKKO INTO FS_EKKO.
    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_CDHDR INTO FS_CDHDR WITH KEY OBJECTID = FS_EKKO-EBELN
                                                          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_CDPOS INTO FS_CDPOS WITH KEY
                                      OBJECTCLAS = FS_CDHDR-OBJECTCLAS
                                      OBJECTID   = FS_CDHDR-OBJECTID
                                      CHANGENR   = FS_CDHDR-CHANGENR
                                                          BINARY SEARCH.
         IF SY-SUBRC EQ 0.
           MOVE FS_CDPOS-VALUE_OLD TO FS_OUTTAB-VALUE_OLD.
           MOVE FS_CDPOS-VALUE_NEW TO FS_OUTTAB-VALUE_NEW.
           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.
         ENDIF.                        " IF SY-SUBRC EQ 0.
      ENDIF.                           " IF SY-SUBRC EQ 0.
    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.
  APPEND FS_OUTTAB TO T_OUTTAB.
  ENDLOOP.                             " LOOP AT T_EKKO...
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.
      MESSAGE E717(M8).
    ENDIF.                             " IF SY-SUBRC NE 0
  ENDIF.                               " IF NOT S_EBELN[]...
CLEAR SSCRFIELDS-UCOMM.
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.
      MESSAGE E002(M8) WITH W_SPACE.
    ENDIF.                             " IF SY-SUBRC NE 0
  ENDIF.                               " IF NOT S_LIFNR[]...
CLEAR SSCRFIELDS-UCOMM.
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.
      MESSAGE E622(M8) WITH W_SPACE.
    ENDIF.                             " IF SY-SUBRC NE 0
  ENDIF.                               " IF NOT S_EKFRP[]...
CLEAR SSCRFIELDS-UCOMM.
ENDFORM.                               " VALIDATE_PUR_GRP

Similar Messages

  • Navigating from ME49 to ME47 tcode 'General object service' icon missing

    Hi All ,
      We have scenario wherein we are navigating from transaction ME49 to ME47 . 
      In ME47 'General Object Services' icon is missing .
      When we direcly go to ME47  , it is working fine .
    If any of you come across this issue , Pl.provide inputs .
    Thanks in Advance,

    1.5-3 minute boot up as opposed to 15-20 seconds
    And
    why it takes a long time to load a lot of things.
    I have restored this
    from a time machine partition.
    TimeMachine is only a backup and restore, it won't fix issues in software and according to your information, doesn't even optimize the restore for best performance on boot hard drives.
    What you need to do to regain your speed is to understand how your machine works
    Why is my computer slow?
    Fix any and all issues in software following this list of fixes
    ..Step by Step to fix your Mac
    Then follow this defrag method I've outlined
    How to safely defrag a Mac's hard drive
    Most commonly used backup methods
    There shouldn't be need to reinstall OS X fresh unless your having file structure issues which if they are should appear when in the Steps, which then a zero erase and install will cure as well as any bad sector issues, the defrag step wouldn't be necessarry on a freshly installed system obviously as the files are written all together, not in portions all over the drive.
    Hope this assists.

  • Navigation from ALV

    Hi all,
    On executing my program i get ALV with names of reports displayed. My requirement is that on clicking on the report name, I should be directed to SE38, where the corresponding report is opened in 'Change' mode.
    Please suggest how I can achieve this.

    REPORT  zvishal_alv.
    TYPE-POOLS: slis.
    TYPES: BEGIN OF ty_data,
           sr_no    TYPE i,
           rep_name TYPE string,
           END OF ty_data.
    DATA: itab        TYPE TABLE OF ty_data,
          wa          TYPE ty_data,
          it_fcat     TYPE SLIS_T_FIELDCAT_ALV,
          wa_fcat     LIKE LINE OF it_fcat,
          bdcdata_tab TYPE TABLE OF bdcdata,
          opt         TYPE ctu_params,
          bdcdata_wa  TYPE bdcdata,
          it_evt      TYPE slis_t_event,
          wa_evt      LIKE LINE OF it_evt.
    wa_evt-form = 'USER_COMMAND'.
    wa_evt-name = 'USER_COMMAND'.
    APPEND wa_evt TO it_evt.
    *fill test data
    wa-sr_no = '1'.
    wa-rep_name = 'ZTEST1'.
    APPEND wa TO itab.
    wa-sr_no = '2'.
    wa-rep_name = 'ZTEST2'.
    APPEND wa TO itab.
    wa-sr_no = '3'.
    wa-rep_name = 'ZTEST3'.
    APPEND wa TO itab.
    wa_fcat-col_pos   = '1'.
    wa_fcat-fieldname =  'SR_NO'.
    wa_fcat-tabname   = 'ITAB'.
    wa_fcat-seltext_m   = 'Serial no'.
    append wa_fcat to it_fcat.
    wa_fcat-col_pos   = '2'.
    wa_fcat-fieldname =  'REP_NAME'.
    wa_fcat-tabname   = 'ITAB'.
    wa_fcat-seltext_m   = 'Report Name'.
    append wa_fcat to it_fcat.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
        i_callback_program                = sy-repid
        i_callback_user_command           = 'USER_COMMAND'
       IT_FIELDCAT                        = it_fcat
       it_events                          = it_evt
      TABLES
        t_outtab                          = itab
    EXCEPTIONS
       program_error                     = 1
       OTHERS                            = 2
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    FORM user_command USING v_ucomm LIKE sy-ucomm
                            wa_selrow TYPE slis_selfield.
    CASE v_ucomm.
      WHEN '&IC1'.
    READ TABLE itab INTO wa INDEX wa_selrow-tabindex.
    CLEAR bdcdata_wa.
    bdcdata_wa-program  = 'SAPLWBABAP'.
    bdcdata_wa-dynpro   = '0100'.
    bdcdata_wa-dynbegin = 'X'.
    bdcdata_wa-fnam = 'RS38M-PROGRAMM'.
    bdcdata_wa-fval = wa-rep_name.
    APPEND bdcdata_wa TO bdcdata_tab.
    *CLEAR bdcdata_wa.
    *bdcdata_wa-fnam = 'PROGRAMM'.
    *bdcdata_wa-fval = wa-rep_name.
    *APPEND bdcdata_wa TO bdcdata_tab.
    opt-dismode = 'E'.
    opt-defsize = 'X'.
    CALL TRANSACTION 'SE38' USING bdcdata_tab OPTIONS FROM opt.
    ENDCASE.
      ENDFORM.
    activate this code and test
    Thanks
    Vishal kapoor

  • Downloading records in in excel sheet from ALV.

    Hi,
    I am downloading Records from ALV GRID DIsplay to Excel sheet but i am unable to get all records that are displayed in ALV report.
    I am getting only 73 records if i have only 180
    Any inputs please for correctine the error
    Regards
    Rasheed.

    hi
    you can follow these stapes and get ur work done
    go to List > select Export  > Spreadsheet or just click the excel icon from the tool bar.This would download the data to excel.
    hope this helps
    regards
    Aakash Banga

  • Call tcode from alv report and passing  group of values

    hi all .
    i want to call tcode from alv report and passing an internal table or group of values to a selection option of that t code ? how
    ex. passing group of GL to fbl3n and display the detials of all .
    thank you

    Dear,
    You have done a small mistake
    --> rspar_line-option = 'EQ'.
         rspar_line-HIGH = PDATE-HIGH.
    u r passing "high" value and in "option u r passing "EQ" so how it will work!!!
    So if u r passing only 1 date or more dates like 01.01.2010 , 15.02.2010 , 10.03.2010 then pass
    rspar_line-selname = 'SO_BUDAT'.
    rspar_line-kind = 'S'.
    rspar_line-sign = 'I'.
    rspar_line-option = 'EQ'.
    rspar_line-LOW = PDATE-HIGH.
    APPEND rspar_line TO rspar_tab.
    or if u r passing low & high date means in range like 01.01.2010 to 30.01.2010, then pass
    rspar_line-selname = 'SO_BUDAT'.
    rspar_line-kind = 'S'.
    rspar_line-sign = 'I'.
    rspar_line-option = 'BT''.
    rspar_line-LOW = PDATE-LOW.
    rspar_line-HIGH = PDATE-HIGH.
    APPEND rspar_line TO rspar_tab.
    try above code , hope it helps...
    i think u cannot use "call transaction using bdcdata" in ur case bcoz as u said in ur 1st post u want to display the details of all but still if u want to use then u should pass all parameters in  loop.
    PROGRAM
    DYNPRO
    DYNBEGIN
    FNAM
    FVAL
    ex:-
    LOOP AT GT_TEMP INTO GS_TEMP.
    CLEAR bdcdata_wa.
    bdcdata_PROGRAM = 'SAPXXXX'.
    bdcdata_DYNPRO = '1000'.
    bdcdata_DYNBEGIN = 'X'.
    bdcdata_wa-fnam = '''.
    bdcdata_wa-fval = ''.
    APPEND bdcdata_wa TO bdcdata_tab.
    CLEAR bdcdata_wa.
    bdcdata_PROGRAM = ''.
    bdcdata_DYNPRO = ''.
    bdcdata_DYNBEGIN = ''.
    bdcdata_wa-fnam = 'SD_SAKNR'.
    bdcdata_wa-fval = GS_TEMP-GLACCOUNT.
    APPEND bdcdata_wa TO bdcdata_tab.
    CLEAR bdcdata_wa.
    bdcdata_PROGRAM = ''.
    bdcdata_DYNPRO = ''.
    bdcdata_DYNBEGIN = ''.
    bdcdata_wa-fnam = 'BDC_OKCODE'.
    bdcdata_wa-fval = 'XXX'.
    APPEND bdcdata_wa TO bdcdata_tab.
    ENDLOOP.
    try above code if u r using call transaction...
    Edited by: mihir6666 on Jul 9, 2011 3:10 PM
    Edited by: mihir6666 on Jul 9, 2011 3:11 PM
    Edited by: mihir6666 on Jul 9, 2011 3:13 PM

  • Download only selected record from ALV

    Hi
      I want to download only selected records from ALV output with button.
    i hav to fix the button on ALV screen using &ZDL whenever user presses the button record should be downloaded.
    Pl with coding
    its very very urgent.

    Hi ,
    i dont have the exact code which suits to your requirement
    but declare the internal table
    like
    data: begin of itab occurs 0,
      check type c,
    fields
    end of itab.
    while filling the field catalog
    fieldcatalog-checkbox = 'X'
    for this check field.
    and display the grid
    now write this subroutine
    *&      Form  USER_COMMAND
          Called from within the ALV processes. Currently, '&IC1' is used
          to process the hotspot and display the document 'picked' by the
          user.
          PV_UCOMM    contains the sy-ucomm from ALV
          SELFIELD is a structure that contains all the data required to
                   process a user selection. The following is an example
                   of the SELFIELD structure and sample values:
    FORM USER_COMMAND USING PV_UCOMM LIKE SY-UCOMM
                            SELFIELD TYPE SLIS_SELFIELD.
      CASE PV_UCOMM.
        WHEN '&IC1'.
          loop at itab where check = 'X'.
    append all these records to another internal table itab1
         endloop.
    call function gui_download.
    pass the internal table itab1 in the tables statement
    and also you have to give the file path that may be static or dynamic
    if dynamic you have to call the function module
    f4_filename
    and get the filename and pass the same value to gui_download
    that will be download to the above said path
    endcase.
    end form.
    reward points if helpful,
    thanks & regards,
    venkatesh

  • Taking download into excel from ALV Grid - header is printing in two lines

    Hi All,
    I have a scenario where I am taking the download from ALV grid to an excel sheet. Now the header of the ALV (column names) is appearing in two lines in the downloaded excel sheet while items (records of the ALV table) are getting displayed in a single line.
    This download is taken from the standard download to local file (spreadsheet) button provided by SAP for ALVs.
    I am using function module "Reuse_alv_grid_display" for the purpose.
    Can somebody provide an idea how I can avoid the header printing in two lines and keep the length as it is.
    Thanks in Advance,
    Chandan

    Hi..
    1. Pass header name in internal table appned first line.
    2. after that pass u r data .
    3. Use  FM. WS_DOWNLOAD 
    Salil ......
    Edited by: salil chavan on Nov 26, 2008 11:07 AM

  • Downloads from ALV GRID-Text conversion to dates in EXCEL

    When downloading table displays of data from ALV-GRID for excel spreadsheet, we end of with files that have a header and various line ifnromation.  IF we manually clear up the display, then we can have the individicual column headers used and force them to text but if we just call the file up as an EXCEL spreadsheet, some part numbers such 12-3465 appear in Excel as Dec-65.
    The following is an example of the record (but it is word wrapped within this display limit).  In actuality, the verbage enclosed with the <b> represent the start of the  lines that have actual display data running out about 90 characters.
    Suggestions on how to make the download immediately correct in Excel direct from SAP ALV-GRID without cleaning out the heading lines and manually forcing the affected columns to TEXT format?
    thanks
    <b>03/02/2007</b>                                                                    Dynamic List Display                                                                                1
    <b>Materials-Inforecord Details Report</b>
    <b>Purchasing Org: ILMO</b>
                        <b>Report Run Date:03/02/2007</b>                    <b>Report Time:14:31:16</b>
         <b>Plnt     Mat Grp     Vendor     Name 1     Material     Material</b> description     Vendor Cat     Mfr     MPN     PC     Item Chg.     OUn      Eq to     BUn     Net price     Per     OPUn     Inforecord     PGr     Mv Avg        per     ValCl
         <b>0042     04     106070     BURROWS COMPANY</b>     184110     Glv Exam Ltx Non Ster     02-5001     TILLOTSON     02-5001               CA     2,000     EA        93.40      1     CA     5300006999     999     93.40     2,000     6438

    there are different options to export to excel which all behave differently, if you go for the menu ->export it differs from the export button from the alv buttonbar.
    try the different export to excel options perhaps there is one that behaves the way you want
    kind regards
    arthur de smidt

  • Navigate from ALV list to normal Report

    Hi ,
    I am working on a ALV report where it will display the list of materials and by selecting these materials from the list and process them using a custom button , it should take me to the normal report which give the log from that material processing.
    Any ideas navigating from AVL to normal report in the same program would be appriciated.
    Thank you.

    Hi,
    if you use drill down you have to define header print twice:
    TOP-OF-PAGE.
      perform 050print_header .
    END-OF-PAGE.
    TOP-OF-PAGE DURING LINE-SELECTION.
      perform 050print_header .
    END-OF-PAGE.

  • Issue with Data download to excel from ALV

    Hi,
    I am trying to download data to excel from ALV.
    The number of records are 26000.
    When I am trying to download I am getting an error displaying a pop up saying that
    problems came up in the following areas during the load
    TABLE
    The log displayed is not clear.
    I need to know the limitations while downloading to excel... I tried in SDN but of no use. I am using office 2007.
    What is the max downloading limit(MB)
    What must be the Length of line that can be downloaded.
    Regards

    Hi ,
    First check whether your ALV grid OUTPUT   is Consistent or Not   .
    if there are any inconsistency  then you need to rectify that  .
    for Checking COnsistency / Inconsistency  .do following steps
    1) execute ALV report 
    2) Press Shift+Mouse Right Button (Twice)  in blank area of report 
    3) you will get result   whether ALV is good or not .
    regards
    Deepak.

  • Transfer data from ALV to Z table

    Hi,
    I need to confirm the exact procedure to transfer data from ALV into z table.I am entering few values at runtime in the ALV & need to populate the z table with the same.
    I created a z table,it has been assigned a internal table & work area.A loop is there on the internal table passed to fieldcatalog.
    LOOP AT GIT_EKPO INTO GS_EKPO.
        LS_ZPS005-EBELN = GS_EKPO-EBELN.
        LS_ZPS005-EBELP = GS_EKPO-EBELP.
        LS_ZPS005-ERECDAT = GS_EKPO-ERDAT. "this field is not passing value into z table
        LS_ZPS005-LINEID = SY-TABIX.
        LS_ZPS005-POQTY = GS_EKPO-POQTY.
        LS_ZPS005-EREQTY = GS_EKPO-EREQTY. "this field is not passing value into z table
    ENDLOOP.
      INSERT INTO ZPS005 VALUES LS_ZPS005.
    When I assign the values from Internal table into internal table of z table,the values in fields populated at runtime does not come.
    Please help me with your suggestions on the same.
    Thanks.

    Hi,
    I tried the procedure,but do I need to include this before method set_table_for_first_display?
    You can have a look at the whole code.Please let me know of a possible solution.Looking forward to an early reply.
    Thanks.
    TABLES: EKKO,
            EKPO,
            ZPS005.
    INITIALIZATION.
    PERFORM CREATE_FIELD_CATLOG.
                               Types Declaration                          *
    *Structure for EKPO table
      TYPES: BEGIN OF TYPE_EKPO,
              EBELN TYPE EKPO-EBELN, "PURCHSE ORDER NUMBER
              EBELP TYPE EKPO-EBELP, "Item Number of Purchasing Document
              POQTY TYPE EKPO-MENGE, "Purchase Order Quantity
              ERDAT TYPE SY-DATUM, "Date on Which Record Was Created
             LINEID TYPE ZPS005-LINEID, "Unique identification of document line
              EREQTY TYPE ZPS005-EREQTY, "Erection Quantity
         END OF TYPE_EKPO.
                                        Data                              *
               Data Declaration for Internal Table & Work Area            *
    *INTERNAL TABLE FOR EKPO TABLE
      DATA:LIT_EKPO TYPE TABLE OF EKPO,
           LS_EKPO TYPE EKPO.
    *SECOND INTERNAL TABLE FOR EKPO TABLE
      DATA: GIT_EKPO TYPE TABLE OF TYPE_EKPO.
      DATA: GS_EKPO TYPE TYPE_EKPO.
    *INTERNAL TABLE FOR FIELD CATALOG
      DATA: LIT_FIELDCAT TYPE lvc_t_fcat,
            LS_FIELDCAT LIKE LINE OF LIT_FIELDCAT. "WORK AREA FOR FIELD CATALOG
    *INTERNAL TABLE FOR Z TABLE ZPS005
      DATA: LIT_ZPS005 TYPE TABLE OF ZPS005,
            LS_ZPS005 TYPE ZPS005.
                            ALV GRID Data Declaration                     *
      DATA: V_CONTAINER TYPE REF TO cl_gui_custom_CONTAINER.
      data: grid TYPE REF TO cl_gui_alv_grid.
      data: ok_code type sy-ucomm.
      DATA: V_LAYOUT TYPE lvc_s_layo.  " FOR LAYOUT
      DATA: V_LINE TYPE I,
            LINEID TYPE I.
      DATA: V_INDEX TYPE SY-TABIX.
                                   PARAMETER                              *
      parameter : p_ebeln like ekko-ebeln.
                                  START OF SELECTION                      *
    START-OF-SELECTION.
                                   SELECTION OF DATA                      *
      CALL FUNCTION 'ME_PURCHASE_DOCUMENT_DATA_READ'
        EXPORTING
          I_EBELN                    = P_EBELN
          I_TCODE                    = 'ME23'
      I_NO_COMMIT                = ' '
          I_TRTYP                    = 'A'
      I_NO_MESSAGING             =
      I_NO_MESSAGE_REQ           =
      I_NO_AUTHORITY_CHECK       =
      I_VORGA                    =
    IMPORTING
      E_EKKO                     =
       TABLES
         T_EKPO                     = LIT_EKPO
      T_EKET                     =
      T_EKKN                     =
      T_KOMV                     =
       EXCEPTIONS
         NO_EBLNR                   = 1
         EBLNR_NOT_FOUND            = 2
         NO_TCODE                   = 3
         TCODE_NOT_ALLOWED          = 4
         NO_TRTYP                   = 5
         INVALID_CALL_OF_FB         = 6
         OTHERS                     = 7
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      LOOP AT LIT_EKPO INTO LS_EKPO.
        MOVE : LS_EKPO-EBELN TO GS_EKPO-EBELN,
               LS_EKPO-EBELP TO GS_EKPO-EBELP,
               LS_EKPO-MENGE TO GS_EKPO-POQTY.
        APPEND GS_EKPO TO GIT_EKPO.
      ENDLOOP.
    End-of-selection.
      perform field_catalog.
      call screen 100.
                                   END-OF-SELECTION                       *
                                MODULES FOR ALV DISPLAY                   *
    *&      Module  STATUS_0100  OUTPUT
          text
    MODULE STATUS_0100 OUTPUT.
      SET PF-STATUS 'PF-STAT'.
      SET TITLEBAR 'TITLE'.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    **&      Module  USER_COMMAND_0100  INPUT
          text
    MODULE USER_COMMAND_0100 INPUT.
      CASE OK_CODE.
        WHEN 'BACK'.
          LEAVE PROGRAM.
        WHEN 'EXIT'.
          LEAVE TO SCREEN 0.
       WHEN 'SWITCH'.
         PERFORM switch_edit_mode.
        WHEN 'SAVE'.
          PERFORM FILL_TABLE.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    **&      Module  layout_0100  OUTPUT
          text
    MODULE layout_0100 OUTPUT.
      V_LAYOUT-grid_title = 'Purchase Order Erection Details'.
    ENDMODULE.                 " layout_0100  OUTPUT
    **&      Module  data_retrivaL  OUTPUT
          text
    MODULE data_retrivaL OUTPUT.
      IF V_CONTAINER IS INITIAL.
        CREATE OBJECT V_CONTAINER
          EXPORTING container_name = 'GRID'.
        CREATE OBJECT grid
        EXPORTING i_parent = V_CONTAINER.
      ENDIF.
      CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY
        EXPORTING
          IS_LAYOUT                     = V_LAYOUT
        CHANGING
          IT_OUTTAB                     = GIT_EKPO
          IT_FIELDCATALOG               = LIT_FIELDCAT
        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.
    ENDMODULE.                 " data_retrivaL  OUTPUT
    *&      Module  field_catalog  OUTPUT
          text
    FORM field_catalog.
      CLEAR LS_fieldcat.
      LS_fieldcat-fieldname = 'EBELN'.
      LS_fieldcat-ref_table = 'GIT_EKPO'.
      LS_FIELDCAT-coltext  = 'PURCHSE ORDER NUMBER'.
      LS_FIELDCAT-col_pos   = 0.
      LS_FIELDCAT-EDIT = ' '.
    ls_FIELDCAT-style = cl_gui_alv_grid=>mc_style_disabled.
    INSERT LS_FIELDCAT INTO TABLE LIT_FIELDCAT.
      APPEND LS_fieldcat TO LIT_fieldcat.
      CLEAR LS_fieldcat.
      LS_fieldcat-fieldname = 'EBELP'.
      LS_fieldcat-ref_table = 'GIT_EKPO'.
      LS_FIELDCAT-coltext  = 'ITEM NUMBER'.
      LS_FIELDCAT-col_pos   = 1.
      LS_FIELDCAT-EDIT = ' '.
    ls_FIELDCAT-style = cl_gui_alv_grid=>mc_style_disabled.
    INSERT LS_FIELDCAT INTO TABLE LIT_FIELDCAT.
      APPEND LS_fieldcat TO LIT_fieldcat.
      CLEAR LS_fieldcat.
      LS_fieldcat-fieldname = 'POQTY'.
      LS_fieldcat-ref_table = 'GIT_EKPO'.
      LS_FIELDCAT-coltext  = 'PURCHASE ORDER QUANTITY'.
      LS_FIELDCAT-col_pos   = 2.
      LS_FIELDCAT-EDIT = ' '.
    ls_FIELDCAT-style = cl_gui_alv_grid=>mc_style_disabled.
    INSERT LS_FIELDCAT INTO TABLE LIT_FIELDCAT.
      APPEND LS_fieldcat TO LIT_fieldcat.
      CLEAR LS_fieldcat.
      LS_fieldcat-fieldname = 'ERDAT'.
      LS_fieldcat-ref_table = 'GIT_EKPO'.
      LS_FIELDCAT-coltext  = 'DATE OF ERECTION'.
      LS_FIELDCAT-col_pos   = 3.
      LS_FIELDCAT-EDIT = 'X'.
    ls_fieldcat-style = cl_gui_alv_grid=>mc_style_enabled.
    INSERT LS_FIELDCAT INTO TABLE LIT_FIELDCAT.
      APPEND LS_fieldcat TO LIT_fieldcat.
      CLEAR LS_fieldcat.
      LS_fieldcat-fieldname = 'EREQTY'.
      LS_fieldcat-ref_table = 'GIT_EKPO'.
      LS_FIELDCAT-coltext  = 'ERECTION QUANTITY'.
      LS_FIELDCAT-col_pos   = 4.
      LS_FIELDCAT-EDIT = 'X'.
    ls_fieldcat-style = cl_gui_alv_grid=>mc_style_enabled.
    INSERT LS_FIELDCAT INTO TABLE LIT_FIELDCAT.
      APPEND LS_fieldcat TO LIT_fieldcat.
    ENDFORM.                 " field_catalog  OUTPUT
    *&      Form  SWITCH_EDIT_MODE
          text
    -->  p1        text
    <--  p2        text
    *FORM switch_edit_mode.
    IF GRID->is_ready_for_input( ) eq 0.
    set edit enabled cells ready for input
       CALL METHOD GRID->set_ready_for_input
         EXPORTING
           i_ready_for_input = 1.
    ELSE.
    lock edit enabled cells against input
       CALL METHOD GRID->set_ready_for_input
         EXPORTING
           i_ready_for_input = 0.
    ENDIF.
    *ENDFORM.                               " SWITCH_EDIT_MODE
    *&      Form  FILL_TABLE
          text
    -->  p1        text
    <--  p2        text
    FORM FILL_TABLE .
      LOOP AT GIT_EKPO INTO GS_EKPO.
        LS_ZPS005-EBELN = GS_EKPO-EBELN.
        LS_ZPS005-EBELP = GS_EKPO-EBELP.
        LS_ZPS005-POQTY = GS_EKPO-POQTY.
        LS_ZPS005-ERECDAT = GS_EKPO-ERDAT.
        LS_ZPS005-EREQTY = GS_EKPO-EREQTY.
      ENDLOOP.
      MODIFY ZPS005 FROM LS_ZPS005.
    ENDFORM.                    " FILL_TABLE

  • Leading spaces in excel file from ALV

    Hi Guys,
    once I export a record from ALV to excel. Some values I think all values that are TYPE I. How can I remove this leading spaces.
    Ex: '                                                      100'
    something like that.. so if you dont expand the column with you wont see the value 100. I checked the internal table being passed to ALV. It doesnt have leading spaces also in the ALV display. there is no leading spaces. Is there something to to with column width optimization? I need this to optimize the column headers. Thanks in Advance!
    Regards,
    Michael Nacionales

    There is one table CRVS_B with field SFHNR, while creating PRTS I need this field, so I do like this:
    select max( SFHNR ) into l_sfhnr
    from CRVS_B.
    add var to l_sfhnr.
    So for example l_sfhnr is equal to 000000000000000010, then after add, it gives me 11, and surprisingly in database 11 is placing position in such a way that last char is empty so it is not 11 but 00000000000000011 ( 17 chars ) as after 11 one empty space, and when it comes next time:
    select max( SFHNR ) into l_sfhnr
    from CRVS_B.
    add var to l_sfhnr.
    the value of l_sfhnr is still 000000000000000010......
    else try this
    Hi
    Field_catalog:
    Field catalog with field descriptions
    2.7.1. Description
    Field catalog containing descriptions of the list output fields (usually a subset of the internal output table fields). A field catalog is required for every ALV list output.
    The field catalog for the output table is built-up in the caller's coding. The build-up can be completely or partially automated by calling the REUSE_ALV_FIELDCATALOG_MERGE module
    See also the documentation of the function module REUSE_ALV_FIELDCATALOG_MERGE.
    The minimal field catalog is documented under 'default'. The caller can use the other optional parameters to assign output attributes to a field which differ from the default.
    A field catalog need not be built-up and passed explicitly only under the following conditions:
    • The internal table to be output has the same structure as a Data Dictionary structure which is referred to in the internal table declaration using LIKE or INCLUDE STRUCTURE.
    • all fields in this structure are to be output
    • the structure name is passed to ALV in the parameter I_STRUCTURE_NAME.
    See also the documentation of the IMPORTING paramter I_STRUCTURE_NAME.
    Positioning
    • row_pos (row position)
    value set: 0, 1 - 3
    Only relevant if the list output is to be multi-line (two or three lines) by default.
    A multi-line list can also be defined by the user interactively if the default list is one-line.
    The parameter specifies the relative output line of the column in a multi-line list.
    • col_pos (column position)
    value set: 0, 1 - 60
    only relevant when the default relative column positions differ from the field catalog field sequence. The parameter specifies the relative column position of the field in the list output. The column order can be changed interactively by the user. If this parameter is initial for all field catalog entries, columns appear in the field catalog field sequence.
    Identification
    • fieldname (field name)
    value set: internal output table field name (required parameter)
    Name of the internal output table field which is described by this field catalog entry
    • tabname (internal output table)
    value set: SPACE, internal output table name
    This parameter is used in 'manual' field catalog build-up only for hierarchical-sequential lists.
    Name of the internal output table which contains the field FIELDCAT-FIELDNAME.
    Data Dictionary reference
    • ref_fieldname (reference field name)
    value set: SPACE, Data Dictionary field name
    Name of the Data Dictionary field referred to.
    This parameter is only used when the internal output table field described by the current field catalog entry has a reference to the Data Dictionary (not a program field), and the field name in the internal output table is different from the name of the field in the Data Dictionary. If the field names are identical, naming the Data Dictionary structure or table in the FIELDCAT-REF_TABNAME parameter is sufficient.
    • ref_tabname (reference table/structure field name)
    value set: SPACE, name of a Data Dictionary structure or table
    Structure or table name of the referred Data Dictionary field.
    This parameter is only used when the internal output table field described by the current field catalog entry has a Data Dictionary reference (not a program field).
    Reference to fields with currency/measurement unit
    Each internal output table sum or quantity field whose decimal places are to be formatted appropriately for the unit in the list must follow the convention:
    • the field is of data type QUAN or CURR (internal type P) (the field must really have this physical data type. Overwriting the physical data type with the parameter FIELDCAT-DATATYPE has no effect)
    • There is a field in the internal output table which contains the associated unit.
    • There is also an entry in the field catalog for the unit field.
    (If the unit is not to appear as a column in the list, and cannot be interactively displayed as a column, e.g. because it is always unambiguous and is therefore explicitly output by the caller in the list header, the field catalog units field entry can take the parameter FIELDCAT-TECH = 'X'.
    The association of a value field to a unit affects the output as follows:
    • appropriate decimal places display for the unit
    • an initialized field with a link to a non-initial unit is output as '0' for the unit (if FIELDCAT-NO_ZERO is initial). When this field is summed, this unit affects whether the units are homogeneous.
    • an initialized field with a link to an initial unit is output as SPACE. When this field is summed, the unit SPACE does not affect the homogeneity of the units.
    • When non-initial fields with an initial unit are summed, the unit SPACE is considered to be a unit.
    Link to currency unit
    • cfieldname (currency unit field name)
    value set: SPACE, output table field name
    Only relevant for amount columns with associated unit.
    Name of the internal output table field containing the currency unit associated with the amount field FIELDCAT-FIELDNAME. The field in FIELDCAT-CFIELDNAME must have its own field catalog entry.
    • ctabname (internal currency unit field output table)
    value set: SPACE, output table field name
    only relevant for hierarchical-sequential lists
    Name of the internal output table containing the FIELDCAT-CFIELDNAME field.
    Link to measurement unit
    • qfieldname (measurement unit field name)
    value set: SPACE, output table field name
    only relevant for quantity columns with unit link.
    Name of the internal output table field containing the measurement unit associated with the quantity field FIELDCAT-FIELDNAME.
    The field in FIELDCAT-QFIELDNAME must have its own field catalog entry.
    • qtabname (internal measurement unit field output table)
    value set: SPACE, output table field name
    only relevant for hierarchical-sequential lists
    Name of the internal output table containing the FIELDCAT-QFIELDNAME field.
    Column output options
    • outputlen (column width)
    value set: 0 (initial), n
    For fields with a Data Dictionary link this parameter can be left initial.
    For fields without a Data Dictionary link (program field) the parameter must be given the value of the desired field list output length (column width).
    initial = column width is the output length of the referred Data Dictionary field (domain).
    n = column width is n characters
    • key (key column)
    value set: SPACE, 'X' 'X' = kex field (key field output in color)
    Key fields can not be interactively hidden. Parameter FIELDCAT-NO_OUT must be left initial.
    For exceptions see the documentation of the FIELDCAT-KEY_SEL parameter.
    • key_sel (hideable key column)
    value set: SPACE, 'X'
    only relevant when FIELDCAT-KEY = 'X'
    Key field which can be hidden interactively.
    The key column sequence cannot be changed interactively by the user.
    The output is controlled by the FIELDCAT-NO_OUT parameter analogously to non-key fields.
    • no_out (field in field list)
    value set: SPACE, 'X' 'X' = field is not displayed in the current list.
    The user can interactively choose the field for output from the field list.
    The user can display the contents of these fields at line level using the 'Detail' function.
    See also the 'Detail screen' documentation of the parameter IS_LAYOUT.
    • tech (technical field)
    value set: SPACE, 'X' 'X' = technical field
    Field cannot be output in the list and cannot be displayed interactively.
    Field can only be used in the field catalog (not in IT_SORT, ...).
    • emphasize (highlight columns in color)
    value set: SPACE, 'X' or 'Cxyz' (x:'1'-'9'; y,z: '0'=off '1'=on)
    'X' = column is colored with the default column highlight color.
    'Cxyz' = column is colored with a coded color:
    • C: Color (coding must begin with C)
    • x: color number
    • y: bold
    • z: inverse
    • hotspot (column as hotspot)
    value set: SPACE, 'X'
    'X' = column cells are output as hotspots
    • fix_column (fix column)
    value set: SPACE, 'X'
    Not relevant for block lists (output of several lists consecutively)
    'X' = column fixed (does not scroll horizontally)
    All columns to be fixed must have this flag, starting from the left. If a column without this flag is output, only the columns to the left of this column are fixed. The user can change the column fixing interactively. See also the documentation of the Layout parameter
    IS_LAYOUT-NO_KEYFIX of the IMPORTING paramter IS_LAYOUT.
    • do_sum (sum over column)
    value set: SPACE, 'X' 'X' = a sum is to be calculated over this internal output table field.
    This function can also be called by the user interactively.
    • no_sum (sums forbidden)
    value set: SPACE, 'X' 'X' = no sum can be calculated over this field, although the data type of the field would allow summing.
    • input (column ready for input)
    Function not available
    Format column contents
    • icon
    value set: SPACE, 'X' 'X' = column contents to be output as an icon.
    The caller must consider the printability of icons.
    • symbol
    value set: SPACE, 'X' 'X' = column contents are to be output as a symbol.
    The internal output table column must be a valid symbol character.
    The caller must consider the printability of symbols.
    Symbols can usually be printed, but may not always be output correctly, depending on the printer configuration.
    • just (justification)
    value set: SPACE, 'R', 'L', 'C'
    Only relevant for fields of data type CHAR or NUMC
    ' ' = default justification for this data type
    'R' = right-justified output
    'L' = left-justified output
    'C' = centered output
    The justification of the column header always follows the justification of the columns. Independent justification of the column neader is not possible.
    • lzero (leading zeros)
    value set: SPACE, 'X'
    Only relevant for fields of data type NUMC
    ALV outputs NUMC fields right-justified without leading zeros by default.
    'X' = output with leading zeros
    Note: If a NUMC field is output left-justified or centered by FIELDCAT-JUST, leading zeros are output. If the output of leading zeros is suppressed by a Data Dictionary reference ALPHA conversion exit, the output is always left-justified.
    • no_sign (no +/- sign) Only relevant for value fields
    value set: SPACE, 'X' 'X' = value output without +/ sign
    • no_zero (suppress zeros) Only relevant for value fields
    value set: SPACE, 'X' 'X' = suppress zeros
    • edit_mask (field formatting)
    value set: SPACE, template
    template = see documentation of WRITE formatting option USING EDIT MASK template
    The output conversion conv can be made by template = '== conv'.
    Texts
    The following text parameters should be specified for program fields without a Data Dictionary reference. The texts are taken from the Data Dictionary for fields with a Data Dictionary reference. If this is not desired, the text parameters can also be specified. The Data Dictionary texts are then ignored. If the user changes the column width interactively, the column header text with the appropriate length is always used. The interactive function 'Optimize column width' takes account of both the field contents and the column headers: if all field contents are shorter than the shortest column header, the column width depends on the column header.
    The 'long field label' is also used in display variant definition, sort, etc. popups.
    • seltext_l (long field label)
    • seltext_m (medium field label)
    • seltext_s (short field label)
    • reptext_ddic (header)
    analogous to the Data element maintenance 'Header'
    The specified text is not necessarily output in the list, an optimum among all texts is sought.
    • ddictxt (specify text)
    value set: SPACE, 'L', 'M', 'S'
    You can specify with values 'L', 'M', and 'S', the keyword that should always be used as column header. If the column width changes, no attempt is made in this case to find an appropriate header for the new output width.
    Parameters for program fields without Data Dictionary reference
    see also 'Text' parameters
    • datatype (data type)
    value set: SPACE, Data Dictionary data type (CHAR, NUMC,...)
    Only relevant for fields without Data Dictionary reference
    Program field data type
    • ddic_outputlen (external output length)
    value set: 0 (initial), n
    Only relevant for fields without Data Dictionary reference whose output is nevertheless to be modified by a conversion exit.
    Prerequisites:
    • FIELDCAT-EDIT_MASK = '==conv'
    see also the documentation of the parameter FIELDCAT-EDIT_MASK
    • FIELDCAT-INTLEN = n
    see also the documentation of the parameter FIELDCAT-INTLEN
    n = external format field output length
    The column width FIELDCAT-OUTPUTLEN need not be the same as the external format output length (FIELDCAT-DDIC_OUTPUTLEN).
    • intlen (internal output length)
    value set: 0 (initial), n
    Only relevant for fields without Data Dictionary reference whose output is nevertheless to be modified by a conversion exit.
    Prerequisites:
    • FIELDCAT-EDIT_MASK = '==conv'
    see also the documentation of the parameter FIELDCAT-EDIT_MASK
    • FIELDCAT-DDIC_OUTPUTLEN = n
    see also the documentation of the parameter FIELDCAT-DDIC_OUTPUTLEN
    n = internal format field output length
    • rollname (data element)
    value set: SPACE, Data Dictionary data element name
    F1 help can be provided for a program field without a Data Dictionary reference, or F1 help which differs from the Data Dictionary help can be provided for a field with a Data Dictionary reference, using this parameter.
    When F1 help is called for this field, the documentation of the specified data element is displayed.
    If the FIELDCAT-ROLLNAME is initial for fields with a Data Dictionary reference, the documentation of the data element of the referred Data Dictionary field is output.
    Others
    • sp_group (field group key)
    value set: SPACE, CHAR(1)
    Field group key.
    Keys are assigned to group names in the IT_SPECIAL_GROUPS parameter (see also the documentation of the parameter IT_SPECIAL_GROUPS).
    When such an assignment is made in the field catalog and in IT_SPECIAL_GROUPS, the fields are grouped correspondingly in the display variant popup.
    • reprep (Report/Report interface selection criterion)
    value set: SPACE, 'X'
    Prerequisites:
    • The system contains the Report/Report interface (function group RSTI, table TRSTI)
    • Parameter LAYOUT-REPREP = 'X'
    (see also the documentation of the parameter LAYOUT-REPREP of the IMPORTING parameter IS_LAYOUT )
    'X' = When the Report/Report interface is called, the value of this field is passed in the selected interface start record as a selection criterion.
    2.7.2. Default
    • The following entries are usually sufficient for internal table fields with a reference to a field defined in the Data Dictionary :
    • fieldname
    • ref_tabname
    Notes:
    ALV gets the remaining information from the Data Dictionary.
    If no relative column position (COL_POS) is specified, the fields are output in the list in the order in which they were added to the field catalog.
    REF_FIELDNAME need only be specifid when the name of the internal table field differs from the name of the referred Data Dictionary field.
    Information which is explicitly entered in the field catalog is not overwritten by information from the Data Dictionary.
    Priority rule:
    Entries in the field catalog have priority over differing entries in the Data Dictionary.
    • The following entries are usually sufficient for internal table fields without a reference to the Data Dictionary (program fields):
    • fieldname
    • outputlen
    • datatype
    • seltext_s
    • seltext_m
    • seltext_l
    Notes:
    F1 help can be provided for program fields by assigning a data element to the parameter ROLLNAME.
    If the parameters SELTEXT_S, SELTEXT_M, SELTEXT_L, and REPTEXT_DDIC contain appropriate field labels, the program field column headers are also adjusted appropriately when the column width changes.
    B. REUSE_ALV_FIELDCATALOG_MERGE : This function module is used to populate a fieldcatalog which is essential to display the data in ALV. If the output data is from a single dictionary table and all the columns are selected, then we need not exclusively create the field catalog. Its enough to mention the table name as a parameter(I_structure name) in the REUSE_ALV_LIST_DISPLAY. But in other cases we need to create it.
    The Important Parameters are :
    I. Export :
    i. I_program_name : report id
    ii. I_internal_tabname : the internal output table
    iii. I_inclname : include or the report name where all the dynamic forms are handled.
    II Changing
    ct_fieldcat : an internal table with the type SLIS_T_FIELDCAT_ALV which is
    declared in the type pool SLIS.
    Reward points if useful
    Regards
    Anji
    Vijayendra Rao  
    Posts: 1,699
    Questions: 28
    Registered: 9/14/04
    Forum points: 3,018 
      Re: ALV  
    Posted: May 14, 2007 8:29 PM    in response to: kotireddy       Reply 
    Hi,
    Field catalog defines the attributes and specifies the technical details of the columns displayed in an ALV output.
    You can check the following thread to see how to build a field catalog and how to work with ALV.
    Message was edited by:
            Karthikeyan Pandurangan

  • The Query output should bring 0 from 0 records

    Hi Guru's
         I have a critical requirment in my project, I have to build an query on BW statistics  Multi provider ( 0BWTC_C10 ).
           The Query should result an output with an exception when any data load brings 0 from 0 records to the info provider
    Please suggest me as what key figures  and the stucture i need to take in the query in order to get the desired output.
    Respond ASAP as the ticket should be closed today
    Thanks in advance

    Hi KR MR,
      Try with thses info objects
    0TCTREQSID                       Data Request (SID)
    0TCTIFCUBE                        InfoCube
    0TCTMNRECO                     Records (WHM Process)
    & use time characteristics..........
    if u want u can additional char like........source system for navigational purpouse.................
    Regards,
    Vijay.

  • Picking data directly from ALV List

    HI experts !
    I have a scenario in which the client is executing some tcodes ( Some hourly, some daily , some weekly, ome monthly ) and all the data gets displayed in alv list . The requirement is that is it possible for XI to pick that data directly from alv and update the data base?
    OR
    If the above case is not possible then the client is thinking of putting the data in a spool and then by running some program they fetch the data ?
    Guide me on this ? how to execute such scenario?
    Regards
    saras jain

    Create and outbound interface with needed datatypes and message types. Create a client proxu for this.
    Create a report, which gets all these data in to internal tables and then call the client proxy from XI. You can have whatever adapter on the receiver side..
    VJ

  • Pickking data from ALV List diractly into XI

    HI experts !
    I have a scenario in which the client is executing some tcodes ( Some hourly, some daily , some weekly, ome monthly ) and all the data gets displayed in alv list . The requirement is that is it possible for XI to pick that data directly from alv and update the data base?
    OR
    If the above case is not possible then the client is thinking of putting the data in a spool and then by running some program they fetch the data ?
    Guide me on this ? how to execute such scenario?
    Regards
    saras jain

    Option 1 : As a standard you can go for client ABAP proxies. When ever the tcode is executed, in the ABAP code that gets executed in the back ground add a part that will pass all the required values to the client proxy which triggers a message to XI.
    Option 2 : Write all the data you want to a flat/xml file and make File adapter poll this directory.
    Option 1 is more perfomant than 2.
    Regards,
    Jai Shankar

Maybe you are looking for