【ABAP】smartforms的调用

如何调用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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值