sumbit使用

 第一种方法:call tcode
被调用程序,要写下下面一段:
*-----------------------------------------------------
* INITIALIZATION
*-----------------------------------------------------
initialization.
  if s_vbeln is initial.
    import r_vbeln to s_vbeln from memory id 'r_vbeln'.
  endif.
调用程序写为:
   export r_vbeln to memory id 'r_vbeln'.
   call transaction 'YFMEDI_WY' and skip first screen .
第二种方法:call 程序名
submit y1_10_03_005 with p_tdh eq g_yfmconsign_wa-ladingbillno
                        and return.
p_tdh:  y1_10_03_005的查询参数,y1_10_03_005的必须条件with里必须有
以上两种调用后都是出现被调用程序的界面
第三种方法:直接调用被调用程序里的内表(alv不可用)
  SUBMIT y1_12_10_001 WITH s_vbelv IN s_vbeln
                      WITH s_vkorg IN s_vkorg
                 EXPORTING LIST TO MEMORY
                          AND RETURN.
  IMPORT itab FROM  MEMORY ID 'Y1_12_10_001'.
  FREE MEMORY ID 'Y1_12_10_001'.
被调用程序 y1_12_10_001里必须在itab全部赋值完后加上:
export itab to memory id 'Y1_12_10_001'.

有一种不完美的办法解决alv问题,
被调用程序 y1_12_10_001里做个判断:
*"给其它程序引用内表
  if sy-tcode = 'Y10184'.
    export itab to memory id 'Y1_12_10_001'.
  else.
* 调用ALV
    perform call_alv.
  endif.
  这种方法的弊端是,不能用se38或者se80直接执行程序
第四种方法:调用程序的某一个form   


你可能感兴趣的:(color,background)