同一个程序中调用不同smartforms 方法

需求前景:不同工作中心的工单打印格式不同;

以前是每个事务码对应一个samrtforms 格式;

计划部每次打印时,需要区分不同的工作中心用不同的事务码打印;特别是一个计划员管理多个工作中心时,会面临区分不同中心用哪个事务打印,造成一定的混乱;为此提出系统实现用一个事务码打印,系统自动判别不同的工作中心打印不同格式;

方法1:可以在一个smartforms 中设计不同的格式;可惜本人很懒,不想重新画格式,多的让人头痛

方法2:在一个事务中调用不同的samrtforms格式;以下是代码

  DATA: ctrl_param TYPE ssfctrlop,
       out_option TYPE ssfcompop. 

out_option-tddest = 'LP01'.        "指定默认打印机名,一般为四位字符
 out_option-tdnoprev = 'X'.        "隐藏报表预览功能,默认为空
 out_option-tdimmed = 'X'.                "是否勾选快速打印项
* out_option-tdarmod = 1.                "确认本地设置是否有效,必选项
**不显示对话框直接预览
ctrl_param-preview = 'X'.
ctrl_param-no_Dialog = 'X'.
ctrl_param-no_open = space.     “第一次打印设置”
ctrl_param-no_close = 'X' .       “第一打印设置”

IF i_tab_detail[] IS NOT INITIAL.
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING

      formname = 'ZPP_FRM_084'
    IMPORTING
      fm_name  = l_fname  .
*   EXCEPTIONS
*     no_form            = 1
*    no_function_module = 2
*     OTHERS             = 3.


    CALL FUNCTION l_fname
    EXPORTING
    control_parameters = ctrl_param
    output_options     = out_option
    user_settings      = space


      c_company      = StrCompany
      c_factory      = StrFactory
      d_product      = p_gstrp
      c_username     = StrUserName

    TABLES
      zpp_tab_017 = i_tab_detail
      cs_mstj =    ics_mstj
      cs_jc   =  ics_jc
      cs_fz   = ics_fz
      cs_dltj   = ics_dltj
      cs_kz   = ics_kz
      cs_zs   = ics_zs
      EXCEPTIONS
       FORMATTING_ERROR           = 1
       INTERNAL_ERROR             = 2
       SEND_ERROR                 = 3
       USER_CANCELED              = 4
       OTHERS                     = 5.
endif.


if  i_tab_017[] IS NOT INITIAL.
  ctrl_param-no_open = 'X' .   “最后一次打印设置”
  ctrl_param-no_close = space.  “最后一次打印设置”

    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      formname = 'ZPP_FRM_017'
    IMPORTING
      fm_name  = l_fname  .


    CALL FUNCTION l_fname
    EXPORTING
    control_parameters = ctrl_param
    output_options     = out_option
    user_settings      = space
      c_company      = StrCompany
      c_factory      = StrFactory
      d_product      = p_gstrp
      c_username     = StrUserName

    TABLES
      zpp_tab_017 = i_tab_017
    EXCEPTIONS
     FORMATTING_ERROR           = 1
     INTERNAL_ERROR             = 2
     SEND_ERROR                 = 3
     USER_CANCELED              = 4
     OTHERS                     = 5.
endif.



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值