‎2008 Feb 05 1:32 AM
After I set all the input field to be required for my 3 tabs in my tabstrip, I am only able to save the data in text field after I click the save button the second time and not the first time.
Clicking Save button first time:
http://img407.imageshack.us/img407/6461/screenjk0.png
Clicking Save button second time:
http://img407.imageshack.us/img407/3266/screen2ng4.png
Here are my codes:
-
REPORT ZTREE_STRUCTURE2.
DATA : IO_NAME(40) TYPE C,
IO_AGE(40) TYPE C,
IO_GENDER(40) TYPE C.
DATA: P_HERA TYPE DNTAB-TABNAME VALUE 'ZHERA',
ITAB_HERA TYPE TABLE OF ZHERA,
FIELD_COUNT TYPE I,
WA_HERA LIKE LINE OF ITAB_HERA,
P_HERA2 TYPE DNTAB-TABNAME VALUE 'ZHERA2',
ITAB_HERA2 TYPE TABLE OF ZHERA2,
WA_HERA2 LIKE LINE OF ITAB_HERA2.
SELECT * INTO TABLE ITAB_HERA FROM ZHERA.
SELECT * INTO TABLE ITAB_HERA2 FROM ZHERA2.
*&SPWIZARD: FUNCTION CODES FOR TABSTRIP 'TABNAME2'
CONSTANTS: BEGIN OF C_TABNAME2,
TAB1 LIKE SY-UCOMM VALUE 'TABNAME2_FC1',
TAB2 LIKE SY-UCOMM VALUE 'TABNAME2_FC2',
TAB3 LIKE SY-UCOMM VALUE 'TABNAME2_FC3',
END OF C_TABNAME2.
*&SPWIZARD: DATA FOR TABSTRIP 'TABNAME2'
CONTROLS: TABNAME2 TYPE TABSTRIP.
DATA: BEGIN OF G_TABNAME2,
SUBSCREEN LIKE SY-DYNNR,
PROG LIKE SY-REPID VALUE 'ZTREE_STRUCTURE2',
PRESSED_TAB LIKE SY-UCOMM VALUE C_TABNAME2-TAB1,
END OF G_TABNAME2.
CONSTANTS: BEGIN OF C_TRANSFORM,
TAB1 LIKE SY-UCOMM VALUE 'TRANSFORM_FC1',
TAB2 LIKE SY-UCOMM VALUE 'TRANSFORM_FC2',
END OF C_TRANSFORM.
*&SPWIZARD: DATA FOR TABSTRIP 'TRANSFORM'
CONTROLS: TRANSFORM TYPE TABSTRIP.
DATA: BEGIN OF G_TRANSFORM,
SUBSCREEN LIKE SY-DYNNR,
PROG LIKE SY-REPID VALUE 'ZSCSDM_MODIFY_TRANSFORM_HERA',
PRESSED_TAB LIKE SY-UCOMM VALUE C_TRANSFORM-TAB1,
END OF G_TRANSFORM.
DATA: OK_CODE LIKE SY-UCOMM.
START-OF-SELECTION.
CALL SCREEN 9000.
MODULE STATUS_9000 OUTPUT.
SET PF-STATUS 'SCREEN_9000'.
SET TITLEBAR 'RWB_TRANSFORM'.
ENDMODULE. "STATUS_8000 OUTPUT
MODULE TABNAME2_ACTIVE_TAB_SET OUTPUT.
TABNAME2-ACTIVETAB = G_TABNAME2-PRESSED_TAB.
CASE G_TABNAME2-PRESSED_TAB.
WHEN C_TABNAME2-TAB1.
G_TABNAME2-SUBSCREEN = '9001'.
WHEN C_TABNAME2-TAB2.
G_TABNAME2-SUBSCREEN = '9002'.
WHEN C_TABNAME2-TAB3.
G_TABNAME2-SUBSCREEN = '9003'.
WHEN OTHERS.
*&SPWIZARD: DO NOTHING
ENDCASE.
ENDMODULE. "TABNAME2_ACTIVE_TAB_SET OUTPUT
*&SPWIZARD: INPUT MODULE FOR TS 'TABNAME2'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: GETS ACTIVE TAB
MODULE TABNAME2_ACTIVE_TAB_GET INPUT.
OK_CODE = SY-UCOMM.
CASE OK_CODE.
WHEN C_TABNAME2-TAB1.
G_TABNAME2-PRESSED_TAB = C_TABNAME2-TAB1.
WHEN C_TABNAME2-TAB2.
G_TABNAME2-PRESSED_TAB = C_TABNAME2-TAB2.
WHEN C_TABNAME2-TAB3.
G_TABNAME2-PRESSED_TAB = C_TABNAME2-TAB3.
WHEN OTHERS.
*&SPWIZARD: DO NOTHING
ENDCASE.
ENDMODULE. "TABNAME2_ACTIVE_TAB_GET INPUT
MODULE USER_COMMAND_9000 INPUT.
IF SY-UCOMM = 'BACK'.
LEAVE PROGRAM.
ELSEIF SY-UCOMM = 'EXIT'.
LEAVE PROGRAM.
ELSEIF SY-UCOMM = 'CANCEL'.
LEAVE PROGRAM.
ELSEIF SY-UCOMM = 'SAVE'.
ENDIF.
ENDMODULE. "USER_COMMAND_9000 INPUT
FORM INSERT_TABLE.
WA_HERA-NAME = IO_NAME.
WA_HERA-AGE = IO_AGE.
WA_HERA2-GENDER = IO_GENDER.
INSERT INTO ZHERA VALUES WA_HERA.
INSERT INTO ZHERA2 VALUES WA_HERA2.
MESSAGE S001(ZMSG02).
ENDFORM. "UPDATE_TABLE
-
Can anyone tell me what is wrong with my codes?
‎2008 Feb 05 3:48 AM
‎2008 Feb 05 3:51 AM
Screen 9000 Screen with tabstrip
PROCESS BEFORE OUTPUT.
*&SPWIZARD: PBO FLOW LOGIC FOR TABSTRIP 'TABNAME2'
MODULE TABNAME2_ACTIVE_TAB_SET.
CALL SUBSCREEN:
9001_SCA INCLUDING G_TABNAME2-PROG '9001',
9002_SCA INCLUDING G_TABNAME2-PROG '9002',
9003_SCA INCLUDING G_TABNAME2-PROG '9003'.
MODULE STATUS_9000.
* MODULE SCREEN_SET.
*
PROCESS AFTER INPUT.
*&SPWIZARD: PAI FLOW LOGIC FOR TABSTRIP 'TABNAME2'
MODULE TABNAME2_ACTIVE_TAB_GET.
MODULE USER_COMMAND_9000.
CALL SUBSCREEN:
9001_SCA,
9002_SCA,
9003_SCA.
* module exit_prog at exit-command.
Screen 9001 Screen with first tab
PROCESS BEFORE OUTPUT.
MODULE PBO_9001.
PROCESS AFTER INPUT.
CHAIN.
FIELD:IO_NAME.
ENDCHAIN.
MODULE USER_COMMAND_9001.
Screen 9002 Screen with second tab
PROCESS BEFORE OUTPUT.
MODULE PBO_9002.
*
PROCESS AFTER INPUT.
CHAIN.
FIELD:IO_AGE.
ENDCHAIN.
MODULE USER_COMMAND_9002.
Screen 9003 Screen with third tab
PROCESS BEFORE OUTPUT.
MODULE PBO_9003.
*
PROCESS AFTER INPUT.
CHAIN.
FIELD:IO_GENDER.
ENDCHAIN.
MODULE USER_COMMAND_9003.
‎2008 Feb 05 4:02 AM
Hi,
*MODULE USER_COMMAND_9000 INPUT.
IF SY-UCOMM = 'BACK'.
LEAVE PROGRAM.
ELSEIF SY-UCOMM = 'EXIT'.
LEAVE PROGRAM.
ELSEIF SY-UCOMM = 'CANCEL'.
LEAVE PROGRAM.
ELSEIF SY-UCOMM = 'SAVE'.
UPDATE TABLE < tabname >.
ENDIF.
ENDMODULE. "USER_COMMAND_9000 INPUT*
Regards