文本版代码:

*&---------------------------------------------------------------------*
*& Report ZLM_TEST_028
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zlm_test_028.
DATA: BEGIN OF gt_data1 OCCURS 0,
bsart
bnfpo
* KNTTP
matnr TYPE string, "商品代码
* TXZ01
menge
meins
eeind
* MATKL
werks
ekgrp
afnam
bednr
sakto
kostl
anln1
aufnr
preis TYPE string, "评估价格
waers
peinh
dispo
str1 TYPE string,"行项目文本-传送文本
str2 TYPE string,"行项目文本-预算年度
str3 TYPE string,"行项目文本-资产类别

DATA: BEGIN OF gt_data OCCURS 0,
bednr
bsart
bnfpo
* KNTTP
matnr TYPE string, "商品代码
* TXZ01
menge
meins
eeind
* MATKL
werks
ekgrp
afnam
sakto
kostl
anln1
aufnr
preis TYPE string, "评估价格
waers
peinh
dispo
str1 TYPE string,"行项目文本-传送文本
str2 TYPE string,"行项目文本-预算年度
str3 TYPE string,"行项目文本-资产类别

DATA: BEGIN OF gt_out OCCURS 0,


DATA: pr_item LIKE TABLE OF bapiebanc WITH HEADER LINE,



DATA: l_return LIKE pr_return.
DATA: lv_message(255).
DATA: pr_no TYPE bapiebanc-preq_no.
DATA: bnfpo TYPE bnfpo.
DATA: matnr TYPE matnr.
DATA: pp_file TYPE string.
PARAMETERS:p_file(128) .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

START-OF-SELECTION.



*&---------------------------------------------------------------------*
*& Form GET_FILE
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_file .

EXPORTING
def_filename
mask
*'',*.xls,*.XLS.'如果读入txt文件,在后边就需要用函数
* CALL FUNCTION 'WS_UPLOAD'
mode
title = 'File Name'
IMPORTING
filename = p_file
EXCEPTIONS
inv_winsys
no_batch

selection_error = 4
OTHERS

ENDFORM. " GET_FILE
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_data .


filename = pp_file
filetype = 'ASC'
has_field_separator
* HEADER_LENGTH
read_by_line = 'X'
* DAT_MODE = ' '
* CODEPAGE = ' '
* IGNORE_CERR
* REPLACEMENT
* CHECK_BOM
* VIRUS_SCAN_PROFILE =
* NO_AUTH_CHECK
* IMPORTING
* FILELENGTH =
* HEADER =

data_tab = gt_data1
EXCEPTIONS
file_open_error
file_read_error
no_batch = 3
gui_refuse_filetransfer
invalid_type = 5
no_authority = 6
unknown_error
bad_data_format
header_not_allowed = 9
separator_not_allowed
header_too_long
unknown_dp_error = 12
access_denied
dp_out_of_memory = 14
disk_full
dp_timeout = 16
OTHERS = 17






WHEN 4.MESSAGE 'GUI_REFUSE_FILETRANSFER ' TYPE 'E'.










WHEN 15.MESSAGE 'DISK_FULL ' TYPE 'E'.

WHEN 17.MESSAGE ' OTHERS ' TYPE 'E'.


* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*






ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form CREATE_PR
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_pr .




input = bnfpo




input = gt_data-matnr


pr_item-doc_type = gt_data-bsart.
pr_item-preq_item = bnfpo.
* PR_ITEM-ACCTASSCAT = GT_DATA-KNTTP.
pr_item-material = matnr.
* PR_ITEM-SHORT_TEXT = GT_DATA-TXZ01.
pr_item-quantity = gt_data-menge.
pr_item-unit = gt_data-meins.
pr_item-deliv_date = gt_data-eeind.
* PR_ITEM-MAT_GRP = GT_DATA-MATKL.
pr_item-plant = gt_data-werks.
pr_item-pur_group = gt_data-ekgrp.
pr_item-preq_name = gt_data-afnam.
pr_item-trackingno = gt_data-bednr.
pr_item-c_amt_bapi = gt_data-preis.
pr_item-currency = gt_data-waers.
pr_item-price_unit = gt_data-peinh.
pr_item-mrp_contr = gt_data-dispo.



pr_account-g_l_acct = gt_data-sakto.
pr_account-cost_ctr = gt_data-kostl. "成本中心


















APPEND pr_item_id.
CLEAR pr_item_id.


* EXPORTING
* SKIP_ITEMS_WITH_ERROR =
* AUTOMATIC_SOURCE
IMPORTING
number

requisition_items = pr_item
requisition_account_assignment
requisition_item_text = pr_item_id
* REQUISITION_LIMITS
* REQUISITION_CONTRACT_LIMITS =
* REQUISITION_SERVICES
* REQUISITION_SRV_ACCASS_VALUES =
return
* REQUISITION_SERVICES_TEXT =
* REQUISITION_ADDRDELIVERY
* EXTENSIONIN =


ENDFORM. " CREATE_PR
*&---------------------------------------------------------------------*
*& Form WRITE_OUT
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM write_out .



ENDFORM. " WRITE_OUT
*以下为数据格式(行项目以回车键换行,列以TAB分隔):
*ZB 10 100009 10 EA 20100915 D005
*ZB 10 100008 10 EA 20100915 D005s