如何调用smartforms
report z_testt.
type-pools vrm. "使用vrm类型组
data: name type vrm_id,
list type vrm_values,
value like line of list. "定义一个结构 和内表list有一样的结构
"权限检查 送货单根据装送点/送货接受点
data: gv_formname type tdsfname.
data: gv_fmname type rs38l_fnam,
gs_control_param type ssfctrlop,
gs_output_option type ssfcompop,
gs_cresop type ssfcresop.
data:WA_ITEM type ZPP_HEAD.
data:IG_ITEMS like ZPP_ITEMS occurs 0 with header line.
selection-screen begin of block b1 with frame title text-001.
parameters p_porv(20) as listbox visible length 18 default 'R_PREV' modif id lst.
selection-screen end of block b1.
initialization.
perform fill_list_box.
at selection-screen.
WA_ITEM-H_VGBEL = '1'.
wa_item-H_VBELN = '2'.
wa_item-H_NAME1 = '3'.
wa_item-H_STREET = '4'.
wa_item-H_KUNNR = 'FG017'.
wa_item-H_DATE = '20130517'.
wa_item-H_NETWR = '7'.
wa_item-H_WAERK = '8'.
wa_item-H_ZTERM = '9'.
wa_item-H_VTEXT = '10'.
wa_item-H_SPRINT = 'A'.
IG_ITEMS-I_VGBEL = '1'.
IG_ITEMS-I_VBELN = '2'.
IG_ITEMS-I_MATNR = 'm1'.
IG_ITEMS-I_ARKTX = '买一送一'.
IG_ITEMS-I_FKIMG = '5'.
IG_ITEMS-I_WAVWR = '6'.
IG_ITEMS-I_WAERK = 'RMB'.
append IG_ITEMS.
IG_ITEMS-I_VGBEL = '1'.
IG_ITEMS-I_VBELN = '2'.
IG_ITEMS-I_MATNR = 'm2'.
IG_ITEMS-I_ARKTX = '买一送一'.
IG_ITEMS-I_FKIMG = '7'.
IG_ITEMS-I_WAVWR = '8'.
IG_ITEMS-I_WAERK = 'RMB'.
append IG_ITEMS.
"-------------------smartform-----------------
gv_formname = 'Z_TEST'. " smartform 表名
perform frm_set_parameter.
call function 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = gv_formname
IMPORTING
fm_name = gv_fmname
EXCEPTIONS
no_form = 1
no_function_module = 2
others = 3.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
call function gv_fmname
EXPORTING
control_parameters = gs_control_param
output_options = gs_output_option
user_setting = space
WA_ITEM = WA_ITEM
TABLES
IG_ITEMS = IG_ITEMS
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
others = 5.
*&---------------------------------------------------------------------*
*& Form fill_list_box 给下拉框赋值
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form fill_list_box.
clear list.
name = 'P_PORV'.
value-key = 'R_PREV'.
value-text = '打印预览'.
append value to list.
value-key = 'R_PRN'.
value-text = '打印'.
append value to list.
call function 'VRM_SET_VALUES' "调用功能函数 [EXPORTING F1 = a1 .... fn = an]
" EXPORTING 选项允许将 实参数 ai 传递给形式 输入参数 fi。在功 能模块中, 必须将形式 参数声明为 输入参数。
exporting
id = name
values = list.
endform. "fill_list_box
*&---------------------------------------------------------------------*
*& Form frm_set_parameter
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form frm_set_parameter .
clear: gs_output_option, gs_control_param.
if sy-tcode = 'ZSD004A'. " ZSD004A不进行打印次数控制
gs_output_option-tdimmed = 'X'. "开启立即打印
gs_output_option-tddelete = 'X'. "打印完后断开设置连接,清空打印内容缓存
else. " ZSD04或SE38 需要进行打印次数控制
if p_porv = 'R_PREV'. " 打印预览
gs_output_option-tdimmed = 'X'. "开启立即打印
gs_output_option-tddelete = 'X'. "打印完后断开设置连接,清空打印内容缓存
gs_output_option-tdnoprint = 'X'. "不显示“打印”按钮
gs_control_param-no_dialog = 'X'. "不显示选择打印对话框
gs_control_param-preview = 'X'. "打印预览
else. " 打印
gs_output_option-tdimmed = 'X'. "开启立即打印
gs_output_option-tddelete = 'X'. "打印完后断开设置连接,清空打印内容缓存
gs_output_option-tdnoprev = 'X'. "显示“打印”按钮
gs_control_param-preview = ''. "不显示打印预览按钮
endif.
endif.
if gs_cresop-tddest is initial. "判断打印输出设备是否存在
gs_output_option-tddest = 'VS'. "'LP01'. by dutm 2012/2/22
else.
gs_output_option-tddest = gs_cresop-tddest. "当前打印输出设备付予打印控制
endif.
endform. "frm_set_parameter