SAP execl批量导入实例,包括查询导入一体
tables:ztsd003,ztsd004.
DATA:GT_OUT1 type TABLE OF ztsd003,
gs_OUT1 type ztsd003,
GT_OUT2 type TABLE OF ztsd004,
Gs_OUT2 type ztsd004,
gt_fieldcat TYPE lvc_t_fcat,
gs_layout TYPE lvc_s_layo.
DATA:BEGIN OF RECORD OCCURS 0,
A(50),B(50),C(20),D(20),E(20),
F(20),G(20),H(20),I(20),J(20),
K(20),L(20),M(20),N(20),
O(20),P(20),Q(20),R(20),
END OF RECORD.
SELECTION-SCREEN BEGIN OF BLOCK T1 WITH FRAME TITLE TEXT-001.
PARAMETERS:P_LNAME LIKE RLGRAP-FILENAME MODIF ID MD2,
P_DR RADIOBUTTON GROUP R1 USER-COMMAND UC DEFAULT 'X',
P_CX RADIOBUTTON GROUP R1.
SELECTION-SCREEN END OF BLOCK T1.
SELECTION-SCREEN BEGIN OF BLOCK t2 WITH FRAME TITLE TEXT-002.
SELECT-OPTIONS:s_zhyms FOR ZTSd003-Zhyms MODIF ID MD1,
s_zqd1 FOR ZTSd003-Zqd MODIF ID MD1,
s_zcpfl FOR ZTSd003-Zcpfl MODIF ID MD1,
s_auart FOR ZTSd003-auart MODIF ID MD1,
s_zfhrq FOR ZTSd003-zfhrq MODIF ID MD1
.
SELECTION-SCREEN END OF BLOCK t2.
SELECTION-SCREEN BEGIN OF BLOCK t3 WITH FRAME TITLE TEXT-002.
SELECT-OPTIONS:s_zyf FOR ZTSd004-Zyf MODIF ID MD3,
s_zqd2 FOR ZTSd003-Zqd MODIF ID MD3
.
SELECTION-SCREEN END OF BLOCK t3.
SELECTION-SCREEN BEGIN OF BLOCK T4 WITH FRAME TITLE TEXT-002.
PARAMETERS:p_1 RADIOBUTTON GROUP r2 USER-COMMAND uc DEFAULT 'X',
p_2 RADIOBUTTON GROUP r2.
SELECTION-SCREEN END OF BLOCK T4.
INITIALIZATION.
SET PF-STATUS 'DOWNLOAD'.
* PERFORM FRM_INI_DATA.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
CASE SCREEN-GROUP1.
WHEN 'MD1'.
IF P_CX IS NOT INITIAL AND P_1 IS NOT INITIAL.
SCREEN-ACTIVE = '1'.
ELSE.
SCREEN-ACTIVE = '0'.
ENDIF.
WHEN 'MD2'.
IF P_DR IS NOT INITIAL .
SCREEN-ACTIVE = '1'.
ELSE.
SCREEN-ACTIVE = '0'.
ENDIF.
WHEN 'MD3'.
IF P_CX IS NOT INITIAL AND P_2 IS NOT INITIAL.
SCREEN-ACTIVE = '1'.
ELSE.
SCREEN-ACTIVE = '0'.
ENDIF.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
AT SELECTION-SCREEN.
CASE SY-UCOMM.
WHEN 'DOWNLOAD'.
PERFORM FRM_GER_TEMPLATE1.
WHEN 'DOWNLOAD1'.
PERFORM FRM_GER_TEMPLATE2.
ENDCASE.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_LNAME.
PERFORM GET_P_LNAME.
START-OF-SELECTION.
IF p_dr is not INITIAL.
PERFORM FRM_IMPORT_DATA.
"将数据整合到内表输出
PERFORM FRM_DATA_DR.
ELSE.
PERFORM FRM_GET_DATA.
PERFORM FRM_FIELDCAT_INIT. "ALV字段定义
PERFORM FRM_LAYOUT_INIT. "ALV整体状态
PERFORM FRM_GRID_DISPLAY. "ALV输出
ENDIF.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form FRM_GER_TEMPLATE1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_GER_TEMPLATE1 .
DATA:
LO_OBJDATA LIKE WWWDATATAB,
LS_DESTINATION LIKE RLGRAP-FILENAME,
LS_OBJNAM TYPE STRING,
LI_RC LIKE SY-SUBRC,
LS_ERRTXT TYPE STRING.
DATA:
P_OBJID TYPE WWWDATATAB-OBJID,
P_DEST LIKE SAPB-SAPPFAD,
L_TITLE TYPE STRING,
L_DFNAME TYPE STRING,
L_FILENAME TYPE STRING,
L_PATH TYPE STRING,
L_L_PATH TYPE STRING.
CLEAR L_DFNAME.
L_DFNAME = '行业渠道销售数据'.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
EXPORTING
WINDOW_TITLE = L_TITLE
DEFAULT_EXTENSION = 'xls'
DEFAULT_FILE_NAME = L_DFNAME
FILE_FILTER = '(EXCEL)'
CHANGING
FILENAME = L_FILENAME
PATH = L_PATH
FULLPATH = L_L_PATH.
LO_OBJDATA-RELID = 'MI'.
LO_OBJDATA-OBJID = 'ZSD003'.
LS_DESTINATION = L_L_PATH.
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
EXPORTING
KEY = LO_OBJDATA
DESTINATION = LS_DESTINATION
IMPORTING
RC = LI_RC.
IF LI_RC NE 0.
MESSAGE '下载失败,检查输入数据及模板是否上传' TYPE 'E'.
ENDIF.
ENDFORM. " FRM_GER_TEMPLATE1
*&---------------------------------------------------------------------*
*& Form FRM_GER_TEMPLATE2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_GER_TEMPLATE2 .
DATA:
LO_OBJDATA LIKE WWWDATATAB,
LS_DESTINATION LIKE RLGRAP-FILENAME,
LS_OBJNAM TYPE STRING,
LI_RC LIKE SY-SUBRC,
LS_ERRTXT TYPE STRING.
DATA:
P_OBJID TYPE WWWDATATAB-OBJID,
P_DEST LIKE SAPB-SAPPFAD,
L_TITLE TYPE STRING,
L_DFNAME TYPE STRING,
L_FILENAME TYPE STRING,
L_PATH TYPE STRING,
L_L_PATH TYPE STRING.
CLEAR L_DFNAME.
L_DFNAME = '预算目标数据'.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
EXPORTING
WINDOW_TITLE = L_TITLE
DEFAULT_EXTENSION = 'xls'
DEFAULT_FILE_NAME = L_DFNAME
FILE_FILTER = '(EXCEL)'
CHANGING
FILENAME = L_FILENAME
PATH = L_PATH
FULLPATH = L_L_PATH.
LO_OBJDATA-RELID = 'MI'.
LO_OBJDATA-OBJID = 'ZSD004'.
LS_DESTINATION = L_L_PATH.
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
EXPORTING
KEY = LO_OBJDATA
DESTINATION = LS_DESTINATION
IMPORTING
RC = LI_RC.
IF LI_RC NE 0.
MESSAGE '下载失败,检查输入数据及模板是否上传' TYPE 'E'.
ENDIF.
ENDFORM. " FRM_GER_TEMPLATE2
*&---------------------------------------------------------------------*
*& Form GET_P_LNAME
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_P_LNAME .
CALL FUNCTION 'TB_LIMIT_WS_FILENAME_GET'
EXPORTING
* DEF_FILENAME = ' '
* DEF_PATH = ' '
MASK = 'Excel files (*.XLSX)|*.XLSX|Excel files (*.XLS)|*.XLS|All Files (*.*)|*.*|'
* MODE = ' '
TITLE = TEXT-002
IMPORTING
FILENAME = P_LNAME
* PATH =
* FILE =
EXCEPTIONS
SELECTION_CANCEL = 1
SELECTION_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM. " GET_P_LNAME
*&---------------------------------------------------------------------*
*& Form FRM_IMPORT_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_IMPORT_DATA .
IF p_1 is not INITIAL .
"从导入表获取数据
"校验文件是否输入正确
IF p_lname cs '行业渠道销售数据'.
else.
MESSAGE '请根据所选的导入报表,导入正确的文件!' type 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
PERFORM FRM_UPLOAD_DATA USING 1 2 14 P_LNAME.
else.
IF p_lname cs '预算目标数据'.
else.
MESSAGE '请根据所选的导入报表,导入正确的文件!' type 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
"从导入表获取数据
PERFORM FRM_UPLOAD_DATA USING 1 2 18 P_LNAME.
ENDIF.
ENDFORM. " FRM_IMPORT_DATA
*&---------------------------------------------------------------------*
*& Form FRM_UPLOAD_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_1 text
* -->P_2 text
* -->P_2 text
* -->P_P_FILE text
*----------------------------------------------------------------------*
FORM FRM_UPLOAD_DATA USING COL TYPE I ROW TYPE I COL2 TYPE I P_FILE TYPE LOCALFILE.
DATA: CNS_BEGIN_COL TYPE I , "upload的Excel的起始列
CNS_BEGIN_ROW TYPE I , "upload的Excel的起始行
CNS_END_COL TYPE I , "upload的Excel的终止列
CNS_END_ROW TYPE I VALUE 20000 . "upload的Excel的终止行
CNS_BEGIN_COL = COL .
CNS_BEGIN_ROW = ROW .
CNS_END_COL = COL2 .
DATA : WA_DATAFILE TYPE RLGRAP-FILENAME. "Local ASCII Text File
* data : l_intern type kcde_cells occurs 0 with header line.
DATA : L_INTERN LIKE TABLE OF ALSMEX_TABLINE WITH HEADER LINE..
DATA : L_INDEX TYPE I.
FIELD-SYMBOLS : <FS>.
WA_DATAFILE = P_FILE.
* call function 'KCD_EXCEL_OLE_TO_INT_CONVERT'
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = WA_DATAFILE
I_BEGIN_COL = CNS_BEGIN_COL
I_BEGIN_ROW = CNS_BEGIN_ROW
I_END_COL = CNS_END_COL
I_END_ROW = CNS_END_ROW
TABLES
INTERN = L_INTERN[]
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3.
IF L_INTERN[] IS INITIAL.
MESSAGE '导入文件没有数据,请检查!' TYPE 'S' DISPLAY LIKE 'E'..
LEAVE LIST-PROCESSING.
ENDIF.
DATA : TMP_ROW TYPE I .
TMP_ROW = 1 .
LOOP AT L_INTERN.
IF TMP_ROW <> L_INTERN-ROW .
APPEND RECORD.
CLEAR RECORD.
TMP_ROW = L_INTERN-ROW.
ENDIF.
CASE L_INTERN-COL.
WHEN 1.
RECORD-A = L_INTERN-VALUE .
WHEN 2.
RECORD-B = L_INTERN-VALUE .
WHEN 3.
RECORD-C = L_INTERN-VALUE .
WHEN 4.
RECORD-D = L_INTERN-VALUE .
WHEN 5.
RECORD-E = L_INTERN-VALUE .
WHEN 6.
RECORD-F = L_INTERN-VALUE .
WHEN 7.
RECORD-G = L_INTERN-VALUE .
WHEN 8.
RECORD-H = L_INTERN-VALUE .
WHEN 9.
RECORD-I = L_INTERN-VALUE .
WHEN 10.
RECORD-J = L_INTERN-VALUE .
WHEN 11.
RECORD-K = L_INTERN-VALUE .
WHEN 12.
RECORD-L = L_INTERN-VALUE .
WHEN 13.
RECORD-M = L_INTERN-VALUE.
WHEN 14.
RECORD-N = L_INTERN-VALUE .
WHEN 15.
RECORD-O = L_INTERN-VALUE.
WHEN 16.
RECORD-P = L_INTERN-VALUE .
WHEN 17.
RECORD-Q = L_INTERN-VALUE.
WHEN 18.
RECORD-R = L_INTERN-VALUE .
ENDCASE.
ENDLOOP.
APPEND RECORD.
CLEAR RECORD.
ENDFORM. " FRM_UPLOAD_DATA
*&---------------------------------------------------------------------*
*& Form FRM_DATA_DR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_DATA_DR .
data:lt_tvakt type TABLE OF tvakt,
ls_tvakt type tvakt,
lv_num type i,
lv_str type string .
SELECT * FROM tvakt into CORRESPONDING FIELDS OF TABLE lt_tvakt
where spras = '1'.
SORT lt_tvakt by auart.
IF P_1 IS NOT INITIAL.
LOOP AT RECORD.
"判断订单类型是否存在
lv_num = sy-tabix.
CLEAR ls_tvakt.
READ TABLE lt_tvakt into ls_tvakt WITH key auart = record-g BINARY SEARCH.
IF sy-subrc <> 0.
lv_str = 'EXCEL第' && lv_Num && '行订单类型不存在,请核对后再导入!' .
MESSAGE lv_str type 'S' DISPLAY LIKE 'E'.
RETURN.
* LEAVE LIST-PROCESSING.
ENDIF.
GS_OUT1-ZHYMS = RECORD-A.
GS_OUT1-ZQD = RECORD-B.
GS_OUT1-ZCPFL = RECORD-C.
GS_OUT1-AUART = RECORD-g.
GS_OUT1-ZFHRQ = RECORD-h.
GS_OUT1-zmc = LS_TVAKT-BEZEI.
GS_OUT1-ZSL = RECORD-d.
GS_OUT1-ZJHJE = RECORD-e.
GS_OUT1-ZBHSYGSR = RECORD-f.
GS_OUT1-ZQTFL = RECORD-I.
GS_OUT1-ZBYZD1 = RECORD-J.
GS_OUT1-ZBYZD2 = RECORD-K.
GS_OUT1-ZBYZD3 = RECORD-L.
GS_OUT1-ZBYZD4 = RECORD-M.
GS_OUT1-ZBYZD5 = RECORD-N.
APPEND GS_OUT1 TO GT_OUT1.
CLEAR:RECORD,GS_OUT1.
ENDLOOP.
MODIFY ZTSD003 FROM TABLE GT_OUT1.
IF sy-subrc = 0.
MESSAGE '更新表成功!' type 'S'.
COMMIT WORK AND WAIT .
else.
ROLLBACK WORK .
ENDIF.
ELSE.
LOOP AT RECORD.
GS_OUT2-ZYF = RECORD-A.
GS_OUT2-ZQD = RECORD-B.
GS_OUT2-ZYJSR = RECORD-C.
GS_OUT2-ZRNSL = RECORD-D.
GS_OUT2-ZDNXL = RECORD-E.
GS_OUT2-ZSNXL = RECORD-F.
GS_OUT2-ZHY = RECORD-G.
GS_OUT2-ZCNN = RECORD-H.
GS_OUT2-ZRSJ = RECORD-I.
GS_OUT2-ZZN = RECORD-J.
GS_OUT2-ZXMX = RECORD-K.
GS_OUT2-ZXZB = RECORD-L.
GS_OUT2-ZQT = RECORD-M.
GS_OUT2-ZBYZD1 = RECORD-N.
GS_OUT2-ZBYZD2 = RECORD-O.
GS_OUT2-ZBYZD3 = RECORD-P.
GS_OUT2-ZBYZD4 = RECORD-Q.
GS_OUT2-ZBYZD5 = RECORD-R.
APPEND GS_OUT2 TO GT_OUT2.
CLEAR:RECORD,GS_OUT2.
ENDLOOP.
MODIFY ZTSD004 FROM TABLE GT_OUT2.
IF sy-subrc = 0.
MESSAGE '更新表成功!' type 'S'.
COMMIT WORK AND WAIT .
else.
ROLLBACK WORK .
ENDIF.
ENDIF.
ENDFORM. " FRM_DATA_DR
*&---------------------------------------------------------------------*
*& Form FRM_ALV_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_ALV_DATA .
ENDFORM. " FRM_ALV_DATA
*&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_GET_DATA .
IF p_1 is not INITIAL.
SELECT
*
from ztsd003
INTO CORRESPONDING FIELDS OF TABLE gt_out1
where ZHYMS in s_zhyms
and ZQD in s_zqd1
and ZCPFL in s_zcpfl
and AUART in s_auart
AND ZFHRQ in s_zfhrq.
else.
SELECT
*
from ztsd004
INTO CORRESPONDING FIELDS OF TABLE gt_out2
where ZQD in s_zqd2
and Zyf in s_zyf
.
ENDIF.
ENDFORM. " FRM_GET_DATA
*&---------------------------------------------------------------------*
*& Form FRM_FIELDCAT_INIT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_FIELDCAT_INIT .
IF p_1 is not INITIAL.
PERFORM APPEND_FC_ALV USING:
'ZHYMS' '' '' ' ' '行业描述' 10 '' '' 'X' '',
'ZQD' '' '' ' ' '渠道(报表)' 10 '' '' 'X' '',
'ZCPFL' '' '' ' ' '产品分类' 10 '' '' 'X' '',
'AUART' '' '' ' ' '销售凭证类型' 10 '' '' 'X' '',
'ZFHRQ' '' '' ' ' '发货日期' 10 '' '' 'X' '',
'ZMC' '' '' ' ' '订单类型名称' 10 '' '' 'X' '',
'ZSL' '' '' ' ' '数量' 10 '' '' 'X' '',
'ZJHJE' '' '' ' ' '交货金额' 10 '' '' 'X' '',
'ZBHSYGSR' '' '' ' ' '不含税预估收入 ' 10 '' '' 'X' '',
'ZQTFL' '' '' ' ' '其他分类' 10 '' '' 'X' ''
.
else.
PERFORM APPEND_FC_ALV USING:
'ZYF' '' '' ' ' '月份' 10 '' '' 'X' '',
'ZQD' '' '' ' ' '渠道(报表)' 10 '' '' 'X' '',
'ZYJSR' '' '' ' ' '业绩收入(万元)' 10 '' '' 'X' '',
'ZRNSL' '' '' ' ' '产品1(万袋)' 10 '' '' 'X' '',
'ZDNXL' '' '' ' ' '产品2(万袋)' 10 '' '' 'X' '',
'ZSNXL' '' '' ' ' '产品3(万杯)' 10 '' '' 'X' '',
'ZHY' '' '' ' ' '产品4(万箱)' 10 '' '' 'X' '',
'ZCNN' '' '' ' ' '产品5(万箱)' 10 '' '' 'X' '',
'ZRSJ' '' '' ' ' '产品6(万箱)' 10 '' '' 'X' '',
'ZZN' '' '' ' ' '产品7(万箱)' 10 '' '' 'X' '',
'ZXMX' '' '' ' ' '产品8(万箱)' 10 '' '' 'X' '',
'ZXZB' '' '' ' ' '产品9(万箱)' 10 '' '' 'X' '',
'ZQT' '' '' ' ' '其他(万箱)' 10 '' '' 'X' ''
.
ENDIF.
ENDFORM. " FRM_FIELDCAT_INIT
*&---------------------------------------------------------------------*
*& Form FRM_LAYOUT_INIT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_LAYOUT_INIT .
gs_layout-zebra = 'X'. "斑马线显示,颜色隔行交替显示
gs_layout-edit = ''. "ALV是否可编辑,注意只对Grid模式有效,对List模式无效
"gs_layout-window_titlebar = ''. "程序标题
"gs_layout-key_hotspot = ''. "关键字段设为热点(超链接)
"gs_layout-lights_fieldname = ''. "XX字段显示状态灯,可取值为1:RED,2:YELLOW,3:GREEN
gs_layout-cwidth_opt = 'X'. "ALV网格(单元格)宽度设置为自动最优化,按输出内容宽度自动调整
"gs_layout-no_vline = ' '. "没有竖线,由空格代替
gs_layout-cwidth_opt = 'X'. "最优列宽
* GS_LAYOUT-BOX_FNAME = 'CBX'. "在输出内表中定义的字段名,该字段作为checkbox,可以在输出列表中,选择多行
ENDFORM. " FRM_LAYOUT_INIT
*&---------------------------------------------------------------------*
*& Form FRM_GRID_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_GRID_DISPLAY .
DATA LT_SETTING TYPE LVC_S_GLAY.
LT_SETTING-EDT_CLL_CB = 'X'.
IF p_1 is not INITIAL.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = sy-repid "SY-CPROG
I_CALLBACK_PF_STATUS_SET = 'FRM_SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = 'FRM_USER_COMMAND'
IS_LAYOUT_LVC = gs_layout
IT_FIELDCAT_LVC = gt_fieldcat
I_SAVE = 'A'
TABLES
T_OUTTAB = GT_OUT1
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
else.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = sy-repid "SY-CPROG
I_CALLBACK_PF_STATUS_SET = 'FRM_SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = 'FRM_USER_COMMAND'
IS_LAYOUT_LVC = gs_layout
IT_FIELDCAT_LVC = gt_fieldcat
I_SAVE = 'A'
TABLES
T_OUTTAB = GT_OUT2
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
ENDIF.
ENDFORM. " FRM_GRID_DISPLAY
*&---------------------------------------------------------------------*
*& Form APPEND_FC_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0722 text
* -->P_0723 text
* -->P_0724 text
* -->P_10 text
* -->P_0726 text
* -->P_0727 text
* -->P_0728 text
* -->P_0729 text
*----------------------------------------------------------------------*
FORM append_fc_alv USING fieldname TYPE slis_fieldcat_alv-fieldname
ref_fieldname TYPE slis_fieldcat_alv-ref_fieldname
ref_tabname TYPE slis_fieldcat_alv-ref_tabname
key TYPE slis_fieldcat_alv-key
reptext_ddic TYPE slis_fieldcat_alv-reptext_ddic
outputlen TYPE slis_fieldcat_alv-outputlen
lzero TYPE slis_fieldcat_alv-lzero
emphasize TYPE slis_fieldcat_alv-emphasize
no_zero TYPE slis_fieldcat_alv-no_zero
edit TYPE slis_fieldcat_alv-edit.
DATA ls_fieldcat TYPE lvc_s_fcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = fieldname. "字段
ls_fieldcat-ref_field = ref_fieldname. "参考字段
ls_fieldcat-ref_table = ref_tabname. "参考表
ls_fieldcat-key = key. "关键字段
ls_fieldcat-coltext = reptext_ddic. "显示名称
ls_fieldcat-outputlen = outputlen. "字段长度
ls_fieldcat-lzero = lzero. "是否有前导零
ls_fieldcat-emphasize = emphasize. "字段列颜色
ls_fieldcat-no_zero = no_zero. "不显示多余的零
ls_fieldcat-edit = edit. "编辑
APPEND ls_fieldcat TO gt_fieldcat.
ENDFORM. " APPEND_FC_ALV
*&---------------------------------------------------------------------*
*& Form FRM_SET_PF_STATUS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->RT_EXTAB text
*----------------------------------------------------------------------*
FORM FRM_SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STATUS_CX'.
SET TITLEBAR 'TITLE'.
ENDFORM.
学习自用,有问题还原指正,感谢!!!