ABAP--Field Symbol 的Example(来自SAP的样例)
来源:互联网 发布:北京java培训机构排名 编辑:程序博客网 时间:2024/06/13 05:03
Full type specification
REPORT demo_field_symbols_type .
DATA: BEGIN OF line,
col1(1) TYPE c,
col2(1) TYPE c VALUE 'X',
END OF line.
FIELD-SYMBOLS
ASSIGN line TO
MOVE
WRITE:
Forcing structures
REPORT demo_field_symbols_structure .
DATA: wa(10) TYPE c VALUE '0123456789'.
DATA: BEGIN OF line1,
col1(3) TYPE c,
col2(2) TYPE c,
col3(5) TYPE c,
END OF line1.
DATA: BEGIN OF line2,
col1(2) TYPE c,
col2 TYPE sy-datum,
END OF line2.
* obsolete -------------------------------------------------------------
FIELD-SYMBOLS:
* correct --------------------------------------------------------------
FIELD-SYMBOLS
ASSIGN wa TO
FIELD-SYMBOLS
ASSIGN wa TO
* ----------------------------------------------------------------------
WRITE: /
/
SKIP.
WRITE: /
/
Static assign
REPORT demo_field_symbols_stat_assign .
FIELD-SYMBOLS:
DATA: text(20) TYPE c VALUE 'Hello, how are you?',
num TYPE i VALUE 5,
BEGIN OF line1,
col1 TYPE f VALUE '1.1e+10',
col2 TYPE i VALUE '1234',
END OF line1,
line2 LIKE line1.
ASSIGN text TO
ASSIGN num TO
DESCRIBE FIELD
WRITE: /
ASSIGN line1 TO
ASSIGN line2-col2 TO
MOVE
ASSIGN 'LINE2-COL2 =' TO
WRITE: /
Assign with offset
REPORT demo_field_symbols_stat_as_off .
FIELD-SYMBOLS
DATA: BEGIN OF line,
string1(10) VALUE '0123456789',
string2(10) VALUE 'abcdefghij',
END OF line.
WRITE / line-string1+5.
ASSIGN line-string1+5 TO
WRITE /
ASSIGN line-string1+5(*) TO
WRITE /
REPORT demo_field_symbols_stat_as_of2 .
FIELD-SYMBOLS
DATA: BEGIN OF line,
a TYPE c VALUE '1', b TYPE c VALUE '2',
c TYPE c VALUE '3', d TYPE c VALUE '4',
e TYPE c VALUE '5', f TYPE c VALUE '6',
g TYPE c VALUE '7', h TYPE c VALUE '8',
END OF line,
off TYPE i,
len TYPE i VALUE 2.
DO 2 TIMES.
off = sy-index * 3.
ASSIGN line-a+off(len) TO
ENDDO.
DO 8 TIMES.
off = sy-index - 1.
ASSIGN line-a+off(1) TO
WRITE
ENDDO.
Dynamic assign
REPORT demo_field_symbols_dynami_as_2 .
TABLES sbook.
DATA: name1(20) TYPE c VALUE 'SBOOK-FLDATE',
name2(20) TYPE c VALUE 'NAME1'.
FIELD-SYMBOLS
ASSIGN TABLE FIELD (name1) TO
WRITE: / 'SY-SUBRC:', sy-subrc.
ASSIGN TABLE FIELD (name2) TO
WRITE: / 'SY-SUBRC:', sy-subrc.
Assigning field symbols
REPORT demo_field_symbols_dynami_as_3 .
DATA: BEGIN OF s,
a TYPE c VALUE '1', b TYPE c VALUE '2', c TYPE c VALUE '3',
d TYPE c VALUE '4', e TYPE c VALUE '5', f TYPE c VALUE '6',
g TYPE c VALUE '7', h TYPE c VALUE '8',
END OF s.
DATA off TYPE i.
FIELD-SYMBOLS
ASSIGN s-a TO
DO 4 TIMES.
off = sy-index - 1.
ASSIGN
WRITE
ENDDO.
Assigning a structure by component
REPORT demo_field_symbols_assign_comp .
DATA: BEGIN OF line,
col1 TYPE i VALUE '11',
col2 TYPE i VALUE '22',
col3 TYPE i VALUE '33',
END OF line.
DATA comp(5) TYPE c VALUE 'COL3'.
FIELD-SYMBOLS:
ASSIGN line TO
ASSIGN comp TO
DO 3 TIMES.
ASSIGN COMPONENT sy-index OF STRUCTURE
WRITE
ENDDO.
ASSIGN COMPONENT
WRITE /
Casting with field symbol type
REPORT demo_field_symbols_casting.
TYPES: BEGIN OF t_date,
year(4) TYPE n,
month(2) TYPE n,
day(2) TYPE n,
END OF t_date.
FIELD-SYMBOLS
ASSIGN sy-datum TO
WRITE / sy-datum.
SKIP.
WRITE: /
Casting with explicit type
REPORT demo_field_symbols_casting_typ.
TYPES: BEGIN OF t_date,
year(4) TYPE n,
month(2) TYPE n,
day(2) TYPE n,
END OF t_date.
FIELD-SYMBOLS:
ASSIGN sy-datum TO
WRITE / sy-datum.
SKIP.
DO.
ASSIGN COMPONENT sy-index OF STRUCTURE
IF sy-subrc <> 0.
EXIT.
ENDIF.
WRITE /
ENDDO.
Casting with predefined data types
REPORT demo_field_symbols_assign_type .
DATA txt(8) TYPE c VALUE '19980606'.
DATA mytype(1) VALUE 'X'.
FIELD-SYMBOLS
ASSIGN txt TO
WRITE /
SKIP.
* obsolete -------------------------------------------------------------
ASSIGN txt TO
WRITE /
ASSIGN txt TO
WRITE /
SKIP.
* correct --------------------------------------------------------------
ASSIGN txt TO
WRITE /
ASSIGN txt TO
WRITE /
Casting decimla places
REPORT demo_field_symbols_assign_deci .
DATA: pack1 TYPE p DECIMALS 2 VALUE '400',
pack2 TYPE p DECIMALS 2,
pack3 TYPE p DECIMALS 2.
FIELD-SYMBOLS:
WRITE: / 'PACK1', pack1.
SKIP.
* obsolete -------------------------------------------------------------
ASSIGN pack1 TO
WRITE: / '
pack2 =
WRITE: / 'PACK2', pack2.
ASSIGN pack2 TO
WRITE: / '
pack3 =
WRITE: / 'PACK3', pack3.
WRITE: / '
WRITE: / 'PACK2', pack2.
SKIP.
* correct --------------------------------------------------------------
ASSIGN pack1 TO
WRITE: / '
pack2 =
WRITE: / 'PACK2', pack2.
ASSIGN pack2 TO
WRITE: / '
pack3 =
WRITE: / 'PACK3', pack3.
WRITE: / '
WRITE: / 'PACK2', pack2.
Data areas for field symbols
REPORT demo_field_symbols_assign_err .
DATA: text1(10) TYPE c, text2(10) TYPE c, text3(5) TYPE c.
FIELD-SYMBOLS
DO 100 TIMES. "Runtime-Error!
ASSIGN text1+sy-index(1) TO
ENDDO.
Data references
REPORT demo_data_reference.
TYPES: BEGIN OF t_struct,
col1 TYPE i,
col2 TYPE i,
END OF t_struct.
DATA: dref1 TYPE REF TO data,
dref2 TYPE REF TO data.
FIELD-SYMBOLS:
CREATE DATA dref1 TYPE t_struct.
ASSIGN dref1->* TO
dref2 = dref1.
ASSIGN dref2->* TO
WRITE /
GET REFERENCE OF
ASSIGN dref2->* TO
WRITE /
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1653907
- ABAP--Field Symbol 的Example(来自SAP的样例)
- ABAP--Field Symbol 的Example(来自SAP的样例)
- ABAP--Field Symbol 的Example(来自SAP的样例) .
- field symbol的使用
- 【ABAP】Field Symbol使用总结
- 【ABAP】Field Symbol使用总结
- 【ABAP】FIELD SYMBOL和TYPE REF TO的用法和比较
- FIELD SYMBOL动态分配的使用
- What's different with Field symbol and Data reference in SAP-ABAP
- SAP的Abap培训
- SAP-ABAP DESCRIBE FIELD 用法
- ABAP--How to use TEXTEDIT(SAP 的样例摘抄)
- abap casting with field symbol type
- SAP ABAP -----ABAP 有用的日期FUNCTION
- SAP ABAP 的学习资料
- sap abap 指针的使用
- ABAP中FIELD-SYMBOLS的详细用法
- abap 中 FIELD-SYMBOLS的使用方法
- ABAP---How to use controls
- BASIS--LSMW Steps For Data Migration
- Enhancement--User exit documentation from SAP
- Enhancement--How to Find a Screen Exit for T-code
- Enhancement--Finding a project and enhancement
- ABAP--Field Symbol 的Example(来自SAP的样例)
- ABAP--关于Data Reference的使用
- ABAP--如何在join查询中使用动态表名(其实这样是没有必要的)
- 简单的iBatisNet示例
- ABAP--ABAP变量的可见范围
- BW--BW访问接口列表(摘自sap library)
- BW--Create Data Warehousing: Step by Step(摘自SAP Library)
- BASIS-如何删除SAP在用户修改表结构时创建的临时表
- ABAP--一个不错的函数模块的文档生成程序