‎2008 May 12 6:05 AM
Dear All,
Currently I am having one Report Program which is displaying an ALV List. I need to include some enhancements.
When clicking to one of the List column, I would like to dispay one screen(which I have to create).
Where I can create the screen?
In Function Pool or Module Pool????
Which is better?
What is the Difference?
Thanks in Advance,
Regads,
Lijo John.
‎2008 May 12 6:56 AM
Hi,
you can create the pop up screen using the module pool, In the attribute you just have to set the scree radio box to Dialogue.
Do the coding for the module pool as per the requirement. And call the screen using the CALL SCREEN '100' starting as 2 5.
regards,
mahantesh
‎2008 May 12 7:03 AM
Hi
create the screen in module pool programming.
and call it in program like this.
CALL SCREEN '0100' STARTING AT 10 10 ENDING AT 80 30.
i am sending u a sample code.in this program i have created a table.and i displayed that table by using alv grid display.and if i select one record and click on create buton i wil get ascreen with some fields to enter the values.and if i save it i that is saved in the ztable.
TYPE-POOLS: SLIS.
TABLES:ZACTTABLE.
--
DATA:BEGIN OF IT_ITAB OCCURS 0,
KUNNR TYPE KUNNR, "customer number
LAND1 TYPE LAND1, "country key
NAME1 TYPE NAME1, "name
ORT01 TYPE ORT01, "city
PSTLZ TYPE PSTLZ, "postal code
END OF IT_ITAB,
--
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
--
IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV,
--
WA_LAYOUT TYPE SLIS_LAYOUT_ALV,
--
V_KUNNR TYPE ZACTTABLE-KUNNR,
--
T_HEADER TYPE SLIS_T_LISTHEADER,
ok_code like sy-ucomm,
WA_HEADER TYPE SLIS_LISTHEADER.
--
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-000.
SELECT-OPTIONS:SO_KUNNR FOR V_KUNNR.
SELECTION-SCREEN END OF BLOCK B1.
&----
*& start-of-selection event
&----
START-OF-SELECTION.
--
PERFORM DATA_RETRIEVAL.
--
PERFORM BUILD_FIELDCATALOG1.
--
PERFORM BUILD_LAYOUT.
--
PERFORM GRID_DISPLAY_ALV.
&----
*& Form DATA_RETRIEVAL
&----
form to retrive the data
----
FORM DATA_RETRIEVAL .
SELECT KUNNR LAND1 NAME1 ORT01 PSTLZ FROM ZACTTABLE INTO TABLE IT_ITAB
WHERE KUNNR IN SO_KUNNR.
ENDFORM. " DATA_RETRIEVAL
&----
*& Form BUILD_FIELDCATALOG1
&----
form to build catalog
----
FORM BUILD_FIELDCATALOG1 .
WA_FIELDCAT-FIELDNAME = 'KUNNR'.
WA_FIELDCAT-SELTEXT_L = 'CUSTOMER NUMBER'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'LAND1'.
WA_FIELDCAT-SELTEXT_L = 'COUNTRY KEY'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'NAME1'.
WA_FIELDCAT-SELTEXT_L = 'NAME'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'ORT01'.
WA_FIELDCAT-SELTEXT_L = 'CITY'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'PSTLZ'.
WA_FIELDCAT-SELTEXT_L = 'POSTAL CODE'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
ENDFORM. " BUILD_FIELDCATALOG1
&----
*& Form BUILD_LAYOUT
&----
form to design layout
----
FORM BUILD_LAYOUT .
WA_LAYOUT-ZEBRA ='X'.
WA_LAYOUT-NO_VLINE = ' '.
WA_LAYOUT-NO_HLINE = ' '.
WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " BUILD_LAYOUT
&----
*& Form GRID_DISPLAY_ALV
&----
form for display the data
----
FORM GRID_DISPLAY_ALV .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE1'
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = 'AT_USER_COMMAND'
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
I_SAVE = ' '
TABLES
T_OUTTAB = IT_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.
ENDFORM. " GRID_DISPLAY_ALV
&----
*& form top-of-page1
&----
*& Form for top-of-page event
&----
FORM TOP-OF-PAGE1.
WA_HEADER-TYP = 'H'.
WA_HEADER-INFO = 'DETAILS OF CUSTOMERS CREATED BY ME'.
APPEND WA_HEADER TO T_HEADER.
CLEAR WA_HEADER.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = T_HEADER
I_LOGO = 'SUN_TEST_LOGO1'.
REFRESH T_HEADER.
ENDFORM. "top-of-page
&----
*& form set_pf_status
&----
*& Form for pf-status event
&----
FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'CHAITHU'.
"Copy of 'STANDARD' pf_status from fgroup SALV
ENDFORM. "set_pf_status
&----
*& form at_user_command
&----
*& Form for at user-command event.
&----
FORM AT_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN 'CHAITU'.
IF RS_SELFIELD-FIELDNAME EQ 'KUNNR'.
READ TABLE IT_ITAB INDEX RS_SELFIELD-TABINDEX.
ENDIF.
CALL SCREEN '0200'. " STARTING AT 10 10 ENDING AT 80 30.
CLEAR R_UCOMM.
message i002.
WHEN 'CREATE'.
CALL SCREEN '0100' STARTING AT 10 10 ENDING AT 80 30.
message i000.
ENDCASE.
ENDFORM. "at_user_command
&----
*& Module STATUS_0100 OUTPUT
&----
setting status for screen 100.it is for creating the new record
----
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'STATUS1'.
ENDMODULE. " STATUS_0100 OUTPUT
&----
*& Module USER_COMMAND_0100 INPUT
&----
for creating the new record
----
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'EXEC'.
ok_code = sy-ucomm.
MOVE-CORRESPONDING IT_ITAB TO ZACTTABLE.
APPEND IT_ITAB .
IF SY-SUBRC EQ 0.
MESSAGE I000.
ELSE.
MESSAGE I001.
ENDIF.
PERFORM GRID_DISPLAY_ALV.
INSERT ZACTTABLE.
clear ok_code.
leave to screen 0.
LEAVE PROGRAM.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
&----
*& Module STATUS_0200 OUTPUT
&----
setting status for screen 200.it is for changing record
----
MODULE STATUS_0200 OUTPUT.
SET PF-STATUS 'STATUS2'.
ENDMODULE. " STATUS_0200 OUTPUT
&----
*& Module USER_COMMAND_0200 INPUT
&----
for modyfing the existing record
----
MODULE USER_COMMAND_0200 INPUT.
CASE SY-UCOMM.
WHEN 'CHNG'.
ok_code = sy-ucomm.
MODIFY IT_ITAB INDEX SY-TABIX.
MOVE-CORRESPONDING IT_ITAB TO ZACTTABLE.
CLEAR IT_ITAB.
if sy-subrc eq 0.
message i002.
endif.
PERFORM GRID_DISPLAY_ALV.
MODIFY ZACTTABLE.
clear ok_code.
leave to screen 0.
LEAVE PROGRAM.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0200 INPUT