登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

原来为了你

我的人生就是要一次次的超越

 
 
 

日志

 
 
 
 

字段符号<FS>  

2011-01-07 15:37:58|  分类: ABAP基础知识 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

*---指定字段符号的完全类型
DATABEGIN OF line,
         col1
(1TYPE c,
         col2
(1TYPE c VALUE 'X',
       
END OF line.

FIELD-SYMBOLS <fs> LIKE line.

ASSIGN line TO <fs>.
MOVE <fs>-col2 TO <fs>-col1.

WRITE<fs>-col1<fs>-col2.

*---给字段符号强加结构
DATAwa(10TYPE c VALUE '0123456789'.
DATABEGIN OF line1,
         col1
(3TYPE c,
         col2
(2TYPE c,
         col3
(5TYPE c,
      
END OF line1.

DATABEGIN OF line2,
         col1
(2TYPE c,
         col2 
TYPE sy-datum,
      
END OF line2.

* obsolete

FIELD-SYMBOLS<f1> STRUCTURE line1 DEFAULT wa,
               <f2> 
STRUCTURE line2 DEFAULT wa.

* correct

FIELD-SYMBOLS <f3> LIKE line1.
ASSIGN wa TO <f3> CASTING.

FIELD-SYMBOLS <f4> LIKE line2.
ASSIGN wa TO <f4> CASTING.

WRITE/ <f1>-col1<f1>-col2<f1>-col3,
       / <f2>
-col1<f2>-col2.
SKIP.
WRITE/ <f3>-col1<f3>-col2<f3>-col3,
       / <f4>
-col1<f4>-col2.


*---静态assign
FIELD-SYMBOLS<f1> TYPE ANY<f2> TYPE i.

DATAtext(20)  TYPE c VALUE 'Hello, how are you?',
      num       
TYPE i VALUE 5,
      
BEGIN OF line1,
        col1 
TYPE VALUE '1.1e+10',
        col2 
TYPE i VALUE '1234',
      
END OF line1,
      line2 
LIKE line1.

ASSIGN text TO <f1>.
ASSIGN num TO  <f2>.
DESCRIBE FIELD <f1> LENGTH <f2> IN CHARACTER MODE.
WRITE/ <f1>'has length'num.

ASSIGN line1 TO <f1>.
ASSIGN line2-col2 TO <f2>.
MOVE <f1> TO line2.
ASSIGN 'LINE2-COL2 =' TO <f1>.
WRITE/ <f1><f2>.

*---使用偏移量的静态assign
FIELD-SYMBOLS <fs> TYPE ANY.

DATABEGIN OF line,
        string1
(10VALUE '0123456789',
        string2
(10VALUE 'abcdefghij',
      
END OF line.

WRITE line-string1+5.

* Syntax Error in Unicode System

*ASSIGN line-string1+5 TO <fs>.
*WRITE / <fs>.
ASSIGN line-string1+5(*TO <fs>.
WRITE / <fs>.

*---用组件分配结构
DATABEGIN OF line,
        col1 
TYPE i VALUE '11',
        col2 
TYPE i VALUE '22',
        col3 
TYPE i VALUE '33',
      
END OF line.

DATA comp(5TYPE c VALUE 'COL3'.

FIELD-SYMBOLS<f1> TYPE ANY<f2> TYPE ANY<f3> TYPE ANY.

ASSIGN line TO <f1>.
ASSIGN comp TO <f2>.

DO TIMES.
  
ASSIGN COMPONENT sy-index OF STRUCTURE <f1> TO <f3>.
  
WRITE <f3>.
ENDDO.

ASSIGN COMPONENT <f2> OF STRUCTURE <f1> TO <f3>.
WRITE / <f3>.

*---assign casting.
TYPESBEGIN OF t_date,
          year
(4)  TYPE n,
          month
(2TYPE n,
          day
(2)   TYPE n,
       
END OF t_date.

FIELD-SYMBOLS <fs> TYPE t_date.

ASSIGN sy-datum TO <fs> CASTING.

WRITE / sy-datum.
SKIP.
WRITE/ <fs>-year / <fs>-month/ <fs>-day.

*---设置小数位
DATApack1 TYPE DECIMALS VALUE '400',
      pack2 
TYPE DECIMALS 2,
      pack3 
TYPE DECIMALS 2.

FIELD-SYMBOLS<f1> TYPE ANY ,
               <f2> 
TYPE ANY.

WRITE'PACK1'pack1.

SKIP.

ASSIGN pack1 TO <f1> CASTING TYPE DECIMALS 1.
WRITE'<F1> '<f1>.

pack2 
<f1>.
WRITE'PACK2'pack2.

ASSIGN pack2 TO <f2> CASTING TYPE DECIMALS 4.
WRITE'<F2> '<f2>.

pack3 
<f1> + <f2>.
WRITE'PACK3'pack3.

<f2> 
'1234.56789'.
WRITE'<F2> '<f2>.
WRITE'PACK2'pack2.



*---数据引用
TYPESBEGIN OF t_struct,
         col1 
TYPE i,
         col2 
TYPE i,
       
END OF t_struct.

DATAdref1 TYPE REF TO data,
      dref2 
TYPE REF TO data.

FIELD-SYMBOLS<fs1> TYPE t_struct,
               <fs2> 
TYPE i.

CREATE DATA dref1 TYPE t_struct.

ASSIGN dref1->TO <fs1>.

<fs1>
-col1 1.
<fs1>
-col2 2.
dref2 
dref1.

ASSIGN dref2->TO <fs2> CASTING.
WRITE / <fs2>.

GET REFERENCE OF <fs1>-col2 INTO dref2.

ASSIGN dref2->TO <fs2>.
WRITE / <fs2>.

*---检查字段符号是否已分配
FIELD-SYMBOLS <fs> TYPE ANY.

DATA text(10TYPE c VALUE 'Assigned!'.

ASSIGN text TO <fs>.

IF <fs> IS ASSIGNED.
  
WRITE <fs>.
ENDIF.



*从程序中获取数据:功能函数 'ZTEST' 从报表程序ZREPORT001中获取了一个变量D1的值。
*只有程序在调用函数时,该函数才能获取此程序的某个变量的值,因为这时程序在运行中。

DATAd1 TYPE i VALUE 5.
DATAl_import TYPE i.

*---调用函数
CALL FUNCTION 'ZTEST'
  
IMPORTING
    e_01 
l_import.

WRITEl_import.                        "输出结果是5


*---函数Ztest代码如下:
FIELD-SYMBOLS<fs> TYPE i.
DATAl_str(10VALUE '(ZREPORT001)D1'.
ASSIGN (l_strTO <fs>.

e_01 
<fs>.                            "输出参数

  评论这张
 
阅读(590)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018