简单来说,form你可以理解为一个子函数,perform是对这个子函数的调用,然后using和changing相当于参数,using是光使用不变化的参数,changing是使用的同时值会根据函数的具体实现变化的参数。
FORM <subform> [USING <f1> <f2>...] [CHANGING <fr1> <fr2>...] PERFORM <subform>[USING <f1> <f2>...] [CHANGING <fr1> <fr2>...] USING 之后跟随着不会发生变化的子程序参数,CHANGING后面的参数按引用传递,值会随着子程序内的变化而变化。 [FOR EXAMPLE] DATA: i_num1TYPEIVALUE10, i_...
如果TABLES与USING、CHANGING一起使用时,则一定要按照TABLES、USING、CHANGING顺序声明 值传递中的VALUE关键字只是在FORM定义时出现,在调用时PERFORM语句中无需出现,也就是说,调用时值传递和引用传递不存在语法格式差别 DATA:iTYPEiVALUE100. WRITE: /'frm_ref==='. PERFORMfrm_refUSINGi. WRITE: /i."200 WRITE: ...
USING和CHANGING(以及不常用的TABLES选项)是子程序与主程序的参数接口部分,是子程序的具体代码,主程序就是通过调用子程序名subr来执行的。 在主程序中调用子程序的语法如下 PERFORM subr [USING ... Pi ... ]. [CHANGING ... Pn ...]. REPORTz_subroutine_defination_call.DATA:int1TYPEiVALUE1,int2TYPEi...
perform利用using/changing定义参数,位置参数,顺序要保持一致 FROM subr USING p1 TYPE type VALUE(p2) TYPE type ... CHANGING p3 TYPE type VALUE(p4) TYPE type 1. 2. 3. 4. 5. 传参 使用using和changing语句传参, 3种方法 Call by Value, 传入参数即实参与传出参数即形参有不同的物理内存, 使用us...
PERFORM form(prog). Extras: 1. ... TABLES itab1 itab2 ... 2. ... USING u1 u2 u3 ... 3. ... CHANGING c1 c2 c3 ... 4. ... IF FOUND This variant is not allowed in an ABAP Objects context.See PERFORM form(prog) not allowed. Effect Calls the subroutine form ...
perform利用using/changing定义参数,位置参数,顺序要保持一致 FROMsubrUSINGp1TYPEtype VALUE(p2)TYPEtype ...CHANGINGp3TYPEtype VALUE(p4)TYPEtype 传参 使用using和changing语句传参, 3种方法 Call by Value, 传入参数即实参与传出参数即形参有不同的物理内存, 使用using关键字传递参数时与value语句一起搭配使用...
PERFORM form. Additions 1. … USING p1 p2 p3 … 2. … CHANGING p1 p2 p3 … 3. … TABLES itab1 itab2 … Effect Calls the subroutine form specified in the FORM statement. On completion, processing in the main program resumes.
PERFORM bdc_field TABLES BDCDATA USING 'BDC_OKCODE' '=ENTR'. "IF I_KNA1-NAME1 IS NOT INITIAL. PERFORM BDC_FIELD_UDT TABLES BDCDATA USING 'KNA1-NAME1' I_KNA1-NAME1 CHANGING I_UPDTSUBTABLE[]. "ENDIF. "IF I_KNA1-ANRED IS NOT INITIAL. PERFORM bdc_field TABLES BDCDA TA USING 'KN...
PERFORMget_tableUSINGcarridCHANGINGtablearc.IFarc=0PERFORMsort_tableCHANGINGtable.PERFORMdisplay_tableUSINGtable.ENDIF.* Presentation layer 表示层FORMget_carridCHANGINGvalue(carrid)TYPEspfli-carrid.CALL SELECTION-SCREEN100.IFsy-subrc=0.carrid=p_carrid.ENDIF.ENDFORM.FORMdisplay_tableUSINGtableTYPEspfli_...