METHOD set_rangetable.
DATA rt_range TYPE RANGE OF string.
DATA rs_range LIKE LINE OF rt_range.
* data ls_wa like line of IT_table."错误的写法
FIELD-SYMBOLS <filed> TYPE any.
FIELD-SYMBOLS <fs> TYPE any.
rs_range-sign = 'I'.
rs_range-option = 'EQ'.
LOOP AT it_table ASSIGNING <fs>.
ASSIGN COMPONENT 3 OF STRUCTURE <fs> TO <filed>.
rs_range-low = <filed>.
APPEND rs_range TO rt_range.
ENDLOOP.
ert_range[] = rt_range[]."可以这么赋值
ENDMETHOD.
loop at itab into wa. "可以这么写
那么能否 这样呢
data wa2 type mara.
loop at itab into wa2. 前提是你知道传入的itab参数是mara类型,能否这么写? 答案是不能的,系统会报错
给data类型的赋值 如下
CREATE data ITABDATA like <dyn_table>.
FIELD-SYMBOLS <fs> type any TABLE.
ASSIGN ITABDATA->* to <fs>.
<fs> = <dyn_table>.
该方法接收的时候 也是用data类型接收
DATA lv_itabdata TYPE ref to data.
lv_itabdata = WD_COMP_CONTROLLER->trans_to_node(
).
读取data类型里面的值 如下
DATA lv_itabdata TYPE ref to data.
lv_itabdata = WD_COMP_CONTROLLER->trans_to_node(
).
FIELD-SYMBOLS <fs> type any TABLE.
FIELD-SYMBOLS <fs_s> TYPE any .
ASSIGN lv_itabdata->* to <fs>. "值就可以用了 还可以当类型用 见以下几句
当data类型里面的是内表的时候 可以继续用以下方式读 (续上)
方法1
data dy_wa type REF TO data.
CREATE DATA dy_wa LIKE LINE OF <fs>.
ASSIGN dy_wa->* to <fs_s>.
loop at <fs> into <fs_s>.
MOVE-CORRESPONDING <fs_s> to ls_attach_del."方式1
"方式2用assign components
* ls_attach_del-ATTACHID = <fs_s>-ATTACHID ."会报错
append ls_attach_del to lt_attach_del.
endloop.