原因:顶部按钮最多只能有5个,大于5个按钮之后,可选择在屏幕内部增加按钮,方法如下
1、在 ZFICOR058_S 里,如下代码:
SELECTION-SCREEN: BEGIN OF BLOCK block4 WITH FRAME TITLE TEXT-004,
PUSHBUTTON 2(25) b_1 USER-COMMAND cli1,
PUSHBUTTON 52(25) b_2 USER-COMMAND cli2 VISIBLE LENGTH 30,
END OF BLOCK block4.
2、在 AT SELECTION-SCREEN OUTPUT.
PERFORM frm_modify_screen. 中,命名描述:
MOVE '成本中心对应清单_模板' TO b_1. "给but1按钮赋值描述
MOVE '公司级项目清单_模板' TO b_2. "给but2按钮赋值描述
完成!下边针对,按钮功能是下载模板的解决方法
功能目的:下载模板
1、在 AT SELECTION-SCREEN.
PERFORM frm_screen. 中,写如下代码:
FORM frm_screen .
DATA:lv_viewname TYPE dd02v-tabname,
lv_objid TYPE c LENGTH 40,
lv_file_name TYPE string.
CASE sy-ucomm.
WHEN 'CLI1'.
lv_objid = 'ZTFICO050'.
lv_file_name = '成本中心对应清单_导入模板.xlsx'.
PERFORM frm_download USING p_path1 lv_objid lv_file_name.
WHEN 'CLI2'.
lv_objid = 'ZTFICO053'.
lv_file_name = '公司级项目清单_导入模板.xlsx'.
PERFORM frm_download USING p_path1 lv_objid lv_file_name..
ENDCASE.
ENDIF.
endform.
FORM frm_download USING p_path pv_objid pv_file_name.
DATA: lv_name LIKE wwwdatatab,
lv_rc LIKE sy-subrc,
lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string.
CLEAR:lv_full_path,
lv_file_name,
lv_file_path.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
window_title = '保存模板文件'
default_extension = ',Excel Files,*.xls,All Files,*.*.'
default_file_name = pv_file_name
file_filter = '*.xlsx|Excel2003(*.xls)|*.xls|Excel2007(*.xlsx)|'
prompt_on_overwrite = 'X'
CHANGING
filename = lv_file_name
path = lv_file_path
fullpath = lv_full_path
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CHECK lv_full_path IS NOT INITIAL.
p_path = lv_full_path.
lv_name-relid = 'MI'.
lv_name-objid = pv_objid. "SMW0上传模板的名称
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
EXPORTING
key = lv_name
destination = p_path
IMPORTING
rc = lv_rc.
IF lv_rc <> 0.
MESSAGE e001(00) WITH lv_name-objid.
LEAVE LIST-PROCESSING.
ENDIF.
ENDFORM.