Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ALV display in module pool.

Former Member
0 Likes
11,546

Hi,

I would like to know how to display an alv grid in module pool.

Thanks & regards,

Amrita

Edited by: Amrita Kedia on Mar 18, 2008 6:33 AM

Hi,

I would like to know how to display an alv grid in module pool.

Thanks & regards,

Amrita

Edited by: Amrita Kedia on Mar 18, 2008 6:33 AM

4 REPLIES 4
Read only

Former Member
0 Likes
4,232

Hi,

Create a custom control in Screen and use the class CL_GUI_ALV_GRID.

The foll sample code ll help u......

Double click on this line 'CALL SCREEN 100.' and create a screen(100) and draw a custom control on it with name CUSTOM1
also create a Pf-status for the program with name BASIC and put 'BACK' , 'EXIT', 'CANC' as fun codes on the respective buttons....

CONSTANTS : c_back  TYPE sy-ucomm VALUE 'BACK',
            c_exit  TYPE sy-ucomm VALUE 'EXIT',
            c_canc  TYPE sy-ucomm VALUE 'CANC'.

types : begin of itab,
        a type p decimals 2,
        b type p decimals 2,
        c type c LENGTH 5,
        end of itab.

DATA : container1 TYPE REF TO cl_gui_custom_container,
       grid       TYPE REF TO cl_gui_alv_grid,
       it_fldcat  type LVC_T_FCAT    WITH HEADER LINE,
       it_outtab  type TABLE OF itab WITH HEADER LINE.

DATA  l_ucomm    TYPE sy-ucomm.


it_fldcat-fieldname = 'A'.
it_fldcat-REPTEXT   = 'Field1'.
append it_fldcat.

it_fldcat-fieldname = 'B'.
it_fldcat-REPTEXT   = 'Field2'.
append it_fldcat.

it_fldcat-fieldname = 'C'.
it_fldcat-REPTEXT   = 'Field3'.
append it_fldcat.


it_outtab-a = '1.12'.
it_outtab-b = '2.25'.
it_outtab-c = '+'.

append it_outtab.
append it_outtab.
append it_outtab.
append it_outtab.


CALL SCREEN 100.

*----------------------------------------------------------------------*
*  MODULE status_0100 OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'BASIC'.
*  SET TITLEBAR 'xxx'.

  CREATE OBJECT container1
  EXPORTING
    container_name              = 'CUSTOM1'.
  CREATE OBJECT grid
    EXPORTING
      i_parent                    = container1.
  CALL METHOD 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                     = it_outtab[]
       it_fieldcatalog               = it_fldcat[]
*      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.


ENDMODULE.                 " STATUS_0100  OUTPUT

*----------------------------------------------------------------------*
*  MODULE user_command_0100 INPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

  MOVE sy-ucomm TO l_ucomm.

  CASE l_ucomm.
    WHEN c_back.
      LEAVE TO SCREEN 0.
    WHEN c_exit.
      LEAVE TO SCREEN 0.
    WHEN c_canc.
      LEAVE TO SCREEN 0.
    WHEN OTHERS.
  ENDCASE.

ENDMODULE.                 " USER_COMMAND_0100  INPUT

Cheers,

jose.

Read only

Former Member
0 Likes
4,232

ALV display whether in module or executable doesn't have any changes. In module the flow of data is through sscreen sequences.

check ABAPDOCU for ALV examples check BALV* codes.

anya

Read only

dhruv_shah3
Active Contributor
0 Likes
4,232

Hi,

Just you have to create screen 100.

PBO


*&---------------------------------------------------------------------*
*&  Include           MZDS_TABLECONTROLO01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  TRANSFER_DATA  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE TRANSFER_DATA OUTPUT.
MOVE WA_SDYN TO SDYN_CONN.
ENDMODULE.                 " TRANSFER_DATA  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  CHANGE_TABLE_CONTROL  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE CHANGE_TABLE_CONTROL OUTPUT.
DATA: WA LIKE LINE OF MY_CONTROL-COLS.
*LOOP AT MY_CONTROL-COLS INTO WA.
*
*  IF WA-INDEX BETWEEN 1 AND 3.
*
*      WA-SCREEN-INVISIBLE = 1.
*  ELSE.
*      WA-SCREEN-INVISIBLE = 0.
*
*  ENDIF.
*  MODIFY MY_CONTROL-COLS FROM WA.
*ENDLOOP.

ENDMODULE.                 " CHANGE_TABLE_CONTROL  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  MODIFY_SCREEN  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE MODIFY_SCREEN OUTPUT.

CHECK WA_SDYN-MARK = 'X'.

LOOP AT SCREEN.

  IF SCREEN-GROUP1 = 'SEL'.

    SCREEN-INTENSIFIED = 1.

  ENDIF.
  MODIFY SCREEN.
ENDLOOP.
ENDMODULE.                 " MODIFY_SCREEN  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
  SET PF-STATUS 'STATUS1'.
  SET TITLEBAR 'TITLE1'.

ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  LIST_PRO  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE LIST_PRO OUTPUT.
*SUPPRESS DIALOG.
SELECT * FROM SPFLI
   INTO CORRESPONDING FIELDS OF TABLE IT_SDYN_CONN
   UP TO 5 ROWS.

LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 100.
SET PF-STATUS SPACE.
PERFORM LIST_DISPLAY.
ENDMODULE.                 " LIST_PRO  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  ALV_DISP  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE ALV_DISP OUTPUT.
*DATA:   GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
PERFORM FIELD_CAT_INIT USING IT_FIELDCAT[].
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
 EXPORTING
*   I_INTERFACE_CHECK              = ' '
*   I_BYPASSING_BUFFER             =
*   I_BUFFER_ACTIVE                = ' '
   I_CALLBACK_PROGRAM              = REPID
*   I_CALLBACK_PF_STATUS_SET       = ' '
*   I_CALLBACK_USER_COMMAND        = ' '
*   I_STRUCTURE_NAME               =
*   IS_LAYOUT                      =
   IT_FIELDCAT                     = IT_FIELDCAT[]
*   IT_EXCLUDING                   =
*   IT_SPECIAL_GROUPS              =
*   IT_SORT                        =
*   IT_FILTER                      =
*   IS_SEL_HIDE                    =
*   I_DEFAULT                      = 'X'
*   I_SAVE                         = ' '
*   IS_VARIANT                     =
*   IT_EVENTS                      =
*   IT_EVENT_EXIT                  =
*   IS_PRINT                       =
*   IS_REPREP_ID                   =
*   I_SCREEN_START_COLUMN          = 0
*   I_SCREEN_START_LINE            = 0
*   I_SCREEN_END_COLUMN            = 0
*   I_SCREEN_END_LINE              = 0
*   IR_SALV_LIST_ADAPTER           =
*   IT_EXCEPT_QINFO                =
*   I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER        =
*   ES_EXIT_CAUSED_BY_USER         =
  TABLES
    T_OUTTAB                       = IT_SDYN_CONN
 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.

ENDMODULE.                 " ALV_DISP  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  CREATE_OBJECTS  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE CREATE_OBJECTS OUTPUT.
CHECK CONTAINER IS INITIAL.
CREATE OBJECT CONTAINER
    EXPORTING CONTAINER_NAME = 'MYCUSTCONTROL'.

CHECK html_viewer IS INITIAL.
    CREATE OBJECT html_viewer
    EXPORTING PARENT = CONTAINER.
ENDMODULE.                 " CREATE_OBJECTS  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  SET_URL  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE SET_URL OUTPUT.
CALL METHOD html_viewer->show_url
            EXPORTING URL = URL.
ENDMODULE.                 " SET_URL  OUTPUT


PAI



*&---------------------------------------------------------------------*
*&  Include           MZDS_TABLECONTROLI01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  MODIFY_ITAB  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE MODIFY_ITAB INPUT.
  MOVE-CORRESPONDING SDYN_CONN TO WA_SDYN.
    MODIFY IT_SDYN_CONN FROM WA_SDYN INDEX MY_CONTROL-CURRENT_LINE.
ENDMODULE.                 " MODIFY_ITAB  INPUT
*&---------------------------------------------------------------------*
*&      Module  GETDATA  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE GETDATA INPUT.
*&---------------------------------------------------------------------*
*&      Module  GETDATA  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
SELECT * FROM SPFLI
   INTO CORRESPONDING FIELDS OF TABLE IT_SDYN_CONN
   UP TO 5 ROWS.

ENDMODULE.                 " GETDATA  INPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
DATA: WA_TC LIKE LINE OF MY_CONTROL-COLS.
CASE OK_CODE.

  WHEN 'SORT'.

    READ TABLE MY_CONTROL-COLS
      WITH KEY SELECTED = 'X' INTO WA_TC.

    IF SY-SUBRC = 0.
      SORT IT_SDYN_CONN BY (WA_TC-SCREEN-NAME+10).
    ELSE.
      MESSAGE 'NOT SORTED' TYPE 'I'.
    ENDIF.
 WHEN 'BACK'.
   LEAVE TO SCREEN 0.
 WHEN 'CANCEL'.
   LEAVE PROGRAM.
 WHEN 'FILL TABLE'.
   SELECT * FROM SPFLI
   INTO CORRESPONDING FIELDS OF TABLE IT_SDYN_CONN
   UP TO 5 ROWS.
ENDCASE.
ENDMODULE.                 " USER_COMMAND_0100  INPUT


TOP MODULE



*&---------------------------------------------------------------------*
*& Include MZDS_TABLECONTROLTOP                              Module Pool      SAPMZDS_TABLECONTROL
*&
*&---------------------------------------------------------------------*

PROGRAM  SAPMZDS_TABLECONTROL.

TABLES: SDYN_CONN.
type-pools: SLIS.

DATA: WA_SDYN TYPE SDYN_CONN,
      IT_SDYN_CONN LIKE TABLE OF WA_SDYN.

CONTROLS MY_CONTROL TYPE TABLEVIEW USING SCREEN 0100.

DATA: DYNNR TYPE SY-DYNNR.
DATA: OK_CODE TYPE SY-UCOMM.

DATA: REPID TYPE SY-REPID.
DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
data: l_fieldcat TYPE slis_fieldcat_alv.

DATA: CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.

DATA: html_viewer TYPE REF TO CL_GUI_HTML_VIEWER,
      URL(255) TYPE C VALUE 'C:/MY.HTML'.


FORM Routine



*&---------------------------------------------------------------------*
*&  Include           MZDS_TABLECONTROLF01
*&---------------------------------------------------------------------*

FORM ON_CTMENU_CMENU
  USING P_MENU TYPE REF TO CL_CTMENU.

DATA MENU TYPE REF TO CL_CTMENU.
CREATE OBJECT MENU.

DATA FCODES TYPE UI_FUNCTIONS.

DATA: TEXT TYPE GUI_TEXT,
      FCODE TYPE UI_FUNC.

  CALL METHOD CL_CTMENU=>LOAD_GUI_STATUS
       EXPORTING PROGRAM = SY-CPROG
       STATUS = 'CMENU'
       MENU = P_MENU.

CALL METHOD P_MENU->ADD_SEPARATOR. " CALL TO ADD SEPERATOR.

APPEND 'BACK' TO FCODES.  "CALL TO HIDE A MENU ENTRY AT RUNTIME.
CALL METHOD P_MENU->HIDE_FUNCTIONS EXPORTING FCODES = FCODES.

TEXT = 'SUBMENU'. " TO CREATE THE SUBMENU.
CALL METHOD P_MENU->ADD_SUBMENU
EXPORTING MENU = MENU
          TEXT = TEXT.

TEXT = 'HELLO'. " TO CREATE THE SUBMENU ENTRY.
CALL METHOD MENU->ADD_FUNCTION
  EXPORTING FCODE = FCODE
            TEXT = TEXT.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  LIST_DISPLAY
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM LIST_DISPLAY .
LOOP AT IT_SDYN_CONN INTO WA_SDYN.
  WRITE:/ WA_SDYN-CARRID,
          WA_SDYN-CONNID,
          WA_SDYN-CITYFROM.
ENDLOOP.
ENDFORM.                    " LIST_DISPLAY
*&---------------------------------------------------------------------*
*&      Form  FIELD_CAT_INIT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FIELD_CAT_INIT USING IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
  DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

clear ls_fieldcat.
*  LS_FIELDCAT-COL_POS       =  POS.
  LS_FIELDCAT-FIELDNAME     = 'CARRID'.
  ls_fieldcat-ref_fieldname = 'CARRID'.
  LS_FIELDCAT-REF_TABNAME   = 'SCARR'.
  LS_FIELDCAT-KEY           = 'X'.
     APPEND LS_FIELDCAT TO  IT_FIELDCAT.
     clear ls_fieldcat.

*  LS_FIELDCAT-COL_POS       =  POS.
  LS_FIELDCAT-FIELDNAME     = 'CONNID'.
*  ls_fieldcat-ref_fieldname = 'CARRID'.
*  LS_FIELDCAT-REF_TABNAME   = 'SCARR'.
*  LS_FIELDCAT-KEY           = 'X'.
LS_FIELDCAT-SELTEXT_M = 'CONNECTION'.

     APPEND LS_FIELDCAT TO  IT_FIELDCAT.

ENDFORM.                    " FIELD_CAT_INIT



HTH

Regards,

Dhruv Shah

Read only

Former Member
0 Likes
4,232

Hi,

refer to this link

her u can download a document

http://www.savefile.com/files/850499

rgds,

bharat.