REPORT ZCLASSICALREPORT NO STANDARD PAGE HEADING LINE-COUNT 34(3).
TYPES: BEGIN OF TY_KNA1,
KUNNR TYPE KNA1-KUNNR,
LAND1 TYPE KNA1-LAND1,
NAME1 TYPE KNA1-NAME1,
ORT01 TYPE KNA1-ORT01,
END OF TY_KNA1.
DATA :I_KNA1 TYPE TABLE OF TY_KNA1 .DATA : WA_KNA1 TYPE TY_KNA1 .DATA : V_TITLE(25) TYPE C .DATA : V_LAND1 TYPE KNA1-LAND1 .DATA : V_FNAME TYPE STRING .
********************SELECTION SCREEN
PARAMETERS : P_LAND1 TYPE KNA1-LAND1 .PARAMETERS : P_FNAME TYPE RLGRAP-FILENAME .PARAMETERS : P_DLOAD AS CHECKBOX .
INITIALIZATION .
PERFORM INIT_VARIBALES.
*AT SELECTION-SCREEN OUTPUT .
AT SELECTION-SCREEN ON P_LAND1.
PERFORM VALIDATE_LAND1 .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAME.
PERFORM GET_FILE_NAME .
AT SELECTION-SCREEN ON HELP-REQUEST FOR P_FNAME .
PERFORM GET_HELP .
*AT SELECTION-SCREEN .
START-OF-SELECTION .
PERFORM gest_data.
END-OF-SELECTION .
IF P_DLOAD = 'X' .
PERFORM DOWNLOAD_DATA .ENDIF .
PERFORM DISPLAY_DATA .
TOP-OF-PAGE .
PERFORM DISPLAY_HEADING .
END-OF-PAGE .
PERFORM DISPLAY_FOOTER .
*&---------------------------------------------------------------------*
*& Form INIT_VARIBALES
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text * <-- p2 text
*----------------------------------------------------------------------*
FORM INIT_VARIBALES .
V_TITLE = 'CUSTOMER MASTER REPORT' .
P_LAND1 = 'DE' .
ENDFORM. " INIT_VARIBALES
*&---------------------------------------------------------------------*
*& Form VALIDATE_LAND1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text * <-- p2 text
*----------------------------------------------------------------------*
FORM VALIDATE_LAND1 .
SELECT LAND1 FROM KNA1 INTO V_LAND1 UP TO 1 ROWS WHERE LAND1 = P_LAND1.
ENDSELECT .
IF SY-SUBRC <> 0 .
MESSAGE 'INVALID COUNTRY CODE' TYPE 'E' .
ENDIF .
ENDFORM. " VALIDATE_LAND1
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GEsT_DATA .
SELECT KUNNR LAND1 NAME1 ORT01 FROM KNA1 INTO TABLE I_KNA1 WHERE LAND1 = P_LAND1 .
IF SY-SUBRC <> 0 .
MESSAGE 'NO DATA FOUND' TYPE 'I' .
ENDIF .
ENDFORM. "GET_DATA
*&---------------------------------------------------------------------*
*& Form DISPLAY_HEADING
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM DISPLAY_HEADING .
WRITE : / SY-ULINE .
WRITE : /45 V_TITLE COLOR 5 .
WRITE : / SY-ULINE .
ENDFORM. "DISPLAY_HEADING
*&---------------------------------------------------------------------*
*& Form DISPLAY_FOOTER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM DISPLAY_FOOTER .
WRITE : / SY-ULINE .
WRITE : /45 'IBM INDIA PVT.LTD' COLOR 5 .
WRITE : / SY-ULINE .
ENDFORM. "DISPLAY_FOOTER
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM DISPLAY_DATA .
LOOP AT I_KNA1 INTO WA_KNA1 .
WRITE : / WA_KNA1-KUNNR ,
WA_KNA1-LAND1 ,
WA_KNA1-NAME1 ,
WA_KNA1-ORT01 .
ENDLOOP .
ENDFORM. "DISPLAY_DATA
*&---------------------------------------------------------------------*
*& Form DOWNLOAD_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM DOWNLOAD_DATA .
V_FNAME = P_FNAME .
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = V_FNAME "'C:\KNA1.TXT'
FILETYPE = 'ASC' "ASC MEANS NOTEPAD FILE/DAT MEASN EXCEL FILE
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = I_KNA1.
IF SY-SUBRC = 0.
MESSAGE 'DATA IS SUCCESSFULLY DOWNLOADED' TYPE 'I'.
ENDIF.
ENDFORM. "DOWNLOAD_DATA
*&---------------------------------------------------------------------*
*& Form GET_FILE_NAME
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_FILE_NAME .
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
PROGRAM_NAME = SYST-REPID
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'P_FNAME'
CHANGING
FILE_NAME = P_FNAME.
IF SY-SUBRC <> 0.
ENDIF.
endform. "GET_FILE_NAME
*&---------------------------------------------------------------------*
*& Form GET_HELP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_HELP .
MESSAGE 'PLEASE CLCIIK ON F4 FOR FILE NAME' TYPE 'I'.
ENDFORM. "GET_HELP
TYPES: BEGIN OF TY_MARA,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MBRSH TYPE MARA-MBRSH,
END OF TY_MARA.
DATA : I_MARA TYPE TABLE OF TY_MARA,
WA_MARA TYPE TY_MARA.
TYPES: BEGIN OF TY_MAKT,
MATNR TYPE MAKT-MATNR,
SPRAS TYPE MAKT-SPRAS,
Maktx TYPE MAKT-MAKTX,
END OF TY_MAKT.
DATA : I_MAKT TYPE TABLE OF TY_MAKT,
WA_MAKT TYPE TY_MAKT.
TYPES: BEGIN OF TY_FINAL,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MBRSH TYPE MARA-MBRSH,
MAKTX TYPE MAKT-MAKTX,
SPRAS TYPE MAKT-SPRAS,
END OF TY_FINAL.
DATA : I_FINAL TYPE TABLE OF TY_FINAL.DATA : WA_FINAL TYPE TY_FINAL.DATA : V_TITLE(25) TYPE C.DATA : V_FNAME TYPE STRING.DATA : V_SPRAS TYPE MAKT-SPRAS.
************** SELECTION-SCREEN
TABLES MARA.SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.SELECT-OPTIONS SO_MATNR FOR MARA-MATNR.SELECTION-SCREEN SKIP.PARAMETERS P_SPRAS TYPE MAKT-SPRAS.SELECTION-SCREEN SKIP.PARAMETERS P_FNAME TYPE RLGRAP-FILENAME.SELECTION-SCREEN SKIP.PARAMETERS P_DLOAD AS CHECKBOX.SELECTION-SCREEN END OF BLOCK B1.
INITIALIZATION.
PERFORM INITIAL_VAR.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAME.
PERFORM GET_FILENAME.
AT SELECTION-SCREEN ON HELP-REQUEST FOR P_FNAME.
PERFORM GET_HELP.
AT SELECTION-SCREEN.
PERFORM VALIDATE_SPRAS.
START-OF-SELECTION.
PERFORM GET_DATA.
END-OF-SELECTION.
IF P_DLOAD = 'X'.
PERFORM DOWNLOAD.
ENDIF.
PERFORM DISPLAY.
TOP-OF-PAGE.
PERFORM HEADER.
END-OF-PAGE.
PERFORM FOOTER.
*&---------------------------------------------------------------------*
*& Form INITIAL_VAR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM INITIAL_VAR .
SO_MATNR-SIGN = 'I'.
SO_MATNR-OPTION = 'BT'.
SO_MATNR-LOW = '23'.
SO_MATNR-HIGH = '1000'.APPEND SO_MATNR.
P_SPRAS = 'EN'.
ENDFORM. " INITIAL_VAR
*&---------------------------------------------------------------------*
*& Form GET_FILENAME
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_FILENAME .CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
PROGRAM_NAME = SYST-REPID
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'P_FNAME '
* STATIC = ' '
* MASK = ' '
CHANGING
FILE_NAME = P_FNAME* EXCEPTIONS
* MASK_TOO_LONG = 1
* OTHERS = 2
.IF SY-SUBRC = 0.
MESSAGE 'FILE NAME SELECTED' TYPE 'I'.
ENDIF.
ENDFORM. " GET_FILENAME
*&---------------------------------------------------------------------*
*& Form GET_HELP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_HELP .MESSAGE 'CLICK ON F4 FOR FILENAME' TYPE 'I'.
ENDFORM. " GET_HELP
*&---------------------------------------------------------------------*
*& Form VALIDATE_SPRAS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM VALIDATE_SPRAS .SELECT SPRAS FROM MAKT INTO V_SPRAS WHERE SPRAS = P_SPRAS.
ENDSELECT.IF SY-SUBRC <> 0.
MESSAGE 'PLEASE ENTER CORRECT LANGUAGE VALUE' TYPE 'I'.
ENDIF.
ENDFORM. " VALIDATE_SPRAS
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA .
SELECT MATNR MTART MBRSH FROM MARA INTO TABLE I_MARA WHERE MATNR IN SO_MATNR.IF I_MARA IS NOT INITIAL.SELECT MATNR SPRAS MAKTX FROM MAKT INTO TABLE I_MAKT
FOR ALL ENTRIES IN I_MARA WHERE MATNR = I_MARA-MATNR
AND SPRAS = P_SPRAS.
ENDIF.SORT I_MARA BY MATNR.SORT I_MAKT BY MATNR.LOOP AT I_MAKT INTO WA_MAKT.READ TABLE I_MARA INTO WA_MARA WITH KEY MATNR = WA_MAKT-MATNR BINARY SEARCH.
WA_FINAL-MATNR = WA_MARA-MATNR.
WA_FINAL-MTART = WA_MARA-MTART.
WA_FINAL-MBRSH = WA_MARA-MBRSH.
WA_FINAL-SPRAS = WA_MAKT-SPRAS.
WA_FINAL-MAKTX = WA_MAKT-MAKTX.APPEND WA_FINAL TO I_FINAL.
ENDLOOP.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form DOWNLOAD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DOWNLOAD .
V_FNAME = P_FNAME.CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = V_FNAME
FILETYPE = 'ASC'
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = I_FINAL.IF SY-SUBRC = 0.
MESSAGE 'DATA SUCCESSFULLY DOWNLOAD' TYPE 'I'.
ENDIF.
ENDFORM. " DOWNLOAD
*&---------------------------------------------------------------------*
*& Form DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY .
LOOP AT I_FINAL INTO WA_FINAL .
WRITE:/ WA_FINAL-MATNR,
WA_FINAL-MTART,
WA_FINAL-MBRSH,
WA_FINAL-SPRAS,
WA_FINAL-MAKTX.
ENDLOOP.
ENDFORM. " DISPLAY
*&---------------------------------------------------------------------*
*& Form HEADER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM HEADER .
WRITE:/ SY-ULINE.
WRITE:/30 'MATERIAL MASTER REPORT' COLOR 6.
WRITE:/ SY-ULINE.
ENDFORM. " HEADER
*&---------------------------------------------------------------------*
*& Form FOOTER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FOOTER .
WRITE:/ SY-ULINE.
WRITE:/30 'ALL RIGHTS RESERVED @ HANU' COLOR 7.
WRITE:/ SY-ULINE.
ENDFORM. " FOOTER
PARAMETERS : P_CUST RADIOBUTTON GROUP RB1 DEFAULT 'X' USER-COMMAND UCOMM,
P_VEND RADIOBUTTON GROUP RB1.
AT SELECTION-SCREEN OUTPUT.
IF P_CUST = 'X'.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'AAA'.
SCREEN-INPUT = '1'.
MODIFY SCREEN.
ELSEIF SCREEN-GROUP1 = 'BBB'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSEIF P_VEND = 'X'.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'AAA'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-GROUP1 = 'BBB'.
SCREEN-INPUT = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
VBELN TYPE VBAK-VBELN,
VKORG TYPE VBAK-VKORG,
VTWEG TYPE VBAK-VTWEG,
SPART TYPE VBAK-SPART,
END OF TY_VBAK.
DATA : I_VBAK TYPE TABLE OF TY_VBAK.TABLES : VBAK.DATA : V_VKORG TYPE VBAK-VKORG .DATA : V_VTWEG TYPE VBAK-VTWEG .DATA : V_SPART TYPE VBAK-SPART .
SELECT-OPTIONS : SO_VBELN FOR VBAK-VBELN .PARAMETERS : P_VKORG TYPE VBAK-VKORG .PARAMETERS : P_VTWEG TYPE VBAK-VTWEG.PARAMETERS : P_SPART TYPE VBAK-SPART .
AT SELECTION-SCREEN ON P_VKORG .
PERFORM VALIDATE_VKORG .
AT SELECTION-SCREEN ON P_VTWEG .
PERFORM VALIDATE_VTWEG .
AT SELECTION-SCREEN ON P_SPART .
PERFORM VALIDATE_SPART .
*&---------------------------------------------------------------------*
*& Form VALIDATE_VKORG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM VALIDATE_VKORG .
SELECT VKORG FROM VBAK
INTO V_VKORG UP TO 1 ROWS
WHERE VKORG = P_VKORG.
ENDSELECT .
IF SY-SUBRC <> 0 .
MESSAGE 'INVALID SALES ORG' TYPE 'E' .
ENDIF .
ENDFORM. "VALIDATE_VKORG
*&---------------------------------------------------------------------*
*& Form VALIDATE_VTWEG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM VALIDATE_VTWEG .
SELECT VTWEG FROM VBAK
INTO V_VTWEG UP TO 1 ROWS
WHERE VTWEG = P_VTWEG.
ENDSELECT .
IF SY-SUBRC <> 0 .
MESSAGE 'INVALID DIST.CHANNEL' TYPE 'E' .
ENDIF .
ENDFORM. "VALIDATE_VTWEG
*&---------------------------------------------------------------------*
*& Form VALIDATE_SPART
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM VALIDATE_SPART .
SELECT SPART FROM VBAK
INTO V_SPART UP TO 1 ROWS
WHERE SPART = P_SPART.
ENDSELECT .
IF SY-SUBRC <> 0 .
MESSAGE 'INVALID DIVISION' TYPE 'E' .
ENDIF .
ENDFORM. "VALIDATE_SPART
PERFORM VALIDATE_VKORG .
PERFORM VALIDATE_VTWEG .
PERFORM VALIDATE_SPART .
START-OF-SELECTION .
END-OF-SELECTION .
1 comments:
Click here for commentsTHANKS A LOT. MANY CONCEPTS ARE CLEARED BY YOUR EFFORTS AND HELP MAY GOD BLESS YOU.
ConversionConversion EmoticonEmoticon