*&---------------------------------------------------------------------*
*& Report ZMMR005
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zmmr005.
*----------------------------------------------------------------------*
* <1.1-声明 包含程序> INCLUDE PROGRAMS *
*----------------------------------------------------------------------*
***********《所有全局变量、类都写在 DEFINE INCLUDE 程序中》**************
INCLUDE zmmr005_define.
***********《所有查询条件都写在 SEL INCLUDE 程序中》*****************
INCLUDE zmmr005_sel.
***********《所有逻辑代码都写在 F0* INCLUDE 程序中》*****************
INCLUDE zmmr005_f01.
************************************************************************
* <第二部分---声明 过程:即事件> PROCESSING *
************************************************************************
*----------------------------------------------------------------------*
* <2.1-用于程序的初始化,在显示选择屏前触发,> *
* INITIAL PROCESS BEFORE THE STANDARD SELECTION SCREEN IS CALLED *
*----------------------------------------------------------------------*
INITIALIZATION.
"初始化处理
PERFORM frm_intial.
*----------------------------------------------------------------------*
* <2.2-选择屏幕事件> *
* EVENTS THAT OCCUR WHILE THE SELECTION SCREEN IS BING PROCESSED *
*----------------------------------------------------------------------*
* 所有选择屏幕数据传送到程序中之后触发的事件
AT SELECTION-SCREEN.
PERFORM frm_sscr_pai.
*选择屏幕PBO事件,在显示选择屏幕前触发
AT SELECTION-SCREEN OUTPUT.
* 当对SELECT-OPTIONS变量有多值输入时
*AT SELECTION-SCREEN ON END OF S_MATKL.
* 当选择屏幕的BLOCK向程序传递值时触发{如点击执行,点击多选弹出其它窗口)
*AT SELECTION-SCREEN ON BLOCK bl01.
* 按指定字段按F4触发
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM frm_f4_file CHANGING p_file.
* 按指定字段按F1触发
*AT SELECTION-SCREEN ON HELP-REQUEST FOR S_MATKL.
* 当选择屏幕的RADIOBUTTON GROUP向程序传递值时触发
*AT SELECTION-SCREEN ON RADIOBUTTON GROUP RG1.
* 触发了 FUNCTIONS BACK, EXIT, OR CANCEL
AT SELECTION-SCREEN ON EXIT-COMMAND.
*----------------------------------------------------------------------*
* <2.3-在选择屏幕被处理后触发的事件,程序默认的开始事件> *
* EVENT OCCURS AFTER THE SELECTION SCREEN HAS BEEN PROCESSED *
*----------------------------------------------------------------------*
START-OF-SELECTION.
"权限检查
PERFORM frm_authority_check.
"输入数据合法性检查
PERFORM frm_validate_check.
"获取数据
PERFORM frm_get_data.
"处理数据
PERFORM frm_process_data.
"调用屏幕
PERFORM frm_call_screen.
*----------------------------------------------------------------------*
* <2.4-最后被触发的事件> *
* THE LAST OF THE EVENTS CALLED BY THE RUNTIME ENVIRONMENT TO OCCUR *
*----------------------------------------------------------------------*
END-OF-SELECTION.
"展示数据
PERFORM frm_show_data.
"保存数据
PERFORM frm_save_data.
"清空所有全局变量
PERFORM frm_clear_global_data.
*&---------------------------------------------------------------------*
*& 包含 ZMMR005_DEFINE
*&---------------------------------------------------------------------*
*--------------------------------------------------------------------*
*& Tables Declaration
*--------------------------------------------------------------------*
TABLES: sscrfields.
*--------------------------------------------------------------------*
*& Constants Declaration
*--------------------------------------------------------------------*
CONSTANTS: gc_light_red TYPE c VALUE '1', " For ALV
gc_light_yellow TYPE c VALUE '2',
gc_light_green TYPE c VALUE '3'.
CONSTANTS: gc_columns TYPE i VALUE 42. " Excel 上载的列数
TYPES: BEGIN OF gty_biz_data,
* znum TYPE string, "供应商
partner TYPE string, "
name_org1 TYPE string, "
bu_sort1 TYPE string, "
ktokd TYPE string, "
prctr TYPE string, "
ltext TYPE string, "
khinr TYPE string, "
datab TYPE string, "
datbi TYPE string, "
verak TYPE string, "
name_org2 TYPE string, "
zparvw1 TYPE string, "
zktonr1 TYPE string, "
street TYPE string, "
langu TYPE string, "
land1 TYPE string, "
regio TYPE string, "
ort01 TYPE string, "
zcsdi TYPE string, "
bzirk TYPE string, "
found_dat TYPE string, "
liquid_dat TYPE string, "
zmj TYPE string, "
zpplb TYPE string, "
bpkind TYPE string, "
zqdbs TYPE string, "
zdpdj TYPE string, "
zdpwzlx TYPE string, "
zsqlx TYPE string, "
zqdlx TYPE string, "
zdpxxlx TYPE string, "
zyzlx TYPE string, "
taxnumxl TYPE string, "
zjjms TYPE string, "
zdlhs TYPE string, "
taxkd TYPE string, "
znsdjsj TYPE string, "
zparvw2 TYPE string, "
zktonr2 TYPE string, "
zhebh TYPE string, "
akont TYPE string, "
kalks TYPE string. "
TYPES: END OF gty_biz_data.
TYPES: BEGIN OF gty_excel. "
INCLUDE TYPE gty_biz_data.
TYPES: END OF gty_excel.
TYPES: BEGIN OF gty_out. "
INCLUDE TYPE gty_biz_data.
TYPES:
doc_no TYPE char10, " 放在第一个字段,后面会用 at end of 语法
light TYPE c,
ztype1 TYPE c,
aufnr TYPE coas-aufnr,
ztype2 TYPE c,
ztype3 TYPE c,
message TYPE bapi_msg.
TYPES: END OF gty_out.
DATA: gs_layout TYPE lvc_s_layo,
gt_fieldcat TYPE lvc_t_fcat,
gt_out TYPE TABLE OF gty_out,
gt_event TYPE slis_t_event,
go_alv_grid TYPE REF TO cl_gui_alv_grid.
*&---------------------------------------------------------------------*
*& 包含 ZMMR005_SEL
*&---------------------------------------------------------------------*
*--------------------------------------------------------------------*
*& Selection Screen
*--------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-001.
PARAMETERS: p_file TYPE rlgrap-filename MODIF ID upd.
SELECTION-SCREEN PUSHBUTTON /1(20) TEXT-002 USER-COMMAND download MODIF ID upd.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE TEXT-003.
*selection-screen comment /5(79) g_line1 .
SELECTION-SCREEN COMMENT /1(79) g_line2 .
SELECTION-SCREEN COMMENT /1(79) g_line3 .
SELECTION-SCREEN COMMENT /1(79) g_line6 .
SELECTION-SCREEN COMMENT /1(79) g_line7 .
SELECTION-SCREEN COMMENT /1(79) g_line8 .
SELECTION-SCREEN COMMENT /1(79) g_line9 .
SELECTION-SCREEN COMMENT /1(79) g_line10.
SELECTION-SCREEN COMMENT /1(79) g_line11.
SELECTION-SCREEN END OF BLOCK b3.
*&---------------------------------------------------------------------*
*& 包含 ZMMR005_F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form frm_authority_check
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_authority_check .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_validate_check
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_validate_check .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_get_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_get_data .
IF p_file IS INITIAL.
MESSAGE '文件路径不能为空!'(010) TYPE 'S' DISPLAY LIKE 'E'. " text-s02: 文件路径不能为空!
RETURN.
ENDIF.
PERFORM frm_data_upload.
* PERFORM frm_data_display.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_process_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_process_data .
DATA:ls_input TYPE zmt_fi002_erp_req,
lv_msgid TYPE sxmsmguid,
ls_output TYPE zmt_fi002_erp_rsp,
es_message TYPE zcms0001.
LOOP AT gt_out ASSIGNING FIELD-SYMBOL(<lfs_output>).
MOVE-CORRESPONDING <lfs_output> TO ls_input-mt_fi002_erp_req-header.
ls_input-mt_fi002_erp_req-zsystem = 'PL'.
CALL FUNCTION 'ZFM_FI002_CUSTOMER'
EXPORTING
is_input = ls_input
iv_msgid = lv_msgid
IMPORTING
es_output = ls_output
es_message = es_message.
READ TABLE ls_output-mt_fi002_erp_rsp-line_of_ret_msg INTO DATA(ls_msg) INDEX 1.
IF sy-subrc = 0.
<lfs_output>-ztype1 = ls_msg-ztype1.
<lfs_output>-aufnr = ls_msg-aufnr.
<lfs_output>-ztype2 = ls_msg-ztype2.
<lfs_output>-ztype3 = ls_msg-ztype3.
<lfs_output>-message = ls_msg-message.
ENDIF.
IF es_message-msgty = 'S'.
<lfs_output>-light = gc_light_green.
ELSE.
<lfs_output>-light = gc_light_red.
ENDIF.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_call_screen
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_call_screen .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_show_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_show_data .
DATA: lv_title TYPE lvc_title.
PERFORM frm_alv_fieldcat_build CHANGING gt_fieldcat.
PERFORM frm_alv_layout_build.
PERFORM frm_alv_event_build.
PERFORM frm_alv_grid_title CHANGING lv_title.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
i_callback_program = sy-repid
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = 'FRM_ALV_USER_COMMAND'
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
i_grid_title = lv_title
* I_GRID_SETTINGS =
is_layout_lvc = gs_layout
it_fieldcat_lvc = gt_fieldcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS_LVC =
* IT_SORT_LVC =
* IT_FILTER_LVC =
* IT_HYPERLINK =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT_LVC =
* IS_REPREP_ID_LVC =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO_LVC =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = gt_out
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_save_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_save_data .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_clear_global_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_clear_global_data .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_intial
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_intial .
g_line2 = '【程序目的】'(004).
g_line3 = ' 提供客户Excel批量导入功能'(005).
g_line6 = '【注意事项】'(006).
g_line7 = ' a) 请不要在运行程序的同时修改数据包文件,否则会造成数据读取错误'(007).
g_line8 = ' b) 请确保对文件中的BP有操作权限'(008).
g_line9 = ' c) 模板下载可以改变文件路径或者文件名称,但是不可以改变文件名称的后缀'(009).
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_sscr_pai
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_sscr_pai .
IF sscrfields-ucomm EQ 'DOWNLOAD'.
PERFORM frm_download_template.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_f4_file
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& <-- P_FILE
*&---------------------------------------------------------------------*
FORM frm_f4_file CHANGING pv_file.
DATA: lt_file TYPE filetable,
ls_file LIKE LINE OF lt_file,
lv_rc TYPE i,
lv_user_action TYPE i,
lv_file_filter TYPE string.
CONCATENATE 'Excel (*.xls;*.xlsx)|*.xls;*.xlsx'
'|'
'All Files (*.*)|*.*'
INTO lv_file_filter.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
* window_title =
* default_extension =
* default_filename =
file_filter = lv_file_filter
* with_encoding =
* initial_directory =
* multiselection =
CHANGING
file_table = lt_file
rc = lv_rc
user_action = lv_user_action
* file_encoding =
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE 'File Open failed' TYPE 'E'. " File Open failed
ENDIF.
IF lv_user_action EQ cl_gui_frontend_services=>action_cancel.
MESSAGE 'User Canceled Action' TYPE 'S'. " User Canceled Action
RETURN.
ENDIF.
READ TABLE lt_file INTO ls_file INDEX 1.
IF sy-subrc = 0.
pv_file = ls_file-filename.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_download_template
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_download_template .
DATA: ls_key TYPE wwwdatatab,
lv_file_path TYPE rlgrap-filename,
lv_rc TYPE sy-subrc,
lv_cancel TYPE flag.
PERFORM frm_f4_file_save CHANGING lv_cancel lv_file_path.
SELECT SINGLE
relid,
objid
FROM wwwdata
INTO CORRESPONDING FIELDS OF @ls_key
WHERE srtf2 = 0
AND objid = 'ZMMR005' "导入模板时输入的对象名称
AND relid = 'MI'.
IF lv_cancel EQ 'X' .
MESSAGE '用户取消了操作!'(011) TYPE 'S'. " text-s01: 用户取消了操作
RETURN.
ENDIF.
IF lv_file_path IS INITIAL.
MESSAGE '文件路径不能为空!'(012) TYPE 'S'. " text-s02: 文件路径不能为空!
RETURN.
ENDIF.
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
EXPORTING
key = ls_key
destination = lv_file_path
IMPORTING
rc = lv_rc
EXCEPTIONS
error_message = 1. " 捕捉异常 202003301009 20200721
* CHANGING
* TEMP =
.
IF lv_rc <> 0 OR sy-subrc <> 0..
MESSAGE '模板下载失败'(013) TYPE 'S' DISPLAY LIKE 'E'. " text-e02: 模板下载失败
ENDIF.
ENDFORM. "download_template
*---------------------------------------------------------------------*
* Description: the purpose of this subroutine
*---------------------------------------------------------------------*
FORM frm_f4_file_save CHANGING ch_cancel TYPE flag
ch_file_path TYPE rlgrap-filename.
DATA: lv_file_name TYPE string,
lv_path TYPE string,
lv_fullpath TYPE string,
lv_file_filter TYPE string,
lv_user_action TYPE i,
lv_default_file_name TYPE string.
lv_default_file_name = '供应商导入模板.xlsx'.
CONCATENATE 'Excel (*.xls;*.xlsx)|*.xls;*.xlsx'
'|'
'All Files (*.*)|*.*'
INTO lv_file_filter.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
* window_title =
* default_extension =
default_file_name = lv_default_file_name
* with_encoding =
file_filter = lv_file_filter
* initial_directory =
* prompt_on_overwrite = 'X'
CHANGING
filename = lv_file_name
path = lv_path
fullpath = lv_fullpath
user_action = lv_user_action
EXCEPTIONS "ADD BY BGY_LIUJ 20190424
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
invalid_default_file_name = 4
OTHERS = 5.
IF sy-subrc <> 0.
ELSE.
ENDIF.
IF lv_user_action = cl_gui_frontend_services=>action_cancel.
ch_cancel = 'X'.
ELSE.
ch_file_path = lv_fullpath.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_data_upload
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_data_upload .
DATA: lt_data TYPE STANDARD TABLE OF alsmex_tabline,
ls_data TYPE alsmex_tabline.
DATA: ls_excel TYPE gty_excel,
ls_output TYPE gty_out.
DATA: lv_row_id TYPE i.
FIELD-SYMBOLS: <lfs_value> TYPE any.
**提示处理
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = '数据处理中,请等待...'(014).
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_file
i_begin_col = 1
i_begin_row = 2
i_end_col = gc_columns
i_end_row = 9999
TABLES
intern = lt_data
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT lt_data INTO ls_data.
ASSIGN COMPONENT ls_data-col OF STRUCTURE ls_excel TO <lfs_value>.
IF sy-subrc = 0.
<lfs_value> = ls_data-value.
ENDIF.
AT END OF row.
lv_row_id = lv_row_id + 1.
MOVE-CORRESPONDING ls_excel TO ls_output.
ls_output-doc_no = lv_row_id.
APPEND ls_output TO gt_out.
CLEAR: ls_excel,ls_output.
ENDAT.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_alv_fieldcat_build
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& <-- GT_FIELDCAT
*&---------------------------------------------------------------------*
FORM frm_alv_fieldcat_build CHANGING ct_fieldcat TYPE lvc_t_fcat.
CLEAR ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'DOC_NO ' '编号'(015) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'MESSAGE ' '消息文本'(016) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'LIGHT ' '消息灯'(017) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'PARTNER ' '供应商编码'(018) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZTYPE3 ' '供应商创建状态'(019) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'PRCTR ' '利润中心编码'(020) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZTYPE1 ' '利润中心创建状态'(021) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'AUFNR ' '内部订单号'(022) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZTYPE2 ' '内部订单创建状态'(023) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'NAME_ORG1 ' '门店编码'(024) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'BU_SORT1 ' '门店简称'(025) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'KTOKD ' '账户组'(026) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'LTEXT ' '利润中心描述'(027) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'KHINR ' '利润中心组'(028) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'DATAB ' '开始生效日期'(029) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'DATBI ' '有效期截止日期'(030) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'VERAK ' '利润中心负责人'(031) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'NAME_ORG2 ' '法人全称'(032) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZPARVW1 ' '合作伙伴功能'(033) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZKTONR1 ' '所属公司'(034) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'STREET ' '地址'(035) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'LANGU ' '语言'(036) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'LAND1 ' '国家'(037) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'REGIO ' '省份'(038) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ORT01 ' '城市'(039) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZCSDI ' '城市等级'(040) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'BZIRK ' '销售地区(预留)'(041) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'FOUND_DAT ' '成立日期'(042) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'LIQUID_DAT ' '清算日期'(043) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZMJ ' '面积M2'(044) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZPPLB ' '品牌类别'(045) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'BPKIND ' '合作伙伴类型'(046) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZQDBS ' '渠道标识'(047) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZDPDJ ' '店铺等级'(048) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZDPWZLX ' '店铺位置类型'(049) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZSQLX ' '商圈类型'(050) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZQDLX ' '店铺渠道类型'(051) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZDPXXLX ' '店铺形象类型'(052) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZYZLX ' '业主类型'(053) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'TAXNUMXL ' '税号'(054) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZJJMS ' '加价模式'(055) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZDLHS ' '是否独立核算'(056) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'TAXKD ' '税分类'(057) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZNSDJSJ ' '一般纳税人登记时间'(058) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZPARVW2 ' '合作伙伴功能'(059) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZKTONR2 ' '合作伙伴编码'(060) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'ZHEBH ' '合同编号'(061) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'AKONT ' '统驭科目'(062) CHANGING ct_fieldcat.
PERFORM frm_alv_fieldcat_fill USING 'KALKS ' '定价过程'(063) CHANGING ct_fieldcat.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_alv_layout_build
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_alv_layout_build .
gs_layout-zebra = abap_true.
gs_layout-cwidth_opt = abap_true.
gs_layout-smalltitle = abap_true.
* gs_layout-sel_mode = ''.
gs_layout-excp_fname = 'LIGHT'.
* gs_layout-stylefname = ''.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_alv_event_build
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_alv_event_build .
DATA: ls_event LIKE LINE OF gt_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
* EXPORTING
* I_LIST_TYPE = 0
IMPORTING
et_events = gt_event
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT gt_event INTO ls_event.
IF ls_event-name EQ slis_ev_caller_exit_at_start.
ls_event-form = 'FRM_ALV_CALLER_EXIT'.
ENDIF.
MODIFY gt_event FROM ls_event.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form alv_caller_exit
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_alv_caller_exit USING is_caller_exit TYPE slis_data_caller_exit.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
* EXPORTING
* IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
* ET_EXCLUDING =
* E_REPID =
* E_CALLBACK_PROGRAM =
* E_CALLBACK_ROUTINE =
e_grid = go_alv_grid
* ET_FIELDCAT_LVC =
* ER_TRACE =
* E_FLG_NO_HTML =
* ES_LAYOUT_KKBLO =
* ES_SEL_HIDE =
* ET_EVENT_EXIT =
* ER_FORM_TOL =
* ER_FORM_EOL =
.
ENDFORM. "alv_caller_exit
*&---------------------------------------------------------------------*
*& Form frm_alv_grid_title
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& <-- LV_TITLE
*&---------------------------------------------------------------------*
FORM frm_alv_grid_title CHANGING ch_alv_grid_title TYPE lvc_title.
DATA: lv_lines TYPE i,
lv_lines_string TYPE string.
IF gt_out IS NOT INITIAL.
lv_lines = lines( gt_out ).
ENDIF.
lv_lines_string = lv_lines.
ch_alv_grid_title = '条目数:'(064) && lv_lines_string.
CONDENSE ch_alv_grid_title.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_alv_fieldcat_fill
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> P_
*& --> P_
*& --> P_
*& <-- CT_FIELDCAT
*&---------------------------------------------------------------------*
FORM frm_alv_fieldcat_fill USING
fieldname TYPE lvc_s_fcat-fieldname
reptext TYPE lvc_s_fcat-reptext
CHANGING ct_fieldcat TYPE lvc_t_fcat.
DATA: ls_fieldcat TYPE lvc_s_fcat.
ls_fieldcat-fieldname = to_upper( fieldname ).
ls_fieldcat-reptext = reptext.
APPEND ls_fieldcat TO ct_fieldcat.
ENDFORM.