技术小贴士

主要分为DB、OS和ERP三大块

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  12 随笔 :: 0 文章 :: 0 评论 :: 0 Trackbacks

一.  什么是内表
       ----------------------------------------------------------------------------------------------------------
       (1) 内表:仅在程序运行时存在的表格
   
       (2) 作用:
             ① 系统可实时增加内表的大小
             ② 可根据程序需要重新组织数据库表格的内容  

       (3) 内表结构:数据类型和数据对象,相当于类与对象的关系

       (4) 标记表格行:内表索引/关键字

       (5) 访问内表:按行访问

二、创建内表
        ----------------------------------------------------------------------------------------------------------
        (1) Type创建:先声明,后使用
             语法:TYPES <t> <type> OCCURS <n>.

        (2) Data创建:使用Work Area
             DATA <f> <type> OCCURS <n> [WITH HEADER LINE].

        (3) Data创建:不使用Work Area(直接宣告)
             语法:DATA: BEGIN OF <f> OCCURS <n>,
                                                  <component declaration>,
                                                  ..............
                                     END OF <f>.   

三、使用内表
        ----------------------------------------------------------------------------------------------------------
        1、增加
              (1) 增加行(可能有重复行)
                   语法:APPEND [<wa> TO|INITIAL LINE TO] <itab>.

              (2) 根据标准关键字附加行(没有重复行)
                   语法:COLLECT [<wa> INTO] <itab>.

              (3) 表外增加
                   语法:APPEND LINES OF <itab1> [FROM <n1>] [TO <n2>] TO <itab2>.

        2、插入
              (1) 在指定行前插入
                   语法:INSERT [<wa> INTO|INITIAL LINE INTO] <itab> [INDEX <idx>].

              (2) 外表插入
                   语法:INSERT LINES OF <itab1> [FROM <n1>] [TO <n2>]
                                        INTO <itab2> [INDEX <idx>].    

        3、修改
              语法:MODIFY <itab> [FROM <wa>] [INDEX <idx>].    

        4、删除
              (1) 在循环中删除行
                   语法:Loop At <Itab> (Into type)
                                       DELETE <itab>.
                               End Loop.

              (2) 用索引删除行
                    语法:DELETE <itab> INDEX <idx>.

        5、查询
              (1) 循环读取
                   语法:LOOP AT <itab> [INTO <wa>] [FROM <n1>] [TO <n2>] [WHERE <condition>].
                                          .....
                               ENDLOOP. 

              (2) 用索引读取单行
                   语法:READ TABLE <itab> [INTO <wa>] INDEX <idx>.

              (3) 读取有关键字的单行
                   语法:READ TABLE <itab> [INTO <wa>] WITH KEY <key> [BINARY SEARCH].

         6、排序 
               语法:SORT <itab> [<order>] [AS TEXT]
                                      [BY <F1> [<order>] [AS TEXT] ... <fn> [<order>] [AS TEXT]]. 

         7、汇总
               (1) 非数值汇总
                    语法:COLLECT [<wa> INTO] <itab>.

               (2) 数值汇总
                    语法:Loop At <Itab> (Into type)
                                       Sum.
                               End Loop.

        8、清除
              (1) REFRESH <itab>.
                   解释:初始化没有表头的内表,清除所有元素
            
              (2) CLEAR <itab>.
                   解释:初始化有表头的内表,清除所有元素

              (3) FREE <itab>.
                   解释:重置内表并直接释放其内存,须在REFRESH或CLEAR后使用


        

posted on 2005-11-21 22:11 行者 阅读(239) 评论(0)  编辑  收藏 所属分类: 42.SAP

只有注册用户登录后才能发表评论。


网站导航: