SAP实现页面跳转(穿透)

58 篇文章 1 订阅
SAP实现页面跳转
一、刷新页面:
  1. 代码:

    FORM frm_user_command USING r_ucomm LIKE sy-ucomm
                               rs_selfield TYPE slis_selfield.
      DATA gv_str TYPE string.
    *刷新alv
      DATA:lob_grid TYPE REF TO cl_gui_alv_grid.
      CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
        IMPORTING
          e_grid = lob_grid.
      CALL METHOD lob_grid->check_changed_data.
      rs_selfield-refresh = 'X'.
      rs_selfield-col_stable = 'X'.
      rs_selfield-row_stable = 'X'.
      CASE r_ucomm.
        WHEN '&INTO'.
          PERFORM frm_bapi_data."批次特性匯入
          PERFORM frm_bapi_alldata."文件匯入
        WHEN '&IC1'."页面跳转
          IF rs_selfield-fieldname = 'AUFNR'.
            gv_str = rs_selfield-value+0(2).
            IF gv_str = '45' OR gv_str = '48'."採購單
              set PARAMETER ID 'BSA' field 'ZNB'.
             set PARAMETER ID 'BES' field rs_selfield-value.
              call TRANSACTION 'ME23N'.
            ELSEIF gv_str = '55'.
              PERFORM frm_bdcme39 USING rs_selfield-value.
            ELSE."訂單
              PERFORM frm_bdcco03 USING rs_selfield-value.
            ENDIF.
          ELSEIF rs_selfield-fieldname = 'MBLNR'.
            IF rs_selfield-value IS NOT INITIAL.
              PERFORM frm_bdcmbl USING rs_selfield-value.
            ENDIF.
          ENDIF.
      ENDCASE.
      rs_selfield-refresh = 'X'.
    "宽度自适应
      gt_layo-cwidth_opt = 'X'.
    
      CALL METHOD lob_grid->set_frontend_layout
        EXPORTING
          is_layout = gt_layo.
    
      CALL METHOD lob_grid->refresh_table_display " 功能A: 基本显示
        EXCEPTIONS
          finished = 1
          OTHERS   = 2.
      CALL METHOD lob_grid->refresh_table_display.
    ENDFORM.
    
  2. 注意:刷新时,工具栏会再次出现,可以设置gt_layo的参数no_toolar来去掉工具栏

二、页面跳转:
  1. 使用SET PARAMETER和CALL TRANSACTION语句跳转:

    案例一:

    CASE r_ucomm.
        WHEN '&INTO'.
          PERFORM frm_bapi_data."批次特性匯入
          PERFORM frm_bapi_alldata."文件匯入
        WHEN '&IC1'."页面跳转
          IF rs_selfield-fieldname = 'AUFNR'.
            gv_str = rs_selfield-value+0(2).
            IF gv_str = '45' OR gv_str = '48'."採購單
              set PARAMETER ID 'BSA' field 'ZNB'.
             set PARAMETER ID 'BES' field rs_selfield-value.
              call TRANSACTION 'ME23N'.
            ELSEIF gv_str = '55'.
              PERFORM frm_bdcme39 USING rs_selfield-value.
            ELSE."訂單
              PERFORM frm_bdcco03 USING rs_selfield-value.
            ENDIF.
          ELSEIF rs_selfield-fieldname = 'MBLNR'.
            IF rs_selfield-value IS NOT INITIAL.
              PERFORM frm_bdcmbl USING rs_selfield-value.
            ENDIF.
          ENDIF.
      ENDCASE.
    
  2. MIGO时需要通过函数MIGO_DIALOG进行跳转

    CALL FUNCTION 'MIGO_DIALOG'
      EXPORTING
        I_ACTION                  = 'A04'
        I_REFDOC                  = 'R02'
        I_MBLNR                   = '4900000324'
        I_MJAHR                   = '2018'
      EXCEPTIONS
        ILLEGAL_COMBINATION       = 1
        OTHERS                    = 2
              .
    IF sy-subrc <> 0.
    * Implement suitable error handling here
    ENDIF.
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值