Anda di halaman 1dari 13

REPORT ZB29_KAVN1049_SELECTION_SCR.

TABLES : KNA1 , KNVV.

DATA: BEGIN OF WA_SAMP,


KUNNR TYPE KNA1-KUNNR,
NAME1 TYPE KNA1-NAME1,
ORT01 TYPE KNA1-ORT01,
PSTLZ TYPE KNA1-PSTLZ,
VKORG TYPE KNVV-VKORG,
VTWEG TYPE KNVV-VTWEG,
SPART TYPE KNVV-SPART,
END OF WA_SAMP.

DATA: IT_SAMP LIKE TABLE OF WA_SAMP.

*TYPES: BEGIN OF SAMP_VAL,


* KEY(40) TYPE C,
* TEXT(80) TYPE C,
* END OF SAMP_VAL.

*DATA: BEGIN OF WA_SAMP1,


* KEY(40) TYPE C,
* TEXT(80) TYPE C,
** NAME(80) TYPE C,
* END OF WA_SAMP1.
DATA: NAME(80) TYPE C.
*DATA: IT_SAMP1 LIKE TABLE OF WA_SAMP1.

*DATA: "LIST TYPE SAMP_VAL OCCURS 0,


* NAME TYPE WA_SAMP1-TEXT,
* VALUE LIKE LINE OF LIST.
* KEY(40) TYPE C,
* TEXT(80) TYPE C.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.


SELECTION-SCREEN PUSHBUTTON 40(20) BUT1 USER-COMMAND CLICK1.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN PUSHBUTTON 40(20) BUT2 USER-COMMAND CLICK2.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF SCREEN 5001 AS SUBSCREEN.


SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME.
PARAMETERS P1 TYPE KNA1-KUNNR VISIBLE LENGTH 20.
PARAMETERS P2 TYPE KNA1-NAME1 VISIBLE LENGTH 20.
PARAMETERS P3 TYPE KNA1-ORT01 VISIBLE LENGTH 20.
PARAMETERS P4 TYPE KNA1-PSTLZ VISIBLE LENGTH 20.
SELECTION-SCREEN END OF BLOCK B2.
SELECTION-SCREEN END OF SCREEN 5001.

SELECTION-SCREEN BEGIN OF SCREEN 5002 AS SUBSCREEN.


SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME.
PARAMETERS P5 TYPE KNVV-VKORG VISIBLE LENGTH 20.
PARAMETERS P6 TYPE KNVV-VTWEG VISIBLE LENGTH 20.
PARAMETERS P7 TYPE KNVV-SPART VISIBLE LENGTH 20.
SELECTION-SCREEN END OF BLOCK B3.
SELECTION-SCREEN END OF SCREEN 5002.

SELECTION-SCREEN BEGIN OF SCREEN 5003.


SELECTION-SCREEN BEGIN OF BLOCK B4 WITH FRAME.
SELECT-OPTIONS P_CUSTNO FOR KNA1-KUNNR.
SELECTION-SCREEN END OF BLOCK B4.
SELECTION-SCREEN END OF SCREEN 5003.

SELECTION-SCREEN BEGIN OF SCREEN 5000.


SELECTION-SCREEN: BEGIN OF TABBED BLOCK TAB FOR 10 LINES,
TAB (20) BUTTON1 USER-COMMAND CLICK3,
TAB (20) BUTTON2 USER-COMMAND CLICK4.
SELECTION-SCREEN END OF BLOCK TAB.
SELECTION-SCREEN END OF SCREEN 5000.

INITIALIZATION.

NAME = 'P1'.

*SELECT KUNNR INTO CORRESPONDING FIELDS OF TABLE IT_SAMP FROM KNA1 UP T


O 10 ROWS.
*
*LOOP AT IT_SAMP INTO WA_SAMP.
* WA_SAMP1-KEY = KNA1-KUNNR.
* WA_SAMP1-TEXT = KNA1-KUNNR.
*APPEND WA_SAMP1 TO IT_SAMP1.
*ENDLOOP.
BUT1 = 'CUSTOMER DETAILS'.
BUT2 = 'REPORT / EXIT'.

TAB-PROG = SY-REPID.
TAB-DYNNR = 5001.
TAB-ACTIVETAB = 'BUTTON1'.
BUTTON1 = 'GENERAL DATA'.
BUTTON2 = 'SALES DATA'.

* CALL FUNCTION 'VRM_SET_VALUES'


* EXPORTING
* id = NAME
* values = WA_SAMP1.

AT SELECTION-SCREEN.

CASE SY-UCOMM.
WHEN 'CLICK1'.
CALL SELECTION-SCREEN 5000.
ENDCASE.

CASE SY-UCOMM.
WHEN 'CLICK3'.
TAB-PROG = SY-REPID.
TAB-DYNNR = 5001.
TAB-ACTIVETAB = 'BUTTON1'.
PERFORM GENERAL_DATA.
ENDCASE.
CASE SY-UCOMM.
WHEN 'CLICK4' .
TAB-PROG = SY-REPID.
TAB-DYNNR = 5002.
TAB-ACTIVETAB = 'BUTTON2'.
PERFORM SALES_DATA.
ENDCASE.

CASE SY-UCOMM.
WHEN 'CLICK2'.
LEAVE PROGRAM.
ENDCASE.

START-OF-SELECTION.

FORM GENERAL_DATA.

SELECT SINGLE KUNNR NAME1 ORT01 PSTLZ


FROM KNA1 INTO CORRESPONDING FIELDS OF WA_SAMP
WHERE KUNNR = P1.

P2 = WA_SAMP-NAME1.
P3 = WA_SAMP-ORT01.
P4 = WA_SAMP-PSTLZ.

ENDFORM.

FORM SALES_DATA .
SELECT SINGLE VKORG VTWEG SPART FROM KNVV
INTO CORRESPONDING FIELDS OF
WA_SAMP
WHERE KUNNR = P1.

P5 = WA_SAMP-VKORG.
P6 = WA_SAMP-VTWEG.
P7 = WA_SAMP-SPART.

ENDFORM.
PROGRAM ZB29_KAVN1042_DP_TABLECONTROL2.
*
*DATA: BEGIN OF WA_TC1,
* MATNR TYPE MARA-MATNR,
* MTART TYPE MARA-MTART,
* MBRSH TYPE MARA-MBRSH,
* MEINS TYPE MARA-MEINS,
* SEL(1) TYPE C,
* END OF WA_TC1.
*DATA: BEGIN OF WA_TC2,
* MATNR TYPE MARA-MATNR,
* MTART TYPE MARA-MTART,
* MBRSH TYPE MARA-MBRSH,
* MEINS TYPE MARA-MEINS,
* SEL1(1) TYPE C,
* END OF WA_TC2.
*
*DATA: IT_TC1 LIKE TABLE OF WA_TC1 WITH HEADER LINE,
* IT_TC2 LIKE TABLE OF WA_TC2 WITH HEADER LINE.
*
*DATA: OK_CODE LIKE SY-UCOMM,
* FLAG TYPE I VALUE 0.
*
*CONTROLS: TAB TYPE TABSTRIP,
* TC1 TYPE TABLEVIEW USING SCREEN 9020,
* TC2 TYPE TABLEVIEW USING SCREEN 9020.
*
**&--------------------------------------------------------------------
-*
**& Module STATUS_9000 OUTPUT
**&--------------------------------------------------------------------
-*
** text
**---------------------------------------------------------------------
-*
*MODULE STATUS_9000 OUTPUT.
** SET PF-STATUS 'SIVA'.
** SET TITLEBAR 'HYPERLINK'.
*
*ENDMODULE. " STATUS_9000 OUTPUT
**&--------------------------------------------------------------------
-*
**& Module USER_COMMAND_9000 INPUT
**&--------------------------------------------------------------------
-*
** text
**---------------------------------------------------------------------
-*
*MODULE USER_COMMAND_9000 INPUT.
*CASE SY-UCOMM.
* WHEN 'TAB'.
* CALL SCREEN 9000.
* CALL SCREEN 9010.
* WHEN 'BACK'.
* LEAVE PROGRAM.
*ENDCASE.
*ENDMODULE. " USER_COMMAND_9000 INPUT
**&--------------------------------------------------------------------
-*
**& Module USER_COMMAND_9010 INPUT
**&--------------------------------------------------------------------
-*
** text
**---------------------------------------------------------------------
-*
*MODULE USER_COMMAND_9010 INPUT.
* OK_CODE = SY-UCOMM.
* CASE OK_CODE.
* WHEN 'TAB1'.
* TAB-ACTIVETAB = 'TAB1'.
* WHEN 'TAB2'.
* TAB-ACTIVETAB = 'TAB2'.
* ENDCASE.
* CLEAR OK_CODE.
*
*ENDMODULE. " USER_COMMAND_9010 INPUT
**&--------------------------------------------------------------------
-*
**& Module STATUS_9020 OUTPUT
**&--------------------------------------------------------------------
-*
** text
**---------------------------------------------------------------------
-*
*MODULE STATUS_9020 OUTPUT.
** SET PF-STATUS 'xxxxxxxx'.
** SET TITLEBAR 'xxx'.
*
* IF FLAG = 0.
* TC1-INVISIBLE = 'X'.
* TC2-INVISIBLE = 'X'.
* LOOP AT SCREEN.
* IF SCREEN-GROUP1 = 'GP1'.
* SCREEN-INVISIBLE = 'X'.
* SCREEN-ACTIVE = 0.
* MODIFY SCREEN.
* ENDIF.
* ENDLOOP.
* FLAG = 1.
* ENDIF.
*
*
*
*ENDMODULE. " STATUS_9020 OUTPUT
**&--------------------------------------------------------------------
-*
**& Module USER_COMMAND_9020 INPUT
**&--------------------------------------------------------------------
-*
** text
**---------------------------------------------------------------------
-*
*MODULE USER_COMMAND_9020 INPUT.
*CASE SY-UCOMM.
* WHEN 'B_TC'.
* IF FLAG = 1.
* TC1-INVISIBLE = ''.
* TC2-INVISIBLE = ''.
* LOOP AT SCREEN.
* IF SCREEN-GROUP1 = 'GP1'.
* SCREEN-INVISIBLE = ''.
* SCREEN-ACTIVE = 1.
* MODIFY SCREEN.
* ENDIF.
* ENDLOOP.
* ENDIF.
* WHEN 'DIS'.
* PERFORM DISPLAY.
* WHEN 'PUSH'.
* PERFORM PUSHING.
* WHEN 'BUT' .
* LEAVE PROGRAM.
** TEXT1 = IT_TC1-MATNR.
* WHEN 'PUSH1'.
* PERFORM BACK_PUSHING.
* ENDCASE.
*ENDMODULE. " USER_COMMAND_9020 INPUT
**&--------------------------------------------------------------------
-*
**& Form DISPLAY
**&--------------------------------------------------------------------
-*
** text
**---------------------------------------------------------------------
-*
** --> p1 text
** <-- p2 text
**---------------------------------------------------------------------
-*
*FORM DISPLAY .
*SELECT MATNR
* MTART
* MBRSH
* MEINS
* FROM MARA
* INTO TABLE IT_TC1 WHERE MATNR GE '100-800' AND MATNR LE '100-804'.
*
* IF SY-SUBRC EQ 0.
* MESSAGE 'FETCHED' TYPE 'S'.
* ELSE.
* MESSAGE 'KARANDI KAALI' TYPE 'I'.
* ENDIF.
*ENDFORM. " DISPLAY
**&--------------------------------------------------------------------
-*
**& Form PUSHING
**&--------------------------------------------------------------------
-*
** text
**---------------------------------------------------------------------
-*
** --> p1 text
** <-- p2 text
**---------------------------------------------------------------------
-*
*FORM PUSHING .
*
*LOOP AT IT_TC1 INTO WA_TC1 WHERE SEL = 'X'.
* WA_TC2-MATNR = WA_TC1-MATNR.
* WA_TC2-MTART = WA_TC1-MTART.
* WA_TC2-MBRSH = WA_TC1-MBRSH.
* WA_TC2-MEINS = WA_TC1-MEINS.
* APPEND WA_TC2 TO IT_TC2.
* DELETE IT_TC1.
* ENDLOOP.
* CLEAR WA_TC1.
*
*ENDFORM. " PUSHING
**&--------------------------------------------------------------------
-*
**& Form BACK_PUSHING
**&--------------------------------------------------------------------
-*
** text
**---------------------------------------------------------------------
-*
** --> p1 text
** <-- p2 text
**---------------------------------------------------------------------
-*
*FORM BACK_PUSHING .
*LOOP AT IT_TC2 INTO WA_TC2 WHERE SEL1 = 'X'.
* WA_TC1-MATNR = WA_TC2-MATNR.
* WA_TC1-MTART = WA_TC2-MTART.
* WA_TC1-MBRSH = WA_TC2-MBRSH.
* WA_TC1-MEINS = WA_TC2-MEINS.
* APPEND WA_TC1 TO IT_TC1.
* DELETE IT_TC2.
* ENDLOOP.
* CLEAR WA_TC2.
*ENDFORM. " BACK_PUSHING
*
**&--------------------------------------------------------------------
-*
**& Module STATUS_9030 OUTPUT
**&--------------------------------------------------------------------
-*
** text
**---------------------------------------------------------------------
-*
*MODULE STATUS_9030 OUTPUT.
** SET PF-STATUS 'xxxxxxxx'.
** SET TITLEBAR 'xxx'.
*
*ENDMODULE. " STATUS_9030 OUTPUT
**&--------------------------------------------------------------------
-*
**& Module USER_COMMAND_9030 INPUT
**&--------------------------------------------------------------------
-*
** text
**---------------------------------------------------------------------
-*
*MODULE USER_COMMAND_9030 INPUT.
*CASE SY-UCOMM.
* WHEN 'S3_BACK'.
* LEAVE PROGRAM.
* ENDCASE.
*ENDMODULE. " USER_COMMAND_9030 INPUT
**&--------------------------------------------------------------------
-*
**& Module MODIFY INPUT
**&--------------------------------------------------------------------
-*
** text
**---------------------------------------------------------------------
-*
*MODULE MODIFY INPUT.
*MODIFY IT_TC2 FROM IT_TC2 INDEX
* TC2-CURRENT_LINE.
*ENDMODULE. " MODIFY INPUT
**&--------------------------------------------------------------------
-*
**& MODule MOD INPUT
**&--------------------------------------------------------------------
-*
** text
**---------------------------------------------------------------------
-*
*MODULE MOD INPUT.
*MODIFY IT_TC1 FROM IT_TC1 INDEX
* TC1-CURRENT_LINE.
*ENDMODULE. " MOD INPUT

DATA: BEGIN OF WA_TC1,


MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MBRSH TYPE MARA-MBRSH,
MEINS TYPE MARA-MEINS,
SEL(1) TYPE C,
END OF WA_TC1.
DATA: BEGIN OF WA_TC2,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MBRSH TYPE MARA-MBRSH,
MEINS TYPE MARA-MEINS,
SEL1(1) TYPE C,
END OF WA_TC2.

DATA: IT_TC1 LIKE TABLE OF WA_TC1 WITH HEADER LINE,


IT_TC2 LIKE TABLE OF WA_TC2 WITH HEADER LINE.

DATA: OK_CODE LIKE SY-UCOMM,


FLAG TYPE I VALUE 0.

CONTROLS: TAB TYPE TABSTRIP,


TC1 TYPE TABLEVIEW USING SCREEN 9020,
TC2 TYPE TABLEVIEW USING SCREEN 9020.

START-OF-SELECTION.
CALL SCREEN 9000.
*&---------------------------------------------------------------------
*
*& Module STATUS_9000 OUTPUT
*&---------------------------------------------------------------------
*
* text
*----------------------------------------------------------------------
*
MODULE STATUS_9000 OUTPUT.
* SET PF-STATUS 'SIVA'.
* SET TITLEBAR 'HYPERLINK'.

ENDMODULE. " STATUS_9000 OUTPUT


*&---------------------------------------------------------------------
*
*& Module USER_COMMAND_9000 INPUT
*&---------------------------------------------------------------------
*
* text
*----------------------------------------------------------------------
*
MODULE USER_COMMAND_9000 INPUT.
CASE SY-UCOMM.
WHEN 'TAB'.
CALL SCREEN 9010.
WHEN 'BACK'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_9000 INPUT
*&---------------------------------------------------------------------
*
*& Module USER_COMMAND_9010 INPUT
*&---------------------------------------------------------------------
*
* text
*----------------------------------------------------------------------
*
MODULE USER_COMMAND_9010 INPUT.
OK_CODE = SY-UCOMM.
CASE OK_CODE.
WHEN 'TAB1'.
TAB-ACTIVETAB = 'TAB1'.
WHEN 'TAB2'.
TAB-ACTIVETAB = 'TAB2'.
ENDCASE.
CLEAR OK_CODE.

ENDMODULE. " USER_COMMAND_9010 INPUT


*&---------------------------------------------------------------------
*
*& Module STATUS_9020 OUTPUT
*&---------------------------------------------------------------------
*
* text
*----------------------------------------------------------------------
*
MODULE STATUS_9020 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.

IF FLAG = 0.
TC1-INVISIBLE = 'X'.
TC2-INVISIBLE = 'X'.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'GP1'.
SCREEN-INVISIBLE = 'X'.
SCREEN-ACTIVE = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
FLAG = 1.
ENDIF.

ENDMODULE. " STATUS_9020 OUTPUT


*&---------------------------------------------------------------------
*
*& Module USER_COMMAND_9020 INPUT
*&---------------------------------------------------------------------
*
* text
*----------------------------------------------------------------------
*
MODULE USER_COMMAND_9020 INPUT.
CASE SY-UCOMM.
WHEN 'B_TC'.
IF FLAG = 1.
TC1-INVISIBLE = ''.
TC2-INVISIBLE = ''.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'GP1'.
SCREEN-INVISIBLE = ''.
SCREEN-ACTIVE = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
WHEN 'DIS'.
PERFORM DISPLAY.
WHEN 'PUSH'.
PERFORM PUSHING.
WHEN 'BUT' .
LEAVE PROGRAM.
* TEXT1 = IT_TC1-MATNR.
WHEN 'PUSH1'.
PERFORM BACK_PUSHING.
ENDCASE.
ENDMODULE. " USER_COMMAND_9020 INPUT
*&---------------------------------------------------------------------
*
*& Form DISPLAY
*&---------------------------------------------------------------------
*
* text
*----------------------------------------------------------------------
*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------
*
FORM DISPLAY .
SELECT MATNR
MTART
MBRSH
MEINS
FROM MARA
INTO TABLE IT_TC1 WHERE MATNR GE '100-800' AND MATNR LE '100-804'.

IF SY-SUBRC EQ 0.
MESSAGE 'FETCHED' TYPE 'S'.
ELSE.
MESSAGE 'KARANDI KAALI' TYPE 'I'.
ENDIF.
ENDFORM. " DISPLAY
*&---------------------------------------------------------------------
*
*& Form PUSHING
*&---------------------------------------------------------------------
*
* text
*----------------------------------------------------------------------
*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------
*
FORM PUSHING .

LOOP AT IT_TC1 INTO WA_TC1 WHERE SEL = 'X'.


WA_TC2-MATNR = WA_TC1-MATNR.
WA_TC2-MTART = WA_TC1-MTART.
WA_TC2-MBRSH = WA_TC1-MBRSH.
WA_TC2-MEINS = WA_TC1-MEINS.
APPEND WA_TC2 TO IT_TC2.
DELETE IT_TC1.
ENDLOOP.
CLEAR WA_TC1.

ENDFORM. " PUSHING


*&---------------------------------------------------------------------
*
*& Form BACK_PUSHING
*&---------------------------------------------------------------------
*
* text
*----------------------------------------------------------------------
*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------
*
FORM BACK_PUSHING .
LOOP AT IT_TC2 INTO WA_TC2 WHERE SEL1 = 'X'.
WA_TC1-MATNR = WA_TC2-MATNR.
WA_TC1-MTART = WA_TC2-MTART.
WA_TC1-MBRSH = WA_TC2-MBRSH.
WA_TC1-MEINS = WA_TC2-MEINS.
APPEND WA_TC1 TO IT_TC1.
DELETE IT_TC2.
ENDLOOP.
CLEAR WA_TC2.
ENDFORM. " BACK_PUSHING

*&---------------------------------------------------------------------
*
*& Module STATUS_9030 OUTPUT
*&---------------------------------------------------------------------
*
* text
*----------------------------------------------------------------------
*
MODULE STATUS_9030 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.

ENDMODULE. " STATUS_9030 OUTPUT


*&---------------------------------------------------------------------
*
*& Module USER_COMMAND_9030 INPUT
*&---------------------------------------------------------------------
*
* text
*----------------------------------------------------------------------
*
MODULE USER_COMMAND_9030 INPUT.
CASE SY-UCOMM.
WHEN 'S3_BACK'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_9030 INPUT
*&---------------------------------------------------------------------
*
*& Module MODIFY INPUT
*&---------------------------------------------------------------------
*
* text
*----------------------------------------------------------------------
*
MODULE MODIFY INPUT.
MODIFY IT_TC2 FROM IT_TC2 INDEX
TC2-CURRENT_LINE.
ENDMODULE. " MODIFY INPUT
*&---------------------------------------------------------------------
*
*& MODule MOD INPUT
*&---------------------------------------------------------------------
*
* text
*----------------------------------------------------------------------
*
MODULE MOD INPUT.
MODIFY IT_TC1 FROM IT_TC1 INDEX
TC1-CURRENT_LINE.
ENDMODULE. " MOD INPUT

Anda mungkin juga menyukai