Вы находитесь на странице: 1из 20

SAP R/3 ABAP Russian ABAP Developer's Club Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check

heck your p rivate messages - Register - Log in - English Blogs - Weblogs News

Russian ABAP Developer's Club Forum Index -> View previous topic :: View next topic Author Message admin

Joined: 01 Sep 2007 Posts: 1575 Posted: Sat Oct 13, 2007 12:38 pm Post subject:

-------------------------------------------------------------------------------Code: REPORT ZFIR_IMPORT_REGISTER. TABLES: rbkp, rseg, bset, mara, lfa1, ekko, t161t. TYPE-POOLS: slis. TYPES: BEGIN OF TY_CUSTOM, WRBTR TYPE RSEG-WRBTR, KSCHL TYPE RSEG-KSCHL, EBELN TYPE RSEG-EBELN, EBELP TYPE RSEG-EBELP, END OF TY_CUSTOM. TYPES: BEGIN OF ty_itab, lfbnr LIKE rseg-lfbnr, " GR NO belnr LIKE rbkp-belnr, " MIRO doc.no. buzei LIKE rseg-buzei, " MIRO line item number fidoc LIKE bkpf-belnr, " accounting doc.no. matnr LIKE rseg-matnr, " Material number maktx LIKE makt-maktx, " material description xblnr LIKE rbkp-xblnr, " Reference Document Number budat LIKE rbkp-budat, " Posting Date in Document mwskz LIKE rseg-mwskz, " Tax Code bklas LIKE rseg-bklas, " Valuation Class menge LIKE rseg-menge, " Quantity gjahr LIKE rseg-gjahr, " Fiscal Year bldat LIKE rbkp-bldat, " Document Date lifnr TYPE rbkp-lifnr, "Vendor Code

stcd1 TYPE lfa1-stcd1, "Tin number matkl TYPE mara-matkl, "Mat Desc name1 TYPE lfa1-name1, "Vendor Name awkey TYPE bkpf-awkey, "Reference Key str_suppl1 TYPE adrc-str_suppl1, "Street post_code1 TYPE adrc-post_code1, "Pincode city1 TYPE adrc-city1, "City region TYPE adrc-region, "Region adrnr TYPE lfa1-adrnr, "Address Number dms(3) TYPE c, "DMS werks TYPE rseg-werks, "PLANT bukrs TYPE rseg-bukrs, "COMPANY CODE stblg TYPE rbkp-stblg, "DOCUMENT REVERSAL INDICATOR mtart TYPE mara-mtart, "MATERIAL TYPE wrbtr TYPE rseg-wrbtr, "Base Amount tax_amount TYPE konv-kwert, "Tax amount for summary vgart TYPE rbkp-vgart, "Transaction Type ivtyp TYPE rbkp-ivtyp, "Invoice Category reverse(2), "Invoice Reversed land1 TYPE lfa1-land1, "Country Key *Fields added for customs BED TYPE RSEG-WRBTR, "BASIC ED FOR CUSTOMS CVD TYPE RSEG-WRBTR, "CVD FOR CUSTOMS ECVD TYPE RSEG-WRBTR, "CESS ON VD FOR CUSTOMS ECED TYPE RSEG-wrbtr, "CESS ON DUTIES lfgja type rseg-lfgja, "Mat Doc Year frbnr type mkpf-frbnr, "Bill of Lading No waers type rbkp-waers, txz01 TYPE ekpo-txz01, "Short Text for Material ebeln TYPE rseg-ebeln, "Purchasing Doc bsart type ekko-bsart, "Pur.Doc Type batxt type t161t-batxt, "Desc for Pur Doc.Type ebelp TYPE ekpo-ebelp, "Purchase Ord Ln Item NCVD TYPE RSEG-WRBTR, "CESS ON VD FOR CUSTOMS SBED TYPE RSEG-wrbtr, "CESS ON DUTIES TEXT(30), qtr_yr(4), qtr_mth(10), *Fields added for Inr Value for exchange rate kursf type rbkp-kursf, inrval type rseg-wrbtr, BELNR1 TYPE RBKP-BELNR, remarks(15), END OF ty_itab. TYPES: BEGIN OF ty_header, belnr LIKE rbkp-belnr, " MIRO doc.no. fidoc LIKE bkpf-belnr, " accounting doc.no. xblnr LIKE rbkp-xblnr, " Reference Document Number budat LIKE rbkp-budat, " Posting Date in Document mwskz LIKE rseg-mwskz, " Tax Code bklas LIKE rseg-bklas, " Valuation Class gjahr LIKE rseg-gjahr, " Fiscal Year bldat LIKE rbkp-bldat, " Document Date lifnr TYPE rbkp-lifnr, "Vendor Code stcd1 TYPE lfa1-stcd1, "Tin number name1 TYPE lfa1-name1, "Vendor Name awkey TYPE bkpf-awkey, "Reference Key str_suppl1 TYPE adrc-str_suppl1, "Street

post_code1 TYPE adrc-post_code1, "Pincode city1 TYPE adrc-city1, "City region TYPE adrc-region, "Region adrnr TYPE lfa1-adrnr, "Address Number dms(3) TYPE c, "DMS werks TYPE rseg-werks, "PLANT bukrs TYPE rseg-bukrs, "COMPANY CODE stblg TYPE rbkp-stblg, "DOCUMENT REVERSAL INDICATOR mtart TYPE mara-mtart, "MATERIAL TYPE wrbtr TYPE rseg-wrbtr, "Base Amount tax_amount TYPE konv-kwert, "Tax amount for summary vgart TYPE rbkp-vgart, "Transaction Type ivtyp TYPE rbkp-ivtyp, "Invoice Category reverse(2), "Invoice Reversed land1 TYPE lfa1-land1, "Country Key BED TYPE RSEG-WRBTR, "BASIC ED FOR CUSTOMS CVD TYPE RSEG-WRBTR, "CVD FOR CUSTOMS ECVD TYPE RSEG-WRBTR, "CESS ON VD FOR CUSTOMS ECED TYPE RSEG-wrbtr, "CESS ON DUTIES lfgja type rseg-lfgja, "Mat Doc Year frbnr type mkpf-frbnr, "Bill of Lading No waers type rbkp-waers, txz01 TYPE ekpo-txz01, "Short Text for Material NCVD TYPE RSEG-WRBTR, "CESS ON VD FOR CUSTOMS SBED TYPE RSEG-wrbtr, "CESS ON DUTIES TEXT(30), qtr_yr(4), qtr_mth(10), *Fields added for Inr Value for exchange rate kursf type rbkp-kursf, inrval type rseg-wrbtr, BELNR1 TYPE RBKP-BELNR, remarks(15), END OF ty_header. types: begin of ty_pohistory, xblnr type ekbe-xblnr, bewtp type ekbe-bewtp, belnr type ekbe-belnr, gjahr type ekbe-gjahr, end of ty_pohistory. TYPES: BEGIN OF ty_temp, fidoc TYPE bkpf-belnr, "FIDOC No awkey TYPE bkpf-belnr, "Reference Key gjahr TYPE bkpf-gjahr, "Fiscal Year budat TYPE bkpf-budat, "Posting Date belnr TYPE rbkp-belnr, "Doc No blart TYPE bkpf-blart, "Document Type END OF ty_temp. *Internal Table DATA: itab TYPE ty_itab OCCURS 0 WITH HEADER LINE. DATA: itab_temp TYPE ty_temp OCCURS 0 WITH HEADER LINE. DATA : IT_CUSTOM TYPE TY_CUSTOM OCCURS 0 WITH HEADER LINE. data: it_pohistory type ty_pohistory occurs 0 with header line. data : it_header type ty_header occurs 0 with header line. data : it_temp14 type ty_header occurs 0 with header line.

*Data Declaration DATA: BKTXT TYPE MKPF-BKTXT. DATA: FRBNR TYPE MKPF-FRBNR. data: budat type mkpf-budat. DATA: BELNR TYPE RSEG-BELNR. data: gjahr type rseg-gjahr. data: date1(10). data: date2(10). data: title(70). DATA : adrnr1 LIKE t001w-adrnr. DATA: plant_name1 LIKE adrc-name1. DATA: plant_name2 type adrc-name2. data: plant_name(70). DATA: comp_name1 LIKE adrc-name1. DATA: comp_name2 type adrc-name2. data: comp_name(70). DATA: month(2). * For ALV display DATA: itfieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE, gd_layout TYPE slis_layout_alv, itsort TYPE slis_t_sortinfo_alv WITH HEADER LINE. DATA: gd_prntparams TYPE slis_print_alv. DATA : it_data TYPE slis_t_listheader, wa_data LIKE LINE OF it_data. **ALV Declaration DATA: it_alv1 LIKE TABLE OF itab WITH HEADER LINE. DATA : i TYPE n. DATA : col_name(10) TYPE c. data: text(70).

*Selection Screen SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-001. PARAMETERS:p_bukrs LIKE rbkp-bukrs OBLIGATORY. SELECT-OPTIONS: s_werks FOR rseg-werks NO INTERVALS OBLIGATORY. SELECT-OPTIONS: s_regio FOR lfa1-regio NO INTERVALS. SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr NO INTERVALS. select-options: s_bsart for ekko-bsart no intervals. SELECT-OPTIONS:s_bldat FOR rbkp-bldat. SELECT-OPTIONS:s_budat FOR rbkp-budat OBLIGATORY. SELECTION-SCREEN END OF BLOCK block1. SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE text-002. PARAMETERS : R1 RADIOBUTTON GROUP G1. PARAMETERS : R2 RADIOBUTTON GROUP G1. SELECTION-SCREEN END OF BLOCK block2. SELECT-OPTIONS: s_mwskz FOR rseg-mwskz NO-DISPLAY. SELECT-OPTIONS: s_land1 FOR lfa1-land1 NO-DISPLAY. START-OF-SELECTION. PERFORM get_data. **Filtering the Data based on the Document Type and Document Status in the Inter

nal Table LOOP AT itab_temp. IF itab_temp-blart = 'RE'. itab_temp-belnr = itab_temp-awkey+0(10). MODIFY itab_temp. ELSE. DELETE itab_temp. ENDIF. ENDLOOP. WRITE : s_budat-low TO date1, s_budat-high TO date2. CONCATENATE 'Import Purchase Register From :' date1 ' To : ' date2 INTO text. if r1 = PERFORM PERFORM PERFORM perform PERFORM PERFORM PERFORM endif. if r2 = PERFORM PERFORM PERFORM perform PERFORM PERFORM PERFORM PERFORM endif. *&---------------------------------------------------------------------* *& Form get_data *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM get_data . SELECT belnr AS fidoc awkey budat gjahr blart FROM bkpf INTO CORRESPONDING FIELDS OF TABLE itab_temp WHERE bukrs = p_bukrs AND budat IN s_budat AND bstat = space. IF sy-subrc NE 0. MESSAGE 'No Values exist for the Selection.' TYPE 'S'. STOP. ENDIF. 'X'. taxvalues. filtering. CUSTOMS. filtering2. build_layout. build_fieldcat. alv_display. 'X'. taxvalues. filtering. CUSTOMS. filtering2. importheader. build_layout. build_fieldcat1. alv_display_header.

ENDFORM. *&---------------------------------------------------------------------* *& Form taxvalues *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM taxvalues . LOOP AT itab_temp. MOVE-CORRESPONDING itab_temp TO itab. SELECT SINGLE lifnr xblnr belnr gjahr stblg bldat vgart ivtyp waers kursf FROM rbkp INTO CORRESPONDING FIELDS OF itab WHERE belnr = itab_temp-belnr AND gjahr = itab_temp-gjahr. SELECT menge bklas matnr lfbnr werks mwskz buzei wrbtr pstyp kschl ebeln ebelp lfgja shkzg FROM rseg INTO CORRESPONDING FIELDS OF itab WHERE belnr = itab_temp-belnr AND gjahr = itab_temp-gjahr. APPEND itab. ENDSELECT. CLEAR itab. CLEAR itab_temp. ENDLOOP.

LOOP AT itab . *Purchase Order Document Type.

select single bsart from ekko into corresponding fields of itab where ebeln = itab-ebeln. select single batxt from t161t into corresponding fields of itab where spras = 'EN' AND bsart = itab-bsart.

*Material Details SELECT SINGLE matkl mtart FROM mara INTO CORRESPONDING FIELDS OF itab WHERE mara~matnr = itab-matnr. SELECT SINGLE name1 adrnr land1 FROM lfa1 INTO (itab-name1,itab-adrnr,itab-land1) WHERE lifnr = itab-lifnr. *Short Text SELECT SINGLE txz01 INTO itab-maktx FROM ekpo WHERE ebeln = itab-ebeln and ebelp = itab-ebelp. **Vendor Address SELECT SINGLE str_suppl1 post_code1 city1 region FROM adrc INTO CORRESPONDING FIELDS OF itab WHERE addrnumber = itab-adrnr. itab-qtr_yr = itab-bldat+0(4). month = itab-bldat+4(2). CASE month. WHEN '01'. itab-qtr_mth = 'JAN'. WHEN '02'. itab-qtr_mth = 'FEB'. WHEN '03'. itab-qtr_mth = 'MAR'. WHEN '04'. itab-qtr_mth = 'APR'. WHEN '05'. itab-qtr_mth = 'MAY'. WHEN '06'. itab-qtr_mth = 'JUN'. WHEN '07'. itab-qtr_mth = 'JUL'. WHEN '08'. itab-qtr_mth = 'AUG'. WHEN '09'. itab-qtr_mth = 'SEP'. WHEN '10'. itab-qtr_mth = 'OCT'. WHEN '11'. itab-qtr_mth = 'NOV'. WHEN '12'. itab-qtr_mth = 'DEC'.

ENDCASE. *INR VALUE CALCULATION itab-inrval = itab-wrbtr * itab-kursf.MODIFY itab. ENDLOOP. ENDFORM. " taxvalues

*&---------------------------------------------------------------------* *& Form build_layout *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM build_layout . CLEAR itab. gd_layout-zebra = 'X'. gd_layout-colwidth_optimize = 'X'. ENDFORM. " build_layout *&---------------------------------------------------------------------* *& Form build_fieldcat *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM build_fieldcat . IF itab[] IS INITIAL. MESSAGE 'No Values exist for the Selection.' TYPE 'S'. STOP. ENDIF. DEFINE m_fieldcat. itfieldcat-fieldname = &1. itfieldcat-col_pos = &2. itfieldcat-seltext_l = &3. itfieldcat-do_sum = &4. itfieldcat-outputlen = &5. append itfieldcat to itfieldcat. clear itfieldcat. END-OF-DEFINITION. m_fieldcat m_fieldcat m_fieldcat m_fieldcat m_fieldcat m_fieldcat m_fieldcat m_fieldcat m_fieldcat m_fieldcat m_fieldcat 'LFBNR' '' 'GR NO' '' 10. 'BELNR' '' 'MIRO NO' '' 10. 'BUZEI' '' 'MIRO LN ITM' '' 10. 'LIFNR' '' 'VENDOR CODE' '' 10. 'NAME1' '' 'VENDOR NAME' '' 14. 'STR_SUPPL1' '' 'VENDOR ADDRESS' '' '15' . 'POST_CODE1' '' 'PINCODE' '' 6. 'XBLNR' '' 'VEN INV NO' '' 16. 'BLDAT' '' 'VEN INV DATE' '' 8. 'EBELN' '' 'PUR ORD NO' '' 10. 'BATXT' '' 'PUR ORD DOC.TYPE' '' 20. "Pur Doc. Type Description

m_fieldcat 'EBELP' '' 'PUR LN ITM' '' 5. m_fieldcat 'WERKS' '' 'PLANT' '' 8. m_fieldcat 'MATNR' '' 'MAT NO' '' 18. m_fieldcat 'MAKTX' '' 'MAT DESC' '' 15. m_fieldcat 'MATKL' '' 'MAT CC' '' 7. m_fieldcat 'MENGE' '' 'QTY' '' 13. m_fieldcat 'WRBTR' '' 'VAL. OF GOODS' '' 11. m_fieldcat 'WAERS' '' 'CURR' '' 5. m_fieldcat 'INRVAL' '' 'INR VALUE' '' 13. m_fieldcat 'BED' '' 'BED' '' 10. m_fieldcat 'CVD' '' 'CVD' '' 10. m_fieldcat 'ECVD' '' 'CESS ON CVD' '' 10. m_fieldcat 'ECED' '' 'CESS ON DUTIES' '' 13. *Bill of Lading Removed and Bill of Entry Added. * m_fieldcat 'FRBNR' '' 'BILL OF LADING' '' 13. m_fieldcat 'BELNR1' '' 'BILL OF ENTRY' '' 13. m_fieldcat 'REVERSE' '' 'Reversed' '' 2. m_fieldcat 'FIDOC' '' 'FI DOC NO' '' 10. m_fieldcat 'MWSKZ' '' 'TC' '' 2. m_fieldcat 'BKLAS' '' 'VL CLS' '' 4. m_fieldcat 'CITY1' '' 'VENDOR CITY' '' 10. m_fieldcat 'QTR_MTH' '' 'MONTH' '' 10. m_fieldcat 'QTR_YR' '' 'YEAR' '' 4. m_fieldcat 'REMARKS' '' 'REMARKS' '' 15. ENDFORM. " build_fieldcat *&--------------------------------------------------------------------* *& Form list1 *&--------------------------------------------------------------------* * text *---------------------------------------------------------------------* * -->R_UCOMM text * -->RS_SELFIELDtext *---------------------------------------------------------------------* FORM list1 USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield. * Check function code CASE r_ucomm. WHEN '&IC1'. * Check field clicked on within ALVgrid report IF rs_selfield-fieldname = 'LFBNR'. * AND rs_selfield-fieldname = 'GJAHR'. * Read data table, using index of row user clicked on READ TABLE itab * INTO wa_ekko INDEX rs_selfield-tabindex. * Set parameter ID for transaction screen field SET PARAMETER ID 'MBN' FIELD itab-lfbnr. SET PARAMETER ID 'GJR' FIELD itab-gjahr. * Sxecute transaction ME23N, and skip initial data entry screen CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN. ENDIF. IF rs_selfield-fieldname = 'FIDOC'. * AND rs_selfield-fieldname = 'GJAHR'. * Read data table, using index of row user clicked on

READ TABLE itab * INTO wa_ekko INDEX rs_selfield-tabindex. * Set parameter ID for transaction screen field SET PARAMETER ID 'BLN' FIELD itab-fidoc. SET PARAMETER ID 'BUK' FIELD p_bukrs. SET PARAMETER ID 'GJR' FIELD itab-gjahr. * Sxecute transaction ME23N, and skip initial data entry screen CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN. ENDIF. IF rs_selfield-fieldname = 'BELNR'. * AND rs_selfield-fieldname = 'GJAHR'. * Read data table, using index of row user clicked on READ TABLE itab * INTO wa_ekko INDEX rs_selfield-tabindex. * Set parameter ID for transaction screen field SET PARAMETER ID 'RBN' FIELD itab-BELNR. SET PARAMETER ID 'GJR' FIELD itab-gjahr. * Sxecute transaction ME23N, and skip initial data entry screen CALL TRANSACTION 'MIR4' AND SKIP FIRST SCREEN. ENDIF. IF rs_selfield-fieldname = 'BELNR1'. * AND rs_selfield-fieldname = 'GJAHR'. * Read data table, using index of row user clicked on READ TABLE itab * INTO wa_ekko INDEX rs_selfield-tabindex. * Set parameter ID for transaction screen field SET PARAMETER ID 'RBN' FIELD itab-BELNR1. SET PARAMETER ID 'GJR' FIELD itab-gjahr. * Sxecute transaction ME23N, and skip initial data entry screen CALL TRANSACTION 'MIR4' AND SKIP FIRST SCREEN. ENDIF. ENDCASE. ENDFORM. *&---------------------------------------------------------------------* *& Form alv_display *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM alv_display . IF sy-batch = space. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid is_layout = gd_layout i_callback_user_command = 'LIST1' I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE' it_fieldcat = itfieldcat[] i_save = 'A'

is_print = gd_prntparams it_sort = itsort[] TABLES t_outtab = itab EXCEPTIONS program_error = 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. ELSEIF sy-batch = 'X'. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING i_callback_program = sy-repid it_fieldcat = itfieldcat[] it_sort = itsort[] TABLES t_outtab = itab EXCEPTIONS program_error = 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. ENDIF. ENDFORM. " alv_display

*&---------------------------------------------------------------------* *& Form FILTERING *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM filtering . ** Material type should be of ROH or HALB or FERT *CLEAR s_mtart. *REFRESH s_mtart. * *s_mtart-sign = 'I'. *s_mtart-option = 'EQ'. *s_mtart-low = 'ROH'. *APPEND s_mtart. *s_mtart-low = 'HALB'. *APPEND s_mtart. *s_mtart-low = 'FERT'. *APPEND s_mtart. *CLEAR s_mtart. *Tax Code for WCT should not be included.

s_mwskz-sign = 'I'. s_mwskz-option = 'EQ'. s_mwskz-low = 'W1'. APPEND s_mwskz. s_mwskz-low = 'W2'. APPEND s_mwskz. s_mwskz-low = 'W3'. APPEND s_mwskz. s_mwskz-low = 'W4'. APPEND s_mwskz. s_mwskz-low = 'W5'. APPEND s_mwskz. s_mwskz-low = 'W6'. APPEND s_mwskz. s_land1-sign = 'I'. s_land1-option = 'NE'. s_land1-low = 'IN'. APPEND s_land1. LOOP AT itab. IF itab-mwskz NOT IN s_mwskz * AND itab-shkzg EQ 'S' AND itab-bldat IN s_bldat AND itab-region IN s_regio AND itab-lifnr IN s_lifnr AND itab-land1 IN s_land1 AND itab-werks IN s_werks AND itab-bsart IN s_bsart. ELSE. DELETE itab. CONTINUE. ENDIF. IF itab-vgart EQ 'RS' AND itab-ivtyp EQ '5' AND itab-stblg NE ' '. itab-reverse = 'RS'. ELSEIF itab-vgart EQ 'RD' AND itab-ivtyp EQ ' ' AND itab-stblg NE ' '. itab-reverse = 'RD'. ENDIF. MODIFY itab. ENDLOOP. ENDFORM. " FILTERING *&---------------------------------------------------------------------* *& Form CUSTOMS *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------*

form CUSTOMS . LOOP AT ITAB. IF ITAB-LFBNR IS NOT INITIAL. SELECT SINGLE BKTXT FRBNR budat FROM MKPF INTO (BKTXT,FRBNR,budat) WHERE MBLNR = ITAB-LFBNR and mjahr = itab-lfgja. move frbnr to itab-frbnr. perform get_custom_invoice. else. select xblnr bewtp belnr gjahr from ekbe into table it_pohistory where ebeln = itab-ebeln and ebelp = itab-ebelp. sort it_pohistory by xblnr. read table it_pohistory with key xblnr = itab-xblnr bewtp = 'E' binary search. if sy-subrc = 0. SELECT SINGLE BKTXT FRBNR budat FROM MKPF INTO (BKTXT,FRBNR,budat) WHERE MBLNR = it_pohistory-belnr and mjahr = it_pohistory-gjahr. move it_pohistory-belnr to itab-lfbnr. move frbnr to itab-frbnr. perform get_custom_invoice. endif. ENDIF. MODIFY ITAB. clear: bktxt,frbnr,budat. ENDLOOP. SORT itab BY lfbnr belnr. " Sorting by GR no. endform. " CUSTOMS *&---------------------------------------------------------------------* *& Form get_custom_invoice *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form get_custom_invoice . CALL FUNCTION 'GET_CURRENT_YEAR'

EXPORTING BUKRS = p_bukrs DATE = budat IMPORTING CURRY = gjahr . * determine if wrong characters were entered

IF ( BKTXT CN '1234567890' ). *string contains wrong characters! ITAB-BELNR1 = BKTXT. ITAB-remarks = 'Wrng BoE Ref'. EXIT. ENDIF. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = BKTXT IMPORTING OUTPUT = BELNR . ITAB-BELNR1 = BELNR. *For getting the Customs MIRO doc, it is assumed that the Fiscal Year of Customs Miro is same as Fiscal Year of Migo Posting Date clear it_custom. refresh it_custom. SELECT WRBTR KSCHL EBELN EBELP FROM RSEG INTO CORRESPONDING FIELDS OF IT_CUSTOM WHERE BELNR = BELNR and gjahr = gjahr. if sy-subrc = 0. APPEND IT_CUSTOM. endif. ENDSELECT.

LOOP AT IT_CUSTOM. IF IT_CUSTOM-EBELN = ITAB-EBELN AND IT_CUSTOM-EBELP = ITAB-EBELP. CASE IT_CUSTOM-KSCHL. WHEN 'JCDB'. MOVE IT_CUSTOM-WRBTR TO ITAB-BED. WHEN 'JCV1'. MOVE IT_CUSTOM-WRBTR TO ITAB-CVD. WHEN 'JECV'. MOVE IT_CUSTOM-WRBTR TO ITAB-ECVD. WHEN 'JEDB'. MOVE IT_CUSTOM-WRBTR TO ITAB-ECED.

WHEN 'JCDS'. MOVE IT_CUSTOM-WRBTR TO ITAB-SBED. WHEN 'JCV2'. MOVE IT_CUSTOM-WRBTR TO ITAB-NCVD. ENDCASE. ENDIF. ENDLOOP. endform. " get_custom_invoice *&---------------------------------------------------------------------* *& Form filtering2 *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form filtering2 . loop at itab. if itab-lfbnr is initial. delete itab. endif. endloop. endform. " filtering2 *&--------------------------------------------------------------------* *& Form top_of_page *&--------------------------------------------------------------------* * text *---------------------------------------------------------------------* FORM top_of_page. CLEAR IT_DATA. REFRESH IT_DATA. *Company Details SELECT adrnr FROM t001 INTO adrnr1 WHERE bukrs = p_bukrs. ENDSELECT. SELECT name1 name2 FROM adrc INTO (comp_name1,comp_name2) WHERE addrnumber = adr nr1. ENDSELECT. concatenate comp_name1 comp_name2 into comp_name. wa_data-typ = 'H'. wa_data-info = comp_name. APPEND wa_data TO it_data. *Plant Details for Display loop at s_werks. SELECT single adrnr FROM t001w INTO adrnr1 WHERE werks = s_werks-low.

SELECT single name1 name2 FROM adrc INTO (plant_name1,plant_name2) WHERE addrnum ber = adrnr1. concatenate s_werks-low ' - ' plant_name1 ',' plant_name2 into plant_name. wa_data-info = plant_name. APPEND wa_data TO it_data. endloop. WRITE : s_budat-low TO date1, s_budat-high TO date2. if r1 = 'X'. CONCATENATE 'Import Purchase Register From :' date1 ' To : ' date2 INTO title. elseif r2 = 'X'. CONCATENATE 'Imp.Pur.Reg- Inv.Header From :' date1 ' To : ' date2 INTO title. endif. wa_data-info = title. APPEND wa_data TO it_data. CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING it_list_commentary = it_data * I_LOGO = * I_END_OF_LIST_GRID = . CLEAR WA_DATA. CLEAR IT_DATA. ENDFORM. "top_of_page *&---------------------------------------------------------------------* *& Form importheader *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form importheader . LOOP AT itab. MOVE-CORRESPONDING itab TO it_header. APPEND it_header. ENDLOOP. SORT it_header BY belnr. LOOP AT it_header. AT END OF belnr. READ TABLE it_header INDEX sy-tabix. SUM. " Summing the Amount for each Vendor Invoice No. MOVE-CORRESPONDING it_header TO it_temp14. APPEND it_temp14. CLEAR it_temp14.

ENDAT. ENDLOOP. SORT it_temp14 BY belnr ASCENDING. " SORTING BY MIRO NUMBER endform. " importheader *&---------------------------------------------------------------------* *& Form build_fieldcat1 *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form build_fieldcat1 . IF itab[] IS INITIAL. MESSAGE 'No Values exist for the Selection.' TYPE 'S'. STOP. ENDIF. DEFINE m_fieldcat. itfieldcat-fieldname = &1. itfieldcat-col_pos = &2. itfieldcat-seltext_l = &3. itfieldcat-do_sum = &4. itfieldcat-outputlen = &5. append itfieldcat to itfieldcat. clear itfieldcat. END-OF-DEFINITION. m_fieldcat 'BELNR' '' 'MIRO NO' '' 10. m_fieldcat 'LIFNR' '' 'VENDOR CODE' '' 10. m_fieldcat 'NAME1' '' 'VENDOR NAME' '' 14. m_fieldcat 'STR_SUPPL1' '' 'VENDOR ADDRESS' '' '15' . m_fieldcat 'POST_CODE1' '' 'PINCODE' '' 6. m_fieldcat 'XBLNR' '' 'VEN INV NO' '' 16. m_fieldcat 'BLDAT' '' 'VEN INV DATE' '' 8. m_fieldcat 'WERKS' '' 'PLANT' '' 8. m_fieldcat 'WRBTR' '' 'VAL. OF GOODS' '' 11. m_fieldcat 'WAERS' '' 'CURR' '' 5. m_fieldcat 'INRVAL' '' 'INRVALUE' '' 11. m_fieldcat 'BED' '' 'BED' '' 10. m_fieldcat 'CVD' '' 'CVD' '' 10. m_fieldcat 'ECVD' '' 'CESS ON CVD' '' 10. m_fieldcat 'ECED' '' 'CESS ON DUTIES' '' 13. *Bill of Lading Removed and Bill of Entry Added. * m_fieldcat 'FRBNR' '' 'BILL OF LADING' '' 13. m_fieldcat 'BELNR1' '' 'BILL OF ENTRY' '' 13. m_fieldcat 'REVERSE' '' 'Reversed' '' 2. m_fieldcat 'FIDOC' '' 'FI DOC NO' '' 10. m_fieldcat 'MWSKZ' '' 'TC' '' 2. m_fieldcat 'BKLAS' '' 'VL CLS' '' 4. m_fieldcat 'CITY1' '' 'VENDOR CITY' '' 10. m_fieldcat 'QTR_MTH' '' 'MONTH' '' 10. m_fieldcat 'QTR_YR' '' 'YEAR' '' 4. m_fieldcat 'REMARKS' '' 'REMARKS' '' 15. ENDFORM. " build_fieldcat *&---------------------------------------------------------------------*

*& Form alv_display_header *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form alv_display_header . IF sy-batch = space. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid is_layout = gd_layout i_callback_user_command = 'LIST2' I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE' it_fieldcat = itfieldcat[] i_save = 'A' is_print = gd_prntparams it_sort = itsort[] TABLES t_outtab = it_temp14 EXCEPTIONS program_error = 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. ELSEIF sy-batch = 'X'. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING i_callback_program = sy-repid it_fieldcat = itfieldcat[] it_sort = itsort[] TABLES t_outtab = it_temp14 EXCEPTIONS program_error = 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. ENDIF. endform. " alv_display_header *&--------------------------------------------------------------------* *& Form list1 *&--------------------------------------------------------------------* * text *---------------------------------------------------------------------* * -->R_UCOMM text * -->RS_SELFIELDtext *---------------------------------------------------------------------* FORM list2 USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield.

* Check function code CASE r_ucomm. WHEN '&IC1'. IF rs_selfield-fieldname = 'FIDOC'. * AND rs_selfield-fieldname = 'GJAHR'. * Read data table, using index of row user clicked on READ TABLE it_temp14 * INTO wa_ekko INDEX rs_selfield-tabindex. * Set parameter ID for transaction screen field SET PARAMETER ID 'BLN' FIELD it_temp14-fidoc. SET PARAMETER ID 'BUK' FIELD p_bukrs. SET PARAMETER ID 'GJR' FIELD it_temp14-gjahr. * Sxecute transaction ME23N, and skip initial data entry screen CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN. ENDIF. IF rs_selfield-fieldname = 'BELNR'. * AND rs_selfield-fieldname = 'GJAHR'. * Read data table, using index of row user clicked on READ TABLE it_temp14 * INTO wa_ekko INDEX rs_selfield-tabindex. * Set parameter ID for transaction screen field SET PARAMETER ID 'RBN' FIELD it_temp14-BELNR. SET PARAMETER ID 'GJR' FIELD it_temp14-gjahr. * Sxecute transaction ME23N, and skip initial data entry screen CALL TRANSACTION 'MIR4' AND SKIP FIRST SCREEN. ENDIF. IF rs_selfield-fieldname = 'BELNR1'. * AND rs_selfield-fieldname = 'GJAHR'. * Read data table, using index of row user clicked on READ TABLE it_temp14 * INTO wa_ekko INDEX rs_selfield-tabindex. * Set parameter ID for transaction screen field SET PARAMETER ID 'RBN' FIELD it_temp14-BELNR1. SET PARAMETER ID 'GJR' FIELD it_temp14-gjahr. * Sxecute transaction ME23N, and skip initial data entry screen CALL TRANSACTION 'MIR4' AND SKIP FIRST SCREEN. ENDIF. ENDCASE. ENDFORM.

Back to top Display posts from previous: All Posts1 Day7 Days2 Weeks1 Month3 Months6 Months1 Year Oldest FirstNewest First Russian ABAP Developer's Club Forum Index -> All times are GMT + 4 Hours Page 1 of 1 Jump to: Select a forum Discussions ----------------ABAP-- MiniSap--

Subm

-- Conversion-- Mail-- Calendar-- Arch & Logs-- GamesDynamic Prog Spool Process, SAP Query, Report PainterALV Grid / ALV Tree / ALV ListOLE2, Exc el, WinWordInterfaces -- BAPIEnhancement and Modification ound processing and JobsSmartforms, SapScripts, PDFPerformance tuning S curity and MonitoringDebuggingTransport and Upgrade SAP Business Wo tem, Unix PerlProject Management , Basis Ap You You You You You You You cannot cannot cannot cannot cannot cannot cannot post new topics in this forum reply to topics in this forum edit your posts in this forum delete your posts in this forum vote in polls in this forum attach files in this forum download files in this forum

All product names are trademarks of their respective companies. SAPNET.RU websit es are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any othe r are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site a t your own risk.

Вам также может понравиться