引用传递
传递参数时将参数的地址(ADDRESS)传至子程序中,也就是子程序中的参数变量与外部程序的参数变量共享地址内的值。又叫CALL BY ADDRESS,若子程序中的参数变量的值发生了改变,那么,外部程序的实际变量的值也发生改变。
PERFORM <subform> [USING <f1> <f2>] [CHANGING <fr1> <fr2>]
推荐,速度快。占有内存少。
值传递
值传递就是将参数的值复制一份到另一个至内存地址中,所以在子程序中参数变量的值的改变不影响外部程序实际变量的值。
PERFORM <subform> [USING VALUE(f1) VALUE(f2)]
可减少参数重复定义。
值传递参数并返回最终值
传递参数的方式同值传递相同,但在子程序结束执行是会将传入参数变量的最终值回传一份给外部程序变量。
PERFORM <subform> [] [CHANGING VALUE(f1)]
少用。
参考
>
FORM frm_catlg_set
USING p_field p_text
DATA: ls_fieldcat TYPE slis_fieldcat_alv
ls_fieldcat-fieldname = p_field
ls_fieldcat-seltext_l = p_text
IF ls_fieldcat-fieldname = 'MATNR'
ls_fieldcat-ref_tabname = 'MARA'
ls_fieldcat-ref_fieldname = 'MATNR'
ENDIF
APPEND ls_fieldcat TO gd_fieldcat
CLEAR ls_fieldcat
ENDFORM " frm_catlg_set
好吧,你小子一分不给就想要答案。
这是个出力ALV时候编辑fieldcatalog属性的语法,举个例子,A TYPE DATUM, 而DATUM的DATAELEMENT是“系统时间”,如果你不编辑他,直接在ALV显示,就会是默认的值“系统时间”,如果我对它进行编辑, 在编辑fileldcat的时候把“ABAP”赋给它,ALV就会显示“ABAP”
(你是对这子程序一句不懂还是对ALV一点不懂?)
目前我们是这样做的写RFC,然後在BSP页面调用此RFC就可以生成XML了。layout中是:onInitialization中大体是,RFC是自己写的CALL FUNCTION 'ZRFC_TANSFER_MDX_DATA'EXPORTING g_cube_nam = 'ZGMO_C11/ZEXP_APD2' IMPORTING L_HTML_STRING = l_string
以上就是关于abap 值传递 引用传递全部的内容,包括:abap 值传递 引用传递、什么是RFC接口、关于ABAP的一个简单程序调用问题。程序如下。 ls_fieldcat-ref_fieldname 是什么意思在程序里面。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)