总帐凭证批量输入BDC示例,其中关于循环添加项目的部分,没有做便于大家清楚不循环前是怎样的个状态,
*&---------------------------------------------------------------------*
*& Report Z_TEST_FB50
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z_TEST_FB50.
DATA: BEGIN OF ITAB OCCURS 0,
BLDAT LIKE BKPF-BLDAT, "凭证日期
WAERS LIKE BKPF-WAERS, "公司代码 1000/2000
BUDAT LIKE BKPF-BUDAT, "过帐日期
XBLNR LIKE BKPF-XBLNR, "参照
BKTXT LIKE BKPF-BKTXT, "抬头文本
BVORG LIKE BKPF-BVORG, "往来凭证号
HKONT LIKE BSEG-HKONT, "科目
SHKZG LIKE BSEG-SHKZG, "借/贷 H/S
WRBTR LIKE BSEG-WRBTR, "金额
MWSKZ like BSEG-MWSKZ, "税金
ZUONR LIKE BSEG-ZUONR, "项目分配编号
SGTXT LIKE BSEG-SGTXT, "项目文本
KOSTL LIKE BSEG-KOSTL, "成本中心
PRCTR LIKE BSEG-PRCTR, "利润中心
END OF ITAB.
DATA BEGIN OF IT_BDC OCCURS 0. "IT_BDC是定义了内表,该内表就是存放BDC的操作步骤
INCLUDE STRUCTURE BDCDATA.
DATA END OF IT_BDC.
DATA: BEGIN OF GT_MESSTAB OCCURS 10. "message table
INCLUDE STRUCTURE BDCMSGCOLL.
DATA: END OF GT_MESSTAB.
DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE."MESSTAB中保存的是执行完BDC系统的返回信息
DATA: WA_MESSTAB LIKE BDCMSGCOLL,
LC_INFORECORD(10) TYPE C.
DATA: LC_LINE TYPE I.
DATA: BEGIN OF WA_RE_VAL,
ZZBID(18) TYPE C,
STATUS(10) TYPE C,
TEXT(100) TYPE C,
END OF WA_RE_VAL.
DATA: GV_GROUP(12) TYPE C VALUE 'FB50L_ORD', "BDC Name
GV_USER(12) TYPE C, "BDC User
GV_KEEP(1) TYPE C VALUE 'X', " ' '=Delete,'X'=keep after processing
GV_HOLDDATE LIKE SY-DATUM. "Date
TYPE-POOLS: slis.
DATA: i_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE, "slis_t_fieldcat_alv WITH HEADER LINE,slis_t_fieldcat_alv
i_fieldcat_alv TYPE slis_t_fieldcat_alv WITH HEADER LINE,
i_events TYPE slis_t_event, "alv事件
w_events LIKE LINE OF i_events,
gd_tab_group TYPE slis_t_sp_group_alv,
* gd_layout TYPE lvc_s_layo, "slis_layout_alv,
gd_layout TYPE slis_layout_alv,
usercommand TYPE slis_fieldname VALUE 'USERCOMMAND',
gd_repid LIKE sy-repid.
CONSTANTS:
c_begin_row TYPE i VALUE 1, "Beginning row of excel file
c_begin_col TYPE i VALUE 1, "Beginning column of excel file
c_end_row TYPE i VALUE 9999, "Ending row of excel file
c_end_col TYPE i VALUE 55. "Ending column of excel file
PARAMETERS: BDCTYPE(1) TYPE C DEFAULT 'B' NO-DISPLAY,
* BDCMODE LIKE BDCRUN-BDC_AMODUS DEFAULT 'A' NO-DISPLAY.
BDCMODE LIKE BDCRUN-BDC_AMODUS DEFAULT 'N' NO-DISPLAY.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE t2.
*PARAMETERS:cc AS CHECKBOX DEFAULT 'X'.
PARAMETERS: pc_file(80).
SELECTION-SCREEN END OF BLOCK b2.
INITIALIZATION.
* t1 = '查询条件'.
t2 = '文件上传'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pc_file.
PERFORM sub_find USING pc_file.
*&---------------------------------------------------------------------*
*& Form sub_find
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PC_FILE text
*----------------------------------------------------------------------*
FORM sub_find USING pc_file.
* Data for open dialog
DATA: l_filetab TYPE filetable,
l_rc TYPE i.
CLEAR l_filetab.
REFRESH l_filetab.
* Open dialog
CALL METHOD cl_gui_frontend_services=>file_open_dialog