赛跑网

 找回密码
 注册
查看: 2238|回复: 0

函数/方法中如何使用any/any table/空/data等类型动态传值

[复制链接]
发表于 2013-10-13 20:18:08 | 显示全部楼层 |阅读模式
1.png 代码里不能写data itab type any table 只能用filed-symbols

Anytable = itab  dowp掉 切记 所以一般any table 都被定义成传入参数 而不是传出参数 传出参数用data来代替


建类的时候  可以写个any table fm的时候可以不写 也可以写data


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.



2.png

  loop at itab into wa. "可以这么写
那么能否 这样呢
data wa2 type mara.
loop at itab into wa2. 前提是你知道传入的itab参数是mara类型,能否这么写? 答案是不能的,系统会报错



3.png
给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.



方法2
    FIELD-SYMBOLS <fs_s> TYPE any .
loop at <fs> ASSIGNING <fs_s>.

endloop.







上一篇:使用XML导出到本地EXCEL
下一篇:为什么FBL3N里查询不到明细
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|联系我们|赛跑网 ( 苏ICP备14021163号-4QQfsq

GMT+8, 2026-8-3 16:51 , Processed in 0.192778 second(s), 31 queries .

Powered by 91SAP X3.4

© 2001-2023 91sap Team.

快速回复 返回顶部 返回列表