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

XINBO'S SAP BLOG

你所浪费的今天,是昨天死去的人奢望的明天。你所厌恶的现在,是未来的你回不去的曾经

 
 
 

日志

 
 

field symbol的使用  

2009-05-22 14:44:01|  分类: REPORTING&&OTHER |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Field symbol:用来访问分配给他的变量,任何对于field symbol的操作等同于对其分配变量的操作,field symbol可看作是dereferenced指针,只能对其指向的内容进行操作,即其只有值属性。可以通过给field symbol指定type那么就保证了只有兼容的变量可以分配给他。用语句<fs> IS ASSIGNED用来判断field symbol是否被分配,通过unassign <fs><fs>points nothing。可以通过casting把一个不同类型的变量分配给一个<fs>。通过field symbol来访问这个变量时,这个变量就被认为是field symbol所具有的类型了。举例如下:

REPORT  ZTESTFSCAST.
TYPESBEGIN OF st_date,
         year(
4)  TYPE c,
         month(
2TYPE c,
         day(
2)   TYPE c,
       
END OF st_date.
*FIELD-SYMBOLS <fs> TYPE st_date.
FIELD-SYMBOLS <fs> TYPE ANY.
FIELD-SYMBOLS <fd> TYPE ANY.
*ASSIGN sy-datum TO <fs> CASTING.
ASSIGN sy-datum TO <fs> CASTING TYPE st_date.

*WRITE: <fs>-year,
*       <fs>-month,
*       <fs>-day.
DO.
  
ASSIGN COMPONENT sy-index OF STRUCTURE <fs> TO <fd>.
  
IF sy-subrc <> 0.
    
EXIT.
  
ENDIF.
  
WRITE:/ <fd>.
ENDDO.

不过在使用CASTING TYPE时,就不能静态指定其包含的component了如例。CASTING TYPE的应用实例如下:

REPORT  ZTESTFSCASTTYPE.
PARAMETERS: p_tabam TYPE dd02l-tabname OBLIGATORY.
DATAline(65535TYPE c.
FIELD-SYMBOLS: <fs_line> TYPE ANY,
               <fd> 
TYPE ANY.
ASSIGN line TO <fs_line> CASTING TYPE (p_tabam).
SELECT * FROM (p_tabam) INTO <fs_line>.
  
DO.
    
ASSIGN COMPONENT sy-index OF STRUCTURE <fs_line> TO <fd>.
    
IF sy-subrc <> 0 OR sy-index > 5.
      
WRITE'|'.
      
EXIT.
    
ENDIF.
    
WRITE'|'.
    
WRITE: <fd>.

  
ENDDO.
  
ULINE.
ENDSELECT.

  评论这张
 
阅读(438)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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