‎2008 Feb 01 2:49 PM
hello gurus ,
can I insert the data in to table control directly and insert in to database table through table control , can it possible , if .........
plz help me .
Thanks in advance .
Joy .
‎2008 Feb 01 2:59 PM
se 38 code is as follows
PROGRAM Z11GAURAV_ASSIGN_6 MESSAGE-ID Z11GAURAV6 .
*******************
*CONTROL STRUCTURE
*******************
CONTROLS : TABSTRP TYPE TABSTRIP.
CONTROLS : TABLE_CONTROL TYPE TABLEVIEW USING SCREEN 0104.
******************
*TABLES
******************
TABLES: Z11_CUSTOMER1, Z11_CUST_SALES.
DATA: T_BANK TYPE STANDARD TABLE OF Z11_CUST_BANK WITH HEADER LINE.
******************
*CONSTANTS
******************
CONSTANTS: CCR(3) VALUE 'CRT'.
CONSTANTS: CCH(3) VALUE 'CHG'.
CONSTANTS: CDS(3) VALUE 'DSP'.
CONSTANTS: CSA(3) VALUE 'SAV'.
CONSTANTS: CBC(3) VALUE 'BCK'.
CONSTANTS: CT1(4) VALUE 'TAB1'.
CONSTANTS: CT2(4) VALUE 'TAB2'.
CONSTANTS: CT3(4) VALUE 'TAB3'.
CONSTANTS: CSL(3) VALUE 'SAL'.
**************************************************
*STRUCTURE TO GET PRESSED TAB & TO SET DEFAULT TAB
* & Screen no. & program name
**************************************************
DATA: BEGIN OF G_TABSTRP,
SUBSCREEN LIKE SY-DYNNR,
PROG LIKE SY-REPID VALUE 'Z11GAURAV_ASSIGN_6',
PRESSED_TAB LIKE SY-UCOMM VALUE 'TAB1',
END OF G_TABSTRP.
****************
*OK CODES
****************
DATA: OK_CODE_100(4) , SAVE_OK_100(4),OK_CODE_105(4),
OK_CODE_101(4).
DATA: OK_CODE TYPE SY-UCOMM.
****************
*VARIABLES
****************
DATA: V_KUNNR TYPE KUNNR.
DATA: V_REPLY(1).
DATA: V_FLAG TYPE C VALUE '1'.
DATA: V_FLAG1 TYPE C VALUE '0',
V_FLAG2 TYPE C VALUE '0',
V_FLAG3 TYPE C VALUE '0'.
DATA: V_CUSTOMER TYPE KUNNR.
*******MENU AND TITLE FOR SCREEN 0100*******
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'Z11GAURAV_XD'.
SET TITLEBAR 'MAIN'.
ENDMODULE. " STATUS_0100 OUTPUT
*******VALIDATIONS FOR CUSTOMER NO.************
*&---------------------------------------------------------------------*
*& Module validate_KUNNR INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE VALIDATE_KUNNR INPUT.
*VAL....1 NULL value
IF Z11_CUSTOMER1-KUNNR IS INITIAL.
CLEAR Z11_CUSTOMER1.
MESSAGE E004 WITH TEXT-010.
ENDIF.
*VAL....2 EXISTANCE
CASE OK_CODE_100.
WHEN CCR. "CREATE
SELECT SINGLE KUNNR INTO V_KUNNR FROM Z11_CUSTOMER1 WHERE KUNNR =
Z11_CUSTOMER1-KUNNR.
IF SY-SUBRC = 0.
CLEAR Z11_CUSTOMER1.
MESSAGE E001 WITH TEXT-001.
ENDIF.
WHEN CCH. "CHANGE
SELECT SINGLE KUNNR INTO V_KUNNR FROM Z11_CUSTOMER1 WHERE KUNNR =
Z11_CUSTOMER1-KUNNR.
IF SY-SUBRC <> 0.
CLEAR Z11_CUSTOMER1.
MESSAGE E002 WITH TEXT-002.
ENDIF.
WHEN CDS. "DISPLAY
SELECT SINGLE KUNNR INTO V_KUNNR FROM Z11_CUSTOMER1 WHERE KUNNR =
Z11_CUSTOMER1-KUNNR.
IF SY-SUBRC <> 0.
CLEAR Z11_CUSTOMER1.
MESSAGE E002 WITH TEXT-002.
ENDIF.
WHEN ' '.
MESSAGE E013 WITH TEXT-013.
ENDCASE.
ENDMODULE. " validate_KUNNR INPUT
*******EXIT COMMAND************
*&---------------------------------------------------------------------*
*& Module exit_prog INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE EXIT_PROG INPUT.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = TEXT-006
* DIAGNOSE_OBJECT = ' '
TEXT_QUESTION = TEXT-005
TEXT_BUTTON_1 = TEXT-003
* ICON_BUTTON_1 = ' '
TEXT_BUTTON_2 = TEXT-004
* ICON_BUTTON_2 = ' '
* DEFAULT_BUTTON = '1'
DISPLAY_CANCEL_BUTTON = ' '
* USERDEFINED_F1_HELP = ' '
* START_COLUMN = 25
* START_ROW = 6
* POPUP_TYPE =
* IV_QUICKINFO_BUTTON_1 = ' '
* IV_QUICKINFO_BUTTON_2 = ' '
IMPORTING
ANSWER = V_REPLY
* TABLES
* PARAMETER =
EXCEPTIONS
TEXT_NOT_FOUND = 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.
IF V_REPLY = 1.
CLEAR V_REPLY.
LEAVE PROGRAM.
ELSEIF V_REPLY = 2.
CLEAR V_REPLY.
EXIT.
ENDIF.
ENDMODULE. " exit_prog INPUT
*****USER COMMAND FOR SCREEN 0100******
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
CASE OK_CODE_100.
WHEN CCH. "CHANGE GO TO SCREEN 101
SAVE_OK_100 = OK_CODE_100.
CLEAR OK_CODE_100.
LEAVE TO SCREEN 101.
WHEN CCR. "CREATE GO TO SCREEN 101
SAVE_OK_100 = OK_CODE_100.
CLEAR OK_CODE_100.
LEAVE TO SCREEN 101.
WHEN CDS. "DISPLAY GO TO SCREEN 101
SAVE_OK_100 = OK_CODE_100.
CLEAR OK_CODE_100.
LEAVE TO SCREEN 101.
*IF INITIAL SCREEN LEAVE PROGRAM
WHEN CBC. "BACK
IF SY-DYNNR = '0100'.
CLEAR OK_CODE_100.
LEAVE PROGRAM.
ENDIF.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
****MENU AND TITLE BAR FOR SCREEN 0101******
*&---------------------------------------------------------------------*
*& Module STATUS_0101 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0101 OUTPUT.
SET PF-STATUS 'Z11GAURAV_XD2'.
SET TITLEBAR 'TIL'.
CASE SY-UCOMM.
WHEN CT1. "TAB 1
SET TITLEBAR 'TAB1'.
WHEN CT2. "TAB 2
SET TITLEBAR 'TAB2'.
WHEN CT3. "TAB 3
SET TITLEBAR 'TAB3'.
WHEN 'LSF'. "NEXT TAB
IF V_FLAG = '1'.
SET TITLEBAR 'TAB1'.
ELSEIF V_FLAG = '2'.
SET TITLEBAR 'TAB2'.
ELSEIF V_FLAG = '3'.
SET TITLEBAR 'TAB3'.
ENDIF.
WHEN 'RSF'. "PREVIOUS TAB
IF V_FLAG = '1'.
SET TITLEBAR 'TAB1'.
ELSEIF V_FLAG = '2'.
SET TITLEBAR 'TAB2'.
ELSEIF V_FLAG = '3'.
SET TITLEBAR 'TAB3'.
ENDIF.
ENDCASE.
ENDMODULE. " STATUS_0101 OUTPUT
*SET PRESSED TAB AND SUBSCREEN FOR THAT TAB
*&---------------------------------------------------------------------*
*& Module TABSTRP_ACTIVE_TAB_SET OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE TABSTRP_ACTIVE_TAB_SET OUTPUT.
TABSTRP-ACTIVETAB = G_TABSTRP-PRESSED_TAB.
IF G_TABSTRP-PRESSED_TAB = CT1 OR V_FLAG = '1'.
G_TABSTRP-SUBSCREEN = '0102'.
ELSEIF G_TABSTRP-PRESSED_TAB = CT2 OR V_FLAG = '2'.
G_TABSTRP-SUBSCREEN = '0103'.
ELSEIF G_TABSTRP-PRESSED_TAB = CT3 OR V_FLAG = '3'..
G_TABSTRP-SUBSCREEN = '0104'.
ENDIF.
ENDMODULE. " TABSTRP_ACTIVE_TAB_SET OUTPUT
**SETTING SCREEN ATTRIBUTES****
*&---------------------------------------------------------------------*
*& Module SCREEN_SET OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE SCREEN_SET OUTPUT.
CASE SAVE_OK_100.
WHEN CDS. "DISPLAY
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'G2'.
SCREEN-ACTIVE = 1.
SCREEN-INPUT = 0.
SCREEN-OUTPUT = 0.
SCREEN-INVISIBLE = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-GROUP1 = 'G3'.
SCREEN-ACTIVE = 1.
SCREEN-INPUT = 1.
SCREEN-OUTPUT = 1.
SCREEN-INVISIBLE = 0.
MODIFY SCREEN.
ENDIF.
IF SCREEN-GROUP1 = 'G4'.
SCREEN-ACTIVE = 1.
SCREEN-INPUT = 0.
SCREEN-OUTPUT = 1.
SCREEN-INVISIBLE = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDCASE.
ENDMODULE. " SCREEN_SET OUTPUT
***FOR SUB SCREEN 0102, 0103, 0104
*&---------------------------------------------------------------------*
*& Module STATUS_0102 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0102 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0102 OUTPUT
*USER COMMAND FOR SUB SCREEN & UPDATING FLAG
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0102 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0102 INPUT.
CASE SY-UCOMM.
WHEN 'LSF'.
IF V_FLAG GE 1 AND V_FLAG LT 3.
V_FLAG = V_FLAG + 1.
ENDIF.
WHEN 'RSF'.
IF V_FLAG GT 1 AND V_FLAG LE 3.
V_FLAG = V_FLAG - 1.
ENDIF.
ENDCASE.
ENDMODULE. " USER_COMMAND_0102 INPUT
*SET ATTRIBUTES OF SUB SCREEN.
*&---------------------------------------------------------------------*
*& Module SUB_SCREEN_SET OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE SUB_SCREEN_SET OUTPUT.
CASE SAVE_OK_100.
WHEN CDS.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'G4'.
SCREEN-ACTIVE = 1.
SCREEN-INPUT = 0.
SCREEN-OUTPUT = 1.
SCREEN-INVISIBLE = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDCASE.
ENDMODULE. " SUB_SCREEN_SET OUTPUT
*TO GET PRESSED TAb WHICH CAN BE ASSIGN TO ACTIVE TAB.
*&---------------------------------------------------------------------*
*& Module TABSTRP_ACTIVE_TAB_GET INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE TABSTRP_ACTIVE_TAB_GET INPUT.
OK_CODE = SY-UCOMM.
CASE OK_CODE.
WHEN CT1.
V_FLAG = '1'.
G_TABSTRP-PRESSED_TAB = CT1.
WHEN CT2.
V_FLAG = '2'.
G_TABSTRP-PRESSED_TAB = CT2.
WHEN CT3.
V_FLAG = '3'.
G_TABSTRP-PRESSED_TAB = CT3.
WHEN 'LSF'.
IF V_FLAG = '1'.
G_TABSTRP-PRESSED_TAB = CT1.
ELSEIF V_FLAG = '2'.
G_TABSTRP-PRESSED_TAB = CT2.
ELSEIF V_FLAG = '3'.
G_TABSTRP-PRESSED_TAB = CT3.
ENDIF.
WHEN 'RSF'.
IF V_FLAG = '1'.
G_TABSTRP-PRESSED_TAB = CT1.
ELSEIF V_FLAG = '2'.
G_TABSTRP-PRESSED_TAB = CT2.
ELSEIF V_FLAG = '3'.
G_TABSTRP-PRESSED_TAB = CT3.
ENDIF.
ENDCASE.
ENDMODULE. " TABSTRP_ACTIVE_TAB_GET INPUT
*GET DATA FOR SUB SCREEN AND MAIN SCREEN
*&---------------------------------------------------------------------*
*& Module DATA_1 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE DATA_1 OUTPUT.
IF V_FLAG1 LT 1.
IF SAVE_OK_100 = CCH OR SAVE_OK_100 = CDS.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = Z11_CUSTOMER1-KUNNR
IMPORTING
OUTPUT = V_CUSTOMER.
.
SELECT SINGLE * FROM Z11_CUSTOMER1 WHERE KUNNR = Z11_CUSTOMER1-KUNNR.
Z11_CUSTOMER1-KUNNR = V_CUSTOMER.
V_FLAG1 = V_FLAG1 + 1.
ENDIF.
ENDIF.
ENDMODULE. " DATA_1 OUTPUT
*USER COMMAND FOR SCREEN 0101
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0101 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0101 INPUT.
CASE OK_CODE_101.
WHEN CSL.
CLEAR OK_CODE_101.
LEAVE TO SCREEN 0105.
WHEN CSA. "SAVE
IF SAVE_OK_100 = CCR. "CREATE
Z11_CUST_SALES-MANDT = SY-MANDT.
Z11_CUST_SALES-KUNNR = Z11_CUSTOMER1-KUNNR.
INSERT Z11_CUSTOMER1.
INSERT Z11_CUST_SALES.
INSERT Z11_CUST_BANK FROM TABLE T_BANK.
IF SY-SUBRC = 0.
MESSAGE I006 WITH TEXT-008.
CLEAR Z11_CUSTOMER1.
CLEAR Z11_CUST_SALES.
REFRESH T_BANK.
CLEAR SAVE_OK_100.
CLEAR OK_CODE_101.
G_TABSTRP-PRESSED_TAB = CT1.
CLEAR V_FLAG1.
CLEAR V_FLAG2.
CLEAR V_FLAG3.
LEAVE TO SCREEN 0100.
ENDIF.
ELSEIF SAVE_OK_100 = CCH. "CHANGE
Z11_CUST_SALES-MANDT = SY-MANDT.
Z11_CUST_SALES-KUNNR = Z11_CUSTOMER1-KUNNR.
MODIFY Z11_CUSTOMER1.
MODIFY Z11_CUST_SALES.
MODIFY Z11_CUST_BANK FROM TABLE T_BANK.
IF SY-SUBRC = 0.
MESSAGE I006 WITH TEXT-011.
CLEAR Z11_CUSTOMER1.
CLEAR Z11_CUST_SALES.
REFRESH T_BANK.
CLEAR SAVE_OK_100.
CLEAR OK_CODE_101.
G_TABSTRP-PRESSED_TAB = CT1.
CLEAR V_FLAG1.
CLEAR V_FLAG2.
CLEAR V_FLAG3.
LEAVE TO SCREEN 0100.
ENDIF.
ENDIF.
WHEN CBC. "BACK
IF SY-DYNNR = '0100'. "IF FIRST SCREEN
LEAVE PROGRAM.
ELSE.
IF SAVE_OK_100 = CCR.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = TEXT-014
* DIAGNOSE_OBJECT = ' '
TEXT_QUESTION = TEXT-015
TEXT_BUTTON_1 = TEXT-016
* ICON_BUTTON_1 = ' '
TEXT_BUTTON_2 = TEXT-017
* ICON_BUTTON_2 = ' '
* DEFAULT_BUTTON = '1'
DISPLAY_CANCEL_BUTTON = ' '
* USERDEFINED_F1_HELP = ' '
* START_COLUMN = 25
* START_ROW = 6
* POPUP_TYPE =
* IV_QUICKINFO_BUTTON_1 = ' '
* IV_QUICKINFO_BUTTON_2 = ' '
IMPORTING
ANSWER = V_REPLY
* TABLES
* PARAMETER =
EXCEPTIONS
TEXT_NOT_FOUND = 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.
IF V_REPLY = 1.
Z11_CUST_SALES-MANDT = SY-MANDT.
Z11_CUST_SALES-KUNNR = Z11_CUSTOMER1-KUNNR.
INSERT Z11_CUSTOMER1.
INSERT Z11_CUST_SALES.
INSERT Z11_CUST_BANK FROM TABLE T_BANK.
IF SY-SUBRC = 0.
MESSAGE I006 WITH TEXT-008.
CLEAR Z11_CUSTOMER1.
CLEAR Z11_CUST_SALES.
REFRESH T_BANK.
CLEAR SAVE_OK_100.
CLEAR OK_CODE_101.
G_TABSTRP-PRESSED_TAB = CT1.
CLEAR V_REPLY.
CLEAR V_FLAG1.
CLEAR V_FLAG2.
CLEAR V_FLAG3.
LEAVE TO SCREEN 0100.
ENDIF.
ELSEIF V_REPLY = 2.
CLEAR Z11_CUSTOMER1.
CLEAR Z11_CUST_SALES.
REFRESH T_BANK.
CLEAR OK_CODE_101.
SAVE_OK_100 = ' '.
G_TABSTRP-PRESSED_TAB = CT1.
CLEAR V_REPLY.
CLEAR V_FLAG1.
CLEAR V_FLAG2.
CLEAR V_FLAG3.
LEAVE TO SCREEN 0100.
ENDIF.
ELSEIF SAVE_OK_100 = CCH.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = TEXT-014
* DIAGNOSE_OBJECT = ' '
TEXT_QUESTION = TEXT-015
TEXT_BUTTON_1 = TEXT-016
* ICON_BUTTON_1 = ' '
TEXT_BUTTON_2 = TEXT-017
* ICON_BUTTON_2 = ' '
* DEFAULT_BUTTON = '1'
DISPLAY_CANCEL_BUTTON = ' '
* USERDEFINED_F1_HELP = ' '
* START_COLUMN = 25
* START_ROW = 6
* POPUP_TYPE =
* IV_QUICKINFO_BUTTON_1 = ' '
* IV_QUICKINFO_BUTTON_2 = ' '
IMPORTING
ANSWER = V_REPLY
* TABLES
* PARAMETER =
EXCEPTIONS
TEXT_NOT_FOUND = 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.
IF V_REPLY = 1.
Z11_CUST_SALES-MANDT = SY-MANDT.
Z11_CUST_SALES-KUNNR = Z11_CUSTOMER1-KUNNR.
MODIFY Z11_CUSTOMER1.
MODIFY Z11_CUST_SALES.
MODIFY Z11_CUST_BANK FROM TABLE T_BANK.
IF SY-SUBRC = 0.
MESSAGE I006 WITH TEXT-011.
CLEAR Z11_CUSTOMER1.
CLEAR Z11_CUST_SALES.
REFRESH T_BANK.
CLEAR SAVE_OK_100.
CLEAR OK_CODE_101.
G_TABSTRP-PRESSED_TAB = CT1.
CLEAR V_REPLY.
CLEAR V_FLAG1.
CLEAR V_FLAG2.
CLEAR V_FLAG3.
LEAVE TO SCREEN 0100.
ENDIF.
ELSEIF V_REPLY = 2.
CLEAR Z11_CUSTOMER1.
CLEAR Z11_CUST_SALES.
REFRESH T_BANK.
SAVE_OK_100 = ' '.
CLEAR OK_CODE_101.
G_TABSTRP-PRESSED_TAB = CT1.
CLEAR V_REPLY.
CLEAR V_FLAG1.
CLEAR V_FLAG2.
CLEAR V_FLAG3.
LEAVE TO SCREEN 100.
ENDIF.
ELSEIF SAVE_OK_100 = CDS.
CLEAR Z11_CUSTOMER1.
CLEAR Z11_CUST_SALES.
REFRESH T_BANK.
CLEAR SAVE_OK_100.
CLEAR OK_CODE_101.
G_TABSTRP-PRESSED_TAB = CT1.
CLEAR V_FLAG1.
CLEAR V_FLAG2.
CLEAR V_FLAG3.
LEAVE TO SCREEN 0100.
ENDIF.
ENDIF.
WHEN 'TOG'.
IF SAVE_OK_100 = CDS.
SAVE_OK_100 = CCH.
ELSEIF SAVE_OK_100 = CCH.
SAVE_OK_100 = CDS.
ENDIF.
ENDCASE.
ENDMODULE. " USER_COMMAND_0101 INPUT
*GET DATA FOR TABLE CONTROl<TABULAR DATA>
*&---------------------------------------------------------------------*
*& Module GET_DATA OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE GET_DATA OUTPUT.
IF V_FLAG2 LT 1.
IF SAVE_OK_100 = CDS OR SAVE_OK_100 = CCH.
SELECT KUNNR
BANKS
BANKL
BANKN
KOINH
BKONT
BVTYP
BKREF
FROM Z11_CUST_BANK
INTO CORRESPONDING FIELDS OF TABLE T_BANK
WHERE KUNNR = Z11_CUSTOMER1-KUNNR.
* IF sy-subrc <> 0.
* MESSAGE E007 with TEXT-007.
* ENDIF.
V_FLAG2 = V_FLAG2 + 1.
ENDIF.
ENDIF.
ENDMODULE. " GET_DATA OUTPUT
*SETTING ATTRIBUTES FOR TABLE ON SCREEN 0104
*&---------------------------------------------------------------------*
*& Module SET_LINE_ATTRIBUTES OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE SET_LINE_ATTRIBUTES OUTPUT.
CASE SAVE_OK_100.
WHEN CDS. "DISPLAY
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'A1'.
SCREEN-ACTIVE = 1.
SCREEN-INPUT = 0.
SCREEN-OUTPUT = 1.
SCREEN-INVISIBLE = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDCASE.
ENDMODULE. " SET_LINE_ATTRIBUTES OUTPUT
*MODULE TO POPULATE INTERNAl TABLE FROM SCREEN
*&---------------------------------------------------------------------*
*& Module POP_I_TAB INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE POP_I_TAB INPUT.
T_BANK-MANDT = SY-MANDT. "CLIENT
IF SAVE_OK_100 = CCR AND SY-UCOMM = CSA ."CREATE+SAVE
IF T_BANK-KUNNR = Z11_CUSTOMER1-KUNNR.
APPEND T_BANK.
ENDIF.
ELSEIF SAVE_OK_100 = CCH AND SY-UCOMM = CSA OR SY-UCOMM = CT3.
"CHANGE+SAVE
IF T_BANK-KUNNR = Z11_CUSTOMER1-KUNNR.
IF TABLE_CONTROL-CURRENT_LINE > SY-DBCNT."IF NEW LINE
APPEND T_BANK.
ELSE.
MODIFY T_BANK INDEX TABLE_CONTROL-CURRENT_LINE.
ENDIF.
ENDIF.
ENDIF.
ENDMODULE. " POP_I_TAB INPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0105 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0105 OUTPUT.
SET PF-STATUS 'Z11GAURAV_XD'.
SET TITLEBAR 'TL4'.
ENDMODULE. " STATUS_0105 OUTPUT
*&---------------------------------------------------------------------*
*& Module DATA_2 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE DATA_2 OUTPUT.
IF V_FLAG3 LT 1.
IF SAVE_OK_100 = CCH OR SAVE_OK_100 = CDS.
SELECT SINGLE * FROM Z11_CUST_SALES WHERE KUNNR = Z11_CUSTOMER1-KUNNR.
V_FLAG3 = V_FLAG3 + 1.
ENDIF.
ENDIF.
ENDMODULE. " DATA_2 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0105 INPUT
*&---------------------------------------------------------------------*
and this is se51 code for table control
PROCESS BEFORE OUTPUT.
MODULE STATUS_0101.
MODULE DATA_1.
MODULE TABSTRP_ACTIVE_TAB_SET.
MODULE SCREEN_SET.
CALL SUBSCREEN SUBSCREEN INCLUDING G_TABSTRP-PROG G_TABSTRP-SUBSCREEN.
PROCESS AFTER INPUT.
CALL SUBSCREEN SUBSCREEN.
MODULE TABSTRP_ACTIVE_TAB_GET.
MODULE EXIT_PROG AT EXIT-COMMAND.
MODULE USER_COMMAND_0101. reawrd if useful plz
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0105 INPUT.
IF OK_CODE_105 = CBC.
CLEAR OK_CODE_105.
LEAVE TO SCREEN 101.
ENDIF.
ENDMODULE. " USER_COMMAND_0105 INPUT
Code Formatted by: Alvaro Tejada Galindo on Feb 1, 2008 1:17 PM
‎2008 Feb 01 2:53 PM
well to trasfer data to table control and from ther to dbtab you need an intermedite internal table to store data when it is showed in display and save that data in dbtab when we want to save it. i will send u a sample code too
<REMOVED BY MODERATOR>
keep rockin
vivek
Edited by: Alvaro Tejada Galindo on Feb 1, 2008 1:17 PM
‎2008 Feb 01 2:57 PM
Hi,
You have to use a internal table as intermidiate table to put data on screen and to get data from screen.
this itab is then used to update DATA DIC. table
Tabstrip Controls
A tabstrip control is a screen object consisting of two or more pages. Each tab page consists of a tab title and a page area. If the area occupied by the tabstrip control is too narrow to display all of the tab titles, a scrollbar appears, allowing you to reach the titles that are not displayed. There is also a pushbutton that allows you to display a list of all tab titles.
Tabstrip controls allow you to place a series of screens belonging to an application on a single screen, and to navigate between them easily. The recommended uses and ergonomic considerations for tabstrip controls are described in the Tabstrip Control section of the SAP Style Guide.
From a technical point of view, a tab page is a subscreen with a pushbutton assigned to it, which is displayed as the tab title.
To use a tabstrip control on a screen, you must be using a SAPgui with Release 4.0 or higher, and its operating system must be Motif, Windows 95, MacOS, or Windows NT with version 3.51 or higher.
When you create a tabstrip control, you must:
1. Define the tab area on a screen and the tab titles.
2. Assign a subscreen area to each tab title.
3. Program the screen flow logic.
4. Program the ABAP processing logic.
You must then decide whether you want to page through the tabstrip control at the SAPgui or on the application server. In the first case, each tab page has its own subscreen. In the second, there is a single subscreen area that is shared by all tab pages.
REGARDS,
GAURAV J.
‎2008 Feb 01 2:59 PM
se 38 code is as follows
PROGRAM Z11GAURAV_ASSIGN_6 MESSAGE-ID Z11GAURAV6 .
*******************
*CONTROL STRUCTURE
*******************
CONTROLS : TABSTRP TYPE TABSTRIP.
CONTROLS : TABLE_CONTROL TYPE TABLEVIEW USING SCREEN 0104.
******************
*TABLES
******************
TABLES: Z11_CUSTOMER1, Z11_CUST_SALES.
DATA: T_BANK TYPE STANDARD TABLE OF Z11_CUST_BANK WITH HEADER LINE.
******************
*CONSTANTS
******************
CONSTANTS: CCR(3) VALUE 'CRT'.
CONSTANTS: CCH(3) VALUE 'CHG'.
CONSTANTS: CDS(3) VALUE 'DSP'.
CONSTANTS: CSA(3) VALUE 'SAV'.
CONSTANTS: CBC(3) VALUE 'BCK'.
CONSTANTS: CT1(4) VALUE 'TAB1'.
CONSTANTS: CT2(4) VALUE 'TAB2'.
CONSTANTS: CT3(4) VALUE 'TAB3'.
CONSTANTS: CSL(3) VALUE 'SAL'.
**************************************************
*STRUCTURE TO GET PRESSED TAB & TO SET DEFAULT TAB
* & Screen no. & program name
**************************************************
DATA: BEGIN OF G_TABSTRP,
SUBSCREEN LIKE SY-DYNNR,
PROG LIKE SY-REPID VALUE 'Z11GAURAV_ASSIGN_6',
PRESSED_TAB LIKE SY-UCOMM VALUE 'TAB1',
END OF G_TABSTRP.
****************
*OK CODES
****************
DATA: OK_CODE_100(4) , SAVE_OK_100(4),OK_CODE_105(4),
OK_CODE_101(4).
DATA: OK_CODE TYPE SY-UCOMM.
****************
*VARIABLES
****************
DATA: V_KUNNR TYPE KUNNR.
DATA: V_REPLY(1).
DATA: V_FLAG TYPE C VALUE '1'.
DATA: V_FLAG1 TYPE C VALUE '0',
V_FLAG2 TYPE C VALUE '0',
V_FLAG3 TYPE C VALUE '0'.
DATA: V_CUSTOMER TYPE KUNNR.
*******MENU AND TITLE FOR SCREEN 0100*******
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'Z11GAURAV_XD'.
SET TITLEBAR 'MAIN'.
ENDMODULE. " STATUS_0100 OUTPUT
*******VALIDATIONS FOR CUSTOMER NO.************
*&---------------------------------------------------------------------*
*& Module validate_KUNNR INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE VALIDATE_KUNNR INPUT.
*VAL....1 NULL value
IF Z11_CUSTOMER1-KUNNR IS INITIAL.
CLEAR Z11_CUSTOMER1.
MESSAGE E004 WITH TEXT-010.
ENDIF.
*VAL....2 EXISTANCE
CASE OK_CODE_100.
WHEN CCR. "CREATE
SELECT SINGLE KUNNR INTO V_KUNNR FROM Z11_CUSTOMER1 WHERE KUNNR =
Z11_CUSTOMER1-KUNNR.
IF SY-SUBRC = 0.
CLEAR Z11_CUSTOMER1.
MESSAGE E001 WITH TEXT-001.
ENDIF.
WHEN CCH. "CHANGE
SELECT SINGLE KUNNR INTO V_KUNNR FROM Z11_CUSTOMER1 WHERE KUNNR =
Z11_CUSTOMER1-KUNNR.
IF SY-SUBRC <> 0.
CLEAR Z11_CUSTOMER1.
MESSAGE E002 WITH TEXT-002.
ENDIF.
WHEN CDS. "DISPLAY
SELECT SINGLE KUNNR INTO V_KUNNR FROM Z11_CUSTOMER1 WHERE KUNNR =
Z11_CUSTOMER1-KUNNR.
IF SY-SUBRC <> 0.
CLEAR Z11_CUSTOMER1.
MESSAGE E002 WITH TEXT-002.
ENDIF.
WHEN ' '.
MESSAGE E013 WITH TEXT-013.
ENDCASE.
ENDMODULE. " validate_KUNNR INPUT
*******EXIT COMMAND************
*&---------------------------------------------------------------------*
*& Module exit_prog INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE EXIT_PROG INPUT.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = TEXT-006
* DIAGNOSE_OBJECT = ' '
TEXT_QUESTION = TEXT-005
TEXT_BUTTON_1 = TEXT-003
* ICON_BUTTON_1 = ' '
TEXT_BUTTON_2 = TEXT-004
* ICON_BUTTON_2 = ' '
* DEFAULT_BUTTON = '1'
DISPLAY_CANCEL_BUTTON = ' '
* USERDEFINED_F1_HELP = ' '
* START_COLUMN = 25
* START_ROW = 6
* POPUP_TYPE =
* IV_QUICKINFO_BUTTON_1 = ' '
* IV_QUICKINFO_BUTTON_2 = ' '
IMPORTING
ANSWER = V_REPLY
* TABLES
* PARAMETER =
EXCEPTIONS
TEXT_NOT_FOUND = 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.
IF V_REPLY = 1.
CLEAR V_REPLY.
LEAVE PROGRAM.
ELSEIF V_REPLY = 2.
CLEAR V_REPLY.
EXIT.
ENDIF.
ENDMODULE. " exit_prog INPUT
*****USER COMMAND FOR SCREEN 0100******
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
CASE OK_CODE_100.
WHEN CCH. "CHANGE GO TO SCREEN 101
SAVE_OK_100 = OK_CODE_100.
CLEAR OK_CODE_100.
LEAVE TO SCREEN 101.
WHEN CCR. "CREATE GO TO SCREEN 101
SAVE_OK_100 = OK_CODE_100.
CLEAR OK_CODE_100.
LEAVE TO SCREEN 101.
WHEN CDS. "DISPLAY GO TO SCREEN 101
SAVE_OK_100 = OK_CODE_100.
CLEAR OK_CODE_100.
LEAVE TO SCREEN 101.
*IF INITIAL SCREEN LEAVE PROGRAM
WHEN CBC. "BACK
IF SY-DYNNR = '0100'.
CLEAR OK_CODE_100.
LEAVE PROGRAM.
ENDIF.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
****MENU AND TITLE BAR FOR SCREEN 0101******
*&---------------------------------------------------------------------*
*& Module STATUS_0101 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0101 OUTPUT.
SET PF-STATUS 'Z11GAURAV_XD2'.
SET TITLEBAR 'TIL'.
CASE SY-UCOMM.
WHEN CT1. "TAB 1
SET TITLEBAR 'TAB1'.
WHEN CT2. "TAB 2
SET TITLEBAR 'TAB2'.
WHEN CT3. "TAB 3
SET TITLEBAR 'TAB3'.
WHEN 'LSF'. "NEXT TAB
IF V_FLAG = '1'.
SET TITLEBAR 'TAB1'.
ELSEIF V_FLAG = '2'.
SET TITLEBAR 'TAB2'.
ELSEIF V_FLAG = '3'.
SET TITLEBAR 'TAB3'.
ENDIF.
WHEN 'RSF'. "PREVIOUS TAB
IF V_FLAG = '1'.
SET TITLEBAR 'TAB1'.
ELSEIF V_FLAG = '2'.
SET TITLEBAR 'TAB2'.
ELSEIF V_FLAG = '3'.
SET TITLEBAR 'TAB3'.
ENDIF.
ENDCASE.
ENDMODULE. " STATUS_0101 OUTPUT
*SET PRESSED TAB AND SUBSCREEN FOR THAT TAB
*&---------------------------------------------------------------------*
*& Module TABSTRP_ACTIVE_TAB_SET OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE TABSTRP_ACTIVE_TAB_SET OUTPUT.
TABSTRP-ACTIVETAB = G_TABSTRP-PRESSED_TAB.
IF G_TABSTRP-PRESSED_TAB = CT1 OR V_FLAG = '1'.
G_TABSTRP-SUBSCREEN = '0102'.
ELSEIF G_TABSTRP-PRESSED_TAB = CT2 OR V_FLAG = '2'.
G_TABSTRP-SUBSCREEN = '0103'.
ELSEIF G_TABSTRP-PRESSED_TAB = CT3 OR V_FLAG = '3'..
G_TABSTRP-SUBSCREEN = '0104'.
ENDIF.
ENDMODULE. " TABSTRP_ACTIVE_TAB_SET OUTPUT
**SETTING SCREEN ATTRIBUTES****
*&---------------------------------------------------------------------*
*& Module SCREEN_SET OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE SCREEN_SET OUTPUT.
CASE SAVE_OK_100.
WHEN CDS. "DISPLAY
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'G2'.
SCREEN-ACTIVE = 1.
SCREEN-INPUT = 0.
SCREEN-OUTPUT = 0.
SCREEN-INVISIBLE = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-GROUP1 = 'G3'.
SCREEN-ACTIVE = 1.
SCREEN-INPUT = 1.
SCREEN-OUTPUT = 1.
SCREEN-INVISIBLE = 0.
MODIFY SCREEN.
ENDIF.
IF SCREEN-GROUP1 = 'G4'.
SCREEN-ACTIVE = 1.
SCREEN-INPUT = 0.
SCREEN-OUTPUT = 1.
SCREEN-INVISIBLE = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDCASE.
ENDMODULE. " SCREEN_SET OUTPUT
***FOR SUB SCREEN 0102, 0103, 0104
*&---------------------------------------------------------------------*
*& Module STATUS_0102 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0102 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0102 OUTPUT
*USER COMMAND FOR SUB SCREEN & UPDATING FLAG
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0102 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0102 INPUT.
CASE SY-UCOMM.
WHEN 'LSF'.
IF V_FLAG GE 1 AND V_FLAG LT 3.
V_FLAG = V_FLAG + 1.
ENDIF.
WHEN 'RSF'.
IF V_FLAG GT 1 AND V_FLAG LE 3.
V_FLAG = V_FLAG - 1.
ENDIF.
ENDCASE.
ENDMODULE. " USER_COMMAND_0102 INPUT
*SET ATTRIBUTES OF SUB SCREEN.
*&---------------------------------------------------------------------*
*& Module SUB_SCREEN_SET OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE SUB_SCREEN_SET OUTPUT.
CASE SAVE_OK_100.
WHEN CDS.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'G4'.
SCREEN-ACTIVE = 1.
SCREEN-INPUT = 0.
SCREEN-OUTPUT = 1.
SCREEN-INVISIBLE = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDCASE.
ENDMODULE. " SUB_SCREEN_SET OUTPUT
*TO GET PRESSED TAb WHICH CAN BE ASSIGN TO ACTIVE TAB.
*&---------------------------------------------------------------------*
*& Module TABSTRP_ACTIVE_TAB_GET INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE TABSTRP_ACTIVE_TAB_GET INPUT.
OK_CODE = SY-UCOMM.
CASE OK_CODE.
WHEN CT1.
V_FLAG = '1'.
G_TABSTRP-PRESSED_TAB = CT1.
WHEN CT2.
V_FLAG = '2'.
G_TABSTRP-PRESSED_TAB = CT2.
WHEN CT3.
V_FLAG = '3'.
G_TABSTRP-PRESSED_TAB = CT3.
WHEN 'LSF'.
IF V_FLAG = '1'.
G_TABSTRP-PRESSED_TAB = CT1.
ELSEIF V_FLAG = '2'.
G_TABSTRP-PRESSED_TAB = CT2.
ELSEIF V_FLAG = '3'.
G_TABSTRP-PRESSED_TAB = CT3.
ENDIF.
WHEN 'RSF'.
IF V_FLAG = '1'.
G_TABSTRP-PRESSED_TAB = CT1.
ELSEIF V_FLAG = '2'.
G_TABSTRP-PRESSED_TAB = CT2.
ELSEIF V_FLAG = '3'.
G_TABSTRP-PRESSED_TAB = CT3.
ENDIF.
ENDCASE.
ENDMODULE. " TABSTRP_ACTIVE_TAB_GET INPUT
*GET DATA FOR SUB SCREEN AND MAIN SCREEN
*&---------------------------------------------------------------------*
*& Module DATA_1 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE DATA_1 OUTPUT.
IF V_FLAG1 LT 1.
IF SAVE_OK_100 = CCH OR SAVE_OK_100 = CDS.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = Z11_CUSTOMER1-KUNNR
IMPORTING
OUTPUT = V_CUSTOMER.
.
SELECT SINGLE * FROM Z11_CUSTOMER1 WHERE KUNNR = Z11_CUSTOMER1-KUNNR.
Z11_CUSTOMER1-KUNNR = V_CUSTOMER.
V_FLAG1 = V_FLAG1 + 1.
ENDIF.
ENDIF.
ENDMODULE. " DATA_1 OUTPUT
*USER COMMAND FOR SCREEN 0101
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0101 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0101 INPUT.
CASE OK_CODE_101.
WHEN CSL.
CLEAR OK_CODE_101.
LEAVE TO SCREEN 0105.
WHEN CSA. "SAVE
IF SAVE_OK_100 = CCR. "CREATE
Z11_CUST_SALES-MANDT = SY-MANDT.
Z11_CUST_SALES-KUNNR = Z11_CUSTOMER1-KUNNR.
INSERT Z11_CUSTOMER1.
INSERT Z11_CUST_SALES.
INSERT Z11_CUST_BANK FROM TABLE T_BANK.
IF SY-SUBRC = 0.
MESSAGE I006 WITH TEXT-008.
CLEAR Z11_CUSTOMER1.
CLEAR Z11_CUST_SALES.
REFRESH T_BANK.
CLEAR SAVE_OK_100.
CLEAR OK_CODE_101.
G_TABSTRP-PRESSED_TAB = CT1.
CLEAR V_FLAG1.
CLEAR V_FLAG2.
CLEAR V_FLAG3.
LEAVE TO SCREEN 0100.
ENDIF.
ELSEIF SAVE_OK_100 = CCH. "CHANGE
Z11_CUST_SALES-MANDT = SY-MANDT.
Z11_CUST_SALES-KUNNR = Z11_CUSTOMER1-KUNNR.
MODIFY Z11_CUSTOMER1.
MODIFY Z11_CUST_SALES.
MODIFY Z11_CUST_BANK FROM TABLE T_BANK.
IF SY-SUBRC = 0.
MESSAGE I006 WITH TEXT-011.
CLEAR Z11_CUSTOMER1.
CLEAR Z11_CUST_SALES.
REFRESH T_BANK.
CLEAR SAVE_OK_100.
CLEAR OK_CODE_101.
G_TABSTRP-PRESSED_TAB = CT1.
CLEAR V_FLAG1.
CLEAR V_FLAG2.
CLEAR V_FLAG3.
LEAVE TO SCREEN 0100.
ENDIF.
ENDIF.
WHEN CBC. "BACK
IF SY-DYNNR = '0100'. "IF FIRST SCREEN
LEAVE PROGRAM.
ELSE.
IF SAVE_OK_100 = CCR.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = TEXT-014
* DIAGNOSE_OBJECT = ' '
TEXT_QUESTION = TEXT-015
TEXT_BUTTON_1 = TEXT-016
* ICON_BUTTON_1 = ' '
TEXT_BUTTON_2 = TEXT-017
* ICON_BUTTON_2 = ' '
* DEFAULT_BUTTON = '1'
DISPLAY_CANCEL_BUTTON = ' '
* USERDEFINED_F1_HELP = ' '
* START_COLUMN = 25
* START_ROW = 6
* POPUP_TYPE =
* IV_QUICKINFO_BUTTON_1 = ' '
* IV_QUICKINFO_BUTTON_2 = ' '
IMPORTING
ANSWER = V_REPLY
* TABLES
* PARAMETER =
EXCEPTIONS
TEXT_NOT_FOUND = 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.
IF V_REPLY = 1.
Z11_CUST_SALES-MANDT = SY-MANDT.
Z11_CUST_SALES-KUNNR = Z11_CUSTOMER1-KUNNR.
INSERT Z11_CUSTOMER1.
INSERT Z11_CUST_SALES.
INSERT Z11_CUST_BANK FROM TABLE T_BANK.
IF SY-SUBRC = 0.
MESSAGE I006 WITH TEXT-008.
CLEAR Z11_CUSTOMER1.
CLEAR Z11_CUST_SALES.
REFRESH T_BANK.
CLEAR SAVE_OK_100.
CLEAR OK_CODE_101.
G_TABSTRP-PRESSED_TAB = CT1.
CLEAR V_REPLY.
CLEAR V_FLAG1.
CLEAR V_FLAG2.
CLEAR V_FLAG3.
LEAVE TO SCREEN 0100.
ENDIF.
ELSEIF V_REPLY = 2.
CLEAR Z11_CUSTOMER1.
CLEAR Z11_CUST_SALES.
REFRESH T_BANK.
CLEAR OK_CODE_101.
SAVE_OK_100 = ' '.
G_TABSTRP-PRESSED_TAB = CT1.
CLEAR V_REPLY.
CLEAR V_FLAG1.
CLEAR V_FLAG2.
CLEAR V_FLAG3.
LEAVE TO SCREEN 0100.
ENDIF.
ELSEIF SAVE_OK_100 = CCH.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = TEXT-014
* DIAGNOSE_OBJECT = ' '
TEXT_QUESTION = TEXT-015
TEXT_BUTTON_1 = TEXT-016
* ICON_BUTTON_1 = ' '
TEXT_BUTTON_2 = TEXT-017
* ICON_BUTTON_2 = ' '
* DEFAULT_BUTTON = '1'
DISPLAY_CANCEL_BUTTON = ' '
* USERDEFINED_F1_HELP = ' '
* START_COLUMN = 25
* START_ROW = 6
* POPUP_TYPE =
* IV_QUICKINFO_BUTTON_1 = ' '
* IV_QUICKINFO_BUTTON_2 = ' '
IMPORTING
ANSWER = V_REPLY
* TABLES
* PARAMETER =
EXCEPTIONS
TEXT_NOT_FOUND = 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.
IF V_REPLY = 1.
Z11_CUST_SALES-MANDT = SY-MANDT.
Z11_CUST_SALES-KUNNR = Z11_CUSTOMER1-KUNNR.
MODIFY Z11_CUSTOMER1.
MODIFY Z11_CUST_SALES.
MODIFY Z11_CUST_BANK FROM TABLE T_BANK.
IF SY-SUBRC = 0.
MESSAGE I006 WITH TEXT-011.
CLEAR Z11_CUSTOMER1.
CLEAR Z11_CUST_SALES.
REFRESH T_BANK.
CLEAR SAVE_OK_100.
CLEAR OK_CODE_101.
G_TABSTRP-PRESSED_TAB = CT1.
CLEAR V_REPLY.
CLEAR V_FLAG1.
CLEAR V_FLAG2.
CLEAR V_FLAG3.
LEAVE TO SCREEN 0100.
ENDIF.
ELSEIF V_REPLY = 2.
CLEAR Z11_CUSTOMER1.
CLEAR Z11_CUST_SALES.
REFRESH T_BANK.
SAVE_OK_100 = ' '.
CLEAR OK_CODE_101.
G_TABSTRP-PRESSED_TAB = CT1.
CLEAR V_REPLY.
CLEAR V_FLAG1.
CLEAR V_FLAG2.
CLEAR V_FLAG3.
LEAVE TO SCREEN 100.
ENDIF.
ELSEIF SAVE_OK_100 = CDS.
CLEAR Z11_CUSTOMER1.
CLEAR Z11_CUST_SALES.
REFRESH T_BANK.
CLEAR SAVE_OK_100.
CLEAR OK_CODE_101.
G_TABSTRP-PRESSED_TAB = CT1.
CLEAR V_FLAG1.
CLEAR V_FLAG2.
CLEAR V_FLAG3.
LEAVE TO SCREEN 0100.
ENDIF.
ENDIF.
WHEN 'TOG'.
IF SAVE_OK_100 = CDS.
SAVE_OK_100 = CCH.
ELSEIF SAVE_OK_100 = CCH.
SAVE_OK_100 = CDS.
ENDIF.
ENDCASE.
ENDMODULE. " USER_COMMAND_0101 INPUT
*GET DATA FOR TABLE CONTROl<TABULAR DATA>
*&---------------------------------------------------------------------*
*& Module GET_DATA OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE GET_DATA OUTPUT.
IF V_FLAG2 LT 1.
IF SAVE_OK_100 = CDS OR SAVE_OK_100 = CCH.
SELECT KUNNR
BANKS
BANKL
BANKN
KOINH
BKONT
BVTYP
BKREF
FROM Z11_CUST_BANK
INTO CORRESPONDING FIELDS OF TABLE T_BANK
WHERE KUNNR = Z11_CUSTOMER1-KUNNR.
* IF sy-subrc <> 0.
* MESSAGE E007 with TEXT-007.
* ENDIF.
V_FLAG2 = V_FLAG2 + 1.
ENDIF.
ENDIF.
ENDMODULE. " GET_DATA OUTPUT
*SETTING ATTRIBUTES FOR TABLE ON SCREEN 0104
*&---------------------------------------------------------------------*
*& Module SET_LINE_ATTRIBUTES OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE SET_LINE_ATTRIBUTES OUTPUT.
CASE SAVE_OK_100.
WHEN CDS. "DISPLAY
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'A1'.
SCREEN-ACTIVE = 1.
SCREEN-INPUT = 0.
SCREEN-OUTPUT = 1.
SCREEN-INVISIBLE = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDCASE.
ENDMODULE. " SET_LINE_ATTRIBUTES OUTPUT
*MODULE TO POPULATE INTERNAl TABLE FROM SCREEN
*&---------------------------------------------------------------------*
*& Module POP_I_TAB INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE POP_I_TAB INPUT.
T_BANK-MANDT = SY-MANDT. "CLIENT
IF SAVE_OK_100 = CCR AND SY-UCOMM = CSA ."CREATE+SAVE
IF T_BANK-KUNNR = Z11_CUSTOMER1-KUNNR.
APPEND T_BANK.
ENDIF.
ELSEIF SAVE_OK_100 = CCH AND SY-UCOMM = CSA OR SY-UCOMM = CT3.
"CHANGE+SAVE
IF T_BANK-KUNNR = Z11_CUSTOMER1-KUNNR.
IF TABLE_CONTROL-CURRENT_LINE > SY-DBCNT."IF NEW LINE
APPEND T_BANK.
ELSE.
MODIFY T_BANK INDEX TABLE_CONTROL-CURRENT_LINE.
ENDIF.
ENDIF.
ENDIF.
ENDMODULE. " POP_I_TAB INPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0105 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0105 OUTPUT.
SET PF-STATUS 'Z11GAURAV_XD'.
SET TITLEBAR 'TL4'.
ENDMODULE. " STATUS_0105 OUTPUT
*&---------------------------------------------------------------------*
*& Module DATA_2 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE DATA_2 OUTPUT.
IF V_FLAG3 LT 1.
IF SAVE_OK_100 = CCH OR SAVE_OK_100 = CDS.
SELECT SINGLE * FROM Z11_CUST_SALES WHERE KUNNR = Z11_CUSTOMER1-KUNNR.
V_FLAG3 = V_FLAG3 + 1.
ENDIF.
ENDIF.
ENDMODULE. " DATA_2 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0105 INPUT
*&---------------------------------------------------------------------*
and this is se51 code for table control
PROCESS BEFORE OUTPUT.
MODULE STATUS_0101.
MODULE DATA_1.
MODULE TABSTRP_ACTIVE_TAB_SET.
MODULE SCREEN_SET.
CALL SUBSCREEN SUBSCREEN INCLUDING G_TABSTRP-PROG G_TABSTRP-SUBSCREEN.
PROCESS AFTER INPUT.
CALL SUBSCREEN SUBSCREEN.
MODULE TABSTRP_ACTIVE_TAB_GET.
MODULE EXIT_PROG AT EXIT-COMMAND.
MODULE USER_COMMAND_0101. reawrd if useful plz
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0105 INPUT.
IF OK_CODE_105 = CBC.
CLEAR OK_CODE_105.
LEAVE TO SCREEN 101.
ENDIF.
ENDMODULE. " USER_COMMAND_0105 INPUT
Code Formatted by: Alvaro Tejada Galindo on Feb 1, 2008 1:17 PM