2008 Mar 18 5: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
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
2008 Mar 18 5:36 AM
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 INPUTCheers,
jose.
2008 Mar 18 5:36 AM
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
2008 Mar 18 5:40 AM
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
2008 Mar 18 5:45 AM
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |