‎2007 Apr 05 11:36 AM
Hello everybody,
Can any one send me some very very simple programs on OOPs concept.
I'll be very thankful for those programs...
‎2007 Apr 05 12:25 PM
Hi,
Here i am giving one example to u check it. It is very helpful to u.
&----
*& Report ZEXAMPLE3
*&
&----
*&
*&
&----
REPORT ZTMW_WRKBNCH_TABS.
DATA:OKCODE LIKE SY-UCOMM. " ok code for screen 101
DATA:SCRNO(4) TYPE N. "FOR 101 SCREEN
DATA:T_NUM(2),SCR(4).
SELECT SINGLE WORK_BENCH_TAB INTO T_NUM FROM ZTMW_WRKBNCH_TAB
WHERE TAB_STATUS = 'X'.
IF STRLEN( T_NUM ) = 1.
CONCATENATE '300' T_NUM INTO SCR.
ELSE.
CONCATENATE '30' T_NUM INTO SCR.
ENDIF.
SCRNO = SCR.
CONTROLS TABS TYPE TABSTRIP. "TAB STRIP IN SCREEN 101
perform ref_texts.
SET SCREEN 0101.
DATA: h LIKE d020s,
f LIKE d021s OCCURS 0 WITH HEADER LINE,
e LIKE d022s OCCURS 0 WITH HEADER LINE,
m LIKE d023s OCCURS 0 WITH HEADER LINE,
f1(100), f2(100), f3(100), dynpro_id(44).
DATA:TAB(5) TYPE C,
tab_num type ztmw_wrkbnch_tab-WORK_BENCH_TAB,
tab_name type ztmw_wrkbnch_tab-TAB_NAME,
ACT_TAB(5) TYPE C,
TAB_STATUS TYPE ztmw_wrkbnch_tab-TAB_STATUS,NUM(2).
DATA:GT_ZTMW_HEADER_HIS TYPE TABLE OF ZTMW_HEADER_HIS,
GT_ZTMW_HEADER_WIP TYPE TABLE OF ZTMW_HEADER_WIP,
G_CONTAINER TYPE SCRFNAME VALUE 'TABC',
GRID1 TYPE REF TO CL_GUI_ALV_GRID,
G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA:LAYOUT TYPE LVC_S_LAYO.
DATA:FCAT TYPE LVC_T_FCAT.
Field-symbols: <lfs_fieldcat> TYPE lvc_s_fcat.
&----
*& Module STATUS_0101 OUTPUT
MODULE STATUS_0101 OUTPUT.
SET PF-STATUS 'MENU1'.
SET TITLEBAR 'TIT1'.
DO 20 TIMES.
NUM = SY-INDEX.
CONCATENATE 'TAB' NUM INTO ACT_TAB.
SELECT TAB_STATUS INTO TAB_STATUS FROM ZTMW_WRKBNCH_TAB
WHERE WORK_BENCH_TAB = NUM.
IF tab_status = 'X'.
LOOP AT SCREEN.
IF SCREEN-NAME = ACT_TAB.
SCREEN-INVISIBLE = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
IF SCREEN-NAME = ACT_TAB.
SCREEN-INVISIBLE = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDSELECT.
IF SY-SUBRC <> 0.
LOOP AT SCREEN.
IF SCREEN-NAME = ACT_TAB.
SCREEN-INVISIBLE = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDDO.
ENDMODULE. " STATUS_0101 OUTPUT
&----
*& Module USER_COMMAND_0101 INPUT
MODULE USER_COMMAND_0101 INPUT.
CASE OKCODE.
WHEN 'TAB1'.
SCRNO = 3001.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB2'.
SCRNO = 3002.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB3'.
SCRNO = 3003.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB4'.
SCRNO = 3004.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB5'.
SCRNO = 3005.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB6'.
SCRNO = 3006.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB7'.
SCRNO = 3007.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB8'.
SCRNO = 3008.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB9'.
SCRNO = 3009.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB10'.
SCRNO = 3010.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB11'.
SCRNO = 3011.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB12'.
SCRNO = 3012.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB13'.
SCRNO = 3013.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB14'.
SCRNO = 3014.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB15'.
SCRNO = 3015.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB16'.
SCRNO = 3016.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB17'.
SCRNO = 3017.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB18'.
SCRNO = 3018.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB19'.
SCRNO = 3019.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB20'.
SCRNO = 3020.
TABS-ACTIVETAB = OKCODE.
WHEN 'BACK'.
set screen 0.
WHEN 'REFRESH'.
perform ref_texts.
ENDCASE.
ENDMODULE. " USER_COMMAND_0101 INPUT
FORM ref_texts .
Format Screen ID
dynpro_id = sy-repid.
dynpro_id+40(4) = '0101'.
Import Screen data in tables
IMPORT DYNPRO h f e m ID dynpro_id.
CHECK sy-subrc EQ 0.
Modify Screen Data
SELECT WORK_BENCH_TAB TAB_NAME into (tab_num,tab_name)
FROM ZTMW_WRKBNCH_TAB WHERE TAB_STATUS = 'X'.
CONCATENATE 'TAB' tab_num INTO TAB.
LOOP AT f WHERE fnam EQ TAB.
f-stxt = tab_name.
MODIFY f.
ENDLOOP.
ENDSELECT.
CHECK sy-subrc EQ 0.
Export Screen Data
EXPORT DYNPRO h f e m ID dynpro_id.
CHECK sy-subrc EQ 0.
Generate Screen for changes to take effect
GENERATE DYNPRO h f e m ID dynpro_id MESSAGE f1 LINE f2 WORD f3.
ENDFORM. " ref_texts
&----
*& Module STATUS_3007 OUTPUT
MODULE GRID OUTPUT.
IF G_CUSTOM_CONTAINER IS INITIAL.
CREATE OBJECT G_CUSTOM_CONTAINER
EXPORTING CONTAINER_NAME = G_CONTAINER.
CREATE OBJECT GRID1
EXPORTING I_PARENT = G_CUSTOM_CONTAINER.
PERFORM LAYOUT.
PERFORM FIELD_CAT.
PERFORM FILL_DATA.
CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_LAYOUT = LAYOUT
CHANGING
IT_FIELDCATALOG = FCAT[]
IT_OUTTAB = GT_ZTMW_HEADER_HIS.
ENDIF.
ENDMODULE. " STATUS_3007 OUTPUT
&----
*& Form FIELD_CAT
&----
text
----
FORM FIELD_CAT.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME = 'ZTMW_HEADER_IO'
CHANGING
CT_FIELDCAT = FCAT[].
LOOP AT FCAT ASSIGNING <lfs_fieldcat>.
CASE <lfs_fieldcat>-fieldname.
WHEN 'TRANSACTION_NUM'.
<lfs_fieldcat>-coltext = 'IDOC no.'.
WHEN 'FEED_CODE'.
<lfs_fieldcat>-coltext = 'Feed Code'.
WHEN 'BOL_NUM'.
<lfs_fieldcat>-coltext = 'EXT. BOL'.
WHEN 'TERMINAL_CODE'.
<lfs_fieldcat>-coltext = 'Unc.Term Cd'.
WHEN 'TRANSCATION_DATE'.
<lfs_fieldcat>-coltext = 'Trans Date'.
WHEN 'TRANSCATION_TIME'.
<lfs_fieldcat>-coltext = 'Trans Time'.
WHEN 'TRANS_STATUS'.
<lfs_fieldcat>-coltext = 'BOL Status'.
WHEN 'VOID_STATUS'.
<lfs_fieldcat>-coltext = 'Void Status'.
WHEN 'HOLD_STATUS'.
<lfs_fieldcat>-coltext = 'Hold Status'.
WHEN 'PLANT'.
<lfs_fieldcat>-coltext = 'Plant'.
ENDCASE.
ENDLOOP.
ENDFORM. "FIELD_CAT
&----
*& Form FILL_DATA
&----
text
----
FORM FILL_DATA.
CLEAR GT_ZTMW_HEADER_HIS.
IF WIP_ONLY = 'X'.
SELECT * FROM ZTMW_HEADER_WIP INTO TABLE GT_ZTMW_HEADER_HIS.
UP TO MAX_HITS ROWS.
ELSEIF HIS_ONLY = 'X'.
SELECT * FROM ZTMW_HEADER_HIS INTO TABLE GT_ZTMW_HEADER_HIS
UP TO MAX_HITS ROWS.
ELSE.
SELECT * FROM ZTMW_HEADER_HIS INTO TABLE GT_ZTMW_HEADER_HIS.
SELECT * FROM ZTMW_HEADER_WIP INTO TABLE GT_ZTMW_HEADER_WIP.
INSERT LINES OF GT_ZTMW_HEADER_HIS INTO TABLE
GT_ZTMW_HEADER_WIP.
SORT GT_ZTMW_HEADER_WIP.
CLEAR GT_ZTMW_HEADER_HIS[].
INSERT LINES OF GT_ZTMW_HEADER_WIP FROM 1 TO MAX_HITS INTO
TABLE GT_ZTMW_HEADER_HIS .
*
ENDIF.
ENDFORM. "FILL_DATA
FORM LAYOUT.
LAYOUT-EDIT = 'X'.
layout-grid_title = 'List Of Bills Of Lading'.
ENDFORM. "LAYOUT
Hope this resolves your query.
Reward all the helpful answers.
Regards
‎2007 Apr 05 11:38 AM
Go to ABAPDOCU transaction.
IN the left hand pane, you can see a node For ABAP Object, YOu can open that node to see various examples for beginners.
Regards,
Ravi
‎2007 Apr 05 11:49 AM
Hello
I have posted several sample reports within this forum (<i>ABAP Objects</i>). Simply search for term <b>ZUS_SDN</b>.
Regards
Uwe
‎2007 Apr 05 12:05 PM
hi,
<b>sorry earlier program was not working try this</b>
check this simple example.
create a screen 100 and place a custom control on the screen,give a name.
data:g_cont type ref to cl_gui_custom_container,
g_grid type ref to cl_gui_alv_grid,
ok_code like sy-ucomm.
DATA:itab TYPE STANDARD TABLE OF sflight.
start-of-selection.
set screen 100.
SELECT carrid connid price FROM sflight
INTO CORRESPONDING FIELDS OF TABLE itab.
&----
*& Module STATUS_0100 OUTPUT
&----
text
----
module STATUS_0100 output.
SET PF-STATUS 'PF1'.
SET TITLEBAR 'xxx'.
CREATE OBJECT g_cont
EXPORTING
container_name = 'CONT1'.
CREATE OBJECT g_grid
EXPORTING
i_parent = g_cont
.
CALL METHOD G_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'SFLIGHT'
CHANGING
IT_OUTTAB = itab
.
endmodule. " STATUS_0100 OUTPUT
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE user_command_0100 INPUT.
CALL METHOD cl_gui_cfw=>dispatch.
ok_code = sy-ucomm.
CASE ok_code.
WHEN 'BACK'.
LEAVE PROGRAM.
ENDCASE.
CLEAR ok_code.
ENDMODULE. " USER_COMMAND_0100 INPUT
Thanks,
Message was edited by:
sowjanya s
Message was edited by:
sowjanya s
‎2007 Apr 05 12:25 PM
Hi,
Here i am giving one example to u check it. It is very helpful to u.
&----
*& Report ZEXAMPLE3
*&
&----
*&
*&
&----
REPORT ZTMW_WRKBNCH_TABS.
DATA:OKCODE LIKE SY-UCOMM. " ok code for screen 101
DATA:SCRNO(4) TYPE N. "FOR 101 SCREEN
DATA:T_NUM(2),SCR(4).
SELECT SINGLE WORK_BENCH_TAB INTO T_NUM FROM ZTMW_WRKBNCH_TAB
WHERE TAB_STATUS = 'X'.
IF STRLEN( T_NUM ) = 1.
CONCATENATE '300' T_NUM INTO SCR.
ELSE.
CONCATENATE '30' T_NUM INTO SCR.
ENDIF.
SCRNO = SCR.
CONTROLS TABS TYPE TABSTRIP. "TAB STRIP IN SCREEN 101
perform ref_texts.
SET SCREEN 0101.
DATA: h LIKE d020s,
f LIKE d021s OCCURS 0 WITH HEADER LINE,
e LIKE d022s OCCURS 0 WITH HEADER LINE,
m LIKE d023s OCCURS 0 WITH HEADER LINE,
f1(100), f2(100), f3(100), dynpro_id(44).
DATA:TAB(5) TYPE C,
tab_num type ztmw_wrkbnch_tab-WORK_BENCH_TAB,
tab_name type ztmw_wrkbnch_tab-TAB_NAME,
ACT_TAB(5) TYPE C,
TAB_STATUS TYPE ztmw_wrkbnch_tab-TAB_STATUS,NUM(2).
DATA:GT_ZTMW_HEADER_HIS TYPE TABLE OF ZTMW_HEADER_HIS,
GT_ZTMW_HEADER_WIP TYPE TABLE OF ZTMW_HEADER_WIP,
G_CONTAINER TYPE SCRFNAME VALUE 'TABC',
GRID1 TYPE REF TO CL_GUI_ALV_GRID,
G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA:LAYOUT TYPE LVC_S_LAYO.
DATA:FCAT TYPE LVC_T_FCAT.
Field-symbols: <lfs_fieldcat> TYPE lvc_s_fcat.
&----
*& Module STATUS_0101 OUTPUT
MODULE STATUS_0101 OUTPUT.
SET PF-STATUS 'MENU1'.
SET TITLEBAR 'TIT1'.
DO 20 TIMES.
NUM = SY-INDEX.
CONCATENATE 'TAB' NUM INTO ACT_TAB.
SELECT TAB_STATUS INTO TAB_STATUS FROM ZTMW_WRKBNCH_TAB
WHERE WORK_BENCH_TAB = NUM.
IF tab_status = 'X'.
LOOP AT SCREEN.
IF SCREEN-NAME = ACT_TAB.
SCREEN-INVISIBLE = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
IF SCREEN-NAME = ACT_TAB.
SCREEN-INVISIBLE = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDSELECT.
IF SY-SUBRC <> 0.
LOOP AT SCREEN.
IF SCREEN-NAME = ACT_TAB.
SCREEN-INVISIBLE = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDDO.
ENDMODULE. " STATUS_0101 OUTPUT
&----
*& Module USER_COMMAND_0101 INPUT
MODULE USER_COMMAND_0101 INPUT.
CASE OKCODE.
WHEN 'TAB1'.
SCRNO = 3001.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB2'.
SCRNO = 3002.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB3'.
SCRNO = 3003.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB4'.
SCRNO = 3004.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB5'.
SCRNO = 3005.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB6'.
SCRNO = 3006.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB7'.
SCRNO = 3007.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB8'.
SCRNO = 3008.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB9'.
SCRNO = 3009.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB10'.
SCRNO = 3010.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB11'.
SCRNO = 3011.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB12'.
SCRNO = 3012.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB13'.
SCRNO = 3013.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB14'.
SCRNO = 3014.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB15'.
SCRNO = 3015.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB16'.
SCRNO = 3016.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB17'.
SCRNO = 3017.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB18'.
SCRNO = 3018.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB19'.
SCRNO = 3019.
TABS-ACTIVETAB = OKCODE.
WHEN 'TAB20'.
SCRNO = 3020.
TABS-ACTIVETAB = OKCODE.
WHEN 'BACK'.
set screen 0.
WHEN 'REFRESH'.
perform ref_texts.
ENDCASE.
ENDMODULE. " USER_COMMAND_0101 INPUT
FORM ref_texts .
Format Screen ID
dynpro_id = sy-repid.
dynpro_id+40(4) = '0101'.
Import Screen data in tables
IMPORT DYNPRO h f e m ID dynpro_id.
CHECK sy-subrc EQ 0.
Modify Screen Data
SELECT WORK_BENCH_TAB TAB_NAME into (tab_num,tab_name)
FROM ZTMW_WRKBNCH_TAB WHERE TAB_STATUS = 'X'.
CONCATENATE 'TAB' tab_num INTO TAB.
LOOP AT f WHERE fnam EQ TAB.
f-stxt = tab_name.
MODIFY f.
ENDLOOP.
ENDSELECT.
CHECK sy-subrc EQ 0.
Export Screen Data
EXPORT DYNPRO h f e m ID dynpro_id.
CHECK sy-subrc EQ 0.
Generate Screen for changes to take effect
GENERATE DYNPRO h f e m ID dynpro_id MESSAGE f1 LINE f2 WORD f3.
ENDFORM. " ref_texts
&----
*& Module STATUS_3007 OUTPUT
MODULE GRID OUTPUT.
IF G_CUSTOM_CONTAINER IS INITIAL.
CREATE OBJECT G_CUSTOM_CONTAINER
EXPORTING CONTAINER_NAME = G_CONTAINER.
CREATE OBJECT GRID1
EXPORTING I_PARENT = G_CUSTOM_CONTAINER.
PERFORM LAYOUT.
PERFORM FIELD_CAT.
PERFORM FILL_DATA.
CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_LAYOUT = LAYOUT
CHANGING
IT_FIELDCATALOG = FCAT[]
IT_OUTTAB = GT_ZTMW_HEADER_HIS.
ENDIF.
ENDMODULE. " STATUS_3007 OUTPUT
&----
*& Form FIELD_CAT
&----
text
----
FORM FIELD_CAT.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME = 'ZTMW_HEADER_IO'
CHANGING
CT_FIELDCAT = FCAT[].
LOOP AT FCAT ASSIGNING <lfs_fieldcat>.
CASE <lfs_fieldcat>-fieldname.
WHEN 'TRANSACTION_NUM'.
<lfs_fieldcat>-coltext = 'IDOC no.'.
WHEN 'FEED_CODE'.
<lfs_fieldcat>-coltext = 'Feed Code'.
WHEN 'BOL_NUM'.
<lfs_fieldcat>-coltext = 'EXT. BOL'.
WHEN 'TERMINAL_CODE'.
<lfs_fieldcat>-coltext = 'Unc.Term Cd'.
WHEN 'TRANSCATION_DATE'.
<lfs_fieldcat>-coltext = 'Trans Date'.
WHEN 'TRANSCATION_TIME'.
<lfs_fieldcat>-coltext = 'Trans Time'.
WHEN 'TRANS_STATUS'.
<lfs_fieldcat>-coltext = 'BOL Status'.
WHEN 'VOID_STATUS'.
<lfs_fieldcat>-coltext = 'Void Status'.
WHEN 'HOLD_STATUS'.
<lfs_fieldcat>-coltext = 'Hold Status'.
WHEN 'PLANT'.
<lfs_fieldcat>-coltext = 'Plant'.
ENDCASE.
ENDLOOP.
ENDFORM. "FIELD_CAT
&----
*& Form FILL_DATA
&----
text
----
FORM FILL_DATA.
CLEAR GT_ZTMW_HEADER_HIS.
IF WIP_ONLY = 'X'.
SELECT * FROM ZTMW_HEADER_WIP INTO TABLE GT_ZTMW_HEADER_HIS.
UP TO MAX_HITS ROWS.
ELSEIF HIS_ONLY = 'X'.
SELECT * FROM ZTMW_HEADER_HIS INTO TABLE GT_ZTMW_HEADER_HIS
UP TO MAX_HITS ROWS.
ELSE.
SELECT * FROM ZTMW_HEADER_HIS INTO TABLE GT_ZTMW_HEADER_HIS.
SELECT * FROM ZTMW_HEADER_WIP INTO TABLE GT_ZTMW_HEADER_WIP.
INSERT LINES OF GT_ZTMW_HEADER_HIS INTO TABLE
GT_ZTMW_HEADER_WIP.
SORT GT_ZTMW_HEADER_WIP.
CLEAR GT_ZTMW_HEADER_HIS[].
INSERT LINES OF GT_ZTMW_HEADER_WIP FROM 1 TO MAX_HITS INTO
TABLE GT_ZTMW_HEADER_HIS .
*
ENDIF.
ENDFORM. "FILL_DATA
FORM LAYOUT.
LAYOUT-EDIT = 'X'.
layout-grid_title = 'List Of Bills Of Lading'.
ENDFORM. "LAYOUT
Hope this resolves your query.
Reward all the helpful answers.
Regards