赛跑网

 找回密码
 注册
查看: 2173|回复: 2

赛跑网-指针应用的几个例子

[复制链接]
发表于 2012-8-23 17:21:50 | 显示全部楼层 |阅读模式
FIELD-SYMBOLS定义出来的指针。这类指针的赋值是通过指针指向定义变量/内表的内存地址
*来完成指针的赋值。如 ASSIGN spfli_wa TO <wa>.
*下面几个是标准的例子,大家调试调试,看看效果是否能明白指针的含义
*-----------------例1
DATA spfli_wa TYPE spfli.
FIELD-SYMBOLS: <wa>   TYPE ANY,
               <comp> TYPE ANY.

**把变量spfli_wa的内存地址 赋值给<wa>
ASSIGN spfli_wa TO <wa>.
SELECT SINGLE *
       FROM spfli
       INTO spfli_wa.
WHILE sy-subrc = 0.
  "把结构spfli_wa中的部分组件赋值给<comp>
  ASSIGN COMPONENT sy-index OF STRUCTURE spfli_wa TO <comp>.
  WRITE / <comp>.
ENDWHILE.



*------------------例2
DATA text TYPE c LENGTH 10 VALUE '0123456789'.
FIELD-SYMBOLS <char> TYPE ANY .
DATA off TYPE i.
DO 10 TIMES.
  off = sy-index - 1.
  ASSIGN text+off(1) TO <char>.
  WRITE / <char>.
ENDDO.



*------------------例3
DATA factor TYPE p DECIMALS 0.
DATA pack   TYPE p DECIMALS 0 VALUE '12345678'.
FIELD-SYMBOLS <pack> TYPE p.
DO 8 TIMES.
  ASSIGN pack TO <pack> CASTING DECIMALS sy-index.
  factor = pack / <pack>.
  WRITE / factor.
ENDDO.




*------------------例4
FIELD-SYMBOLS: <fs1> TYPE ANY,
               <fs2> TYPE ANY.

ASSIGN text+3(3) TO <fs1>.

DO 8 TIMES.
  ASSIGN <fs1>(sy-index) TO <fs2>.
  IF <fs2> IS ASSIGNED.
    WRITE / <fs2>.
  ENDIF.
ENDDO.


**--------------------
DATA gt_tab TYPE STANDARD TABLE OF spfli .
FIELD-SYMBOLS: <gt>   TYPE ANY TABLE.
SELECT  *
       FROM spfli
       INTO TABLE gt_tab.
ASSIGN gt_tab TO <gt>.
IF <gt> IS ASSIGNED .
  LOOP AT <gt> INTO spfli_wa.

  ENDLOOP.
ENDIF.

该贴已经同步到 SAPOK_ABAP的微博

最近访客

  • austin
    2022-03-24




上一篇:赛跑网-ALV报表增加页眉
下一篇:赛跑网实战-ABAP隐式增强
本楼点评(0) 收起
发表于 2013-2-19 15:09:48 | 显示全部楼层
努力
本楼点评(0) 收起
发表于 2013-10-31 13:27:03 | 显示全部楼层
我是个凑数的。。。
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-3 14:41 , Processed in 0.195607 second(s), 34 queries .

Powered by 91SAP X3.4

© 2001-2023 91sap Team.

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