请问ABAP中,内表的表有什作用和意?有无表头对程序有什影响
1.内表的表头对于代写来更加便了。
  比如 内部表T_TAB, 它的一条记录为W_TAB,他有两个目,ID和value,在需要内部表加一条记录。假如个内部表有表行的,代如下:
    T_TAB-ID = 1.
    T_TAB-VALUE = 'VALUE1'.
    APPEND T_TAB.
假如个内部表是没有表行的,代如下:
    W_TAB-ID = 1.
    W_TAB-VALUE = 'VALUE1'.
    APPEND W_TAB TO T_TAB.
有其他的一些操作也是行的内标书简单COLLECT T_TAB  /  LOOP AT  T_TAB  / READ  T_TAB等
2.使用行的内部表容易在写程序abap开发顾问是程序员吗出,并降低可性。
由于有表行,所以在程序里面“T_TAB”代表两意思,一是内部表T_TAB,二是内部表的表T_TAB,具体是那个意思要看情况,给读程序造成了障碍;而且程序写程序的候,由于T_TAB可以做2,所以当他手误错写了T_TAB的候,可能不会编译,但实际的,错误不容易被发现;在内部表行初始化、清空有表的内部表加入直接写“CLEAR T_TAB.”这样被清的是T_TAB的表行,而不是内部表,这样话编译,但程序逻辑就不了。所以一般使用“REFRESH T_TAB”或者“CLEAR T_TAB[]”。
*行的内部表,T_TAB[]指的就是去除表行后粹的内部表数据。
的来,建使用准的内部表,即没有表行的内部表,但同也要掌握行的内部表的操作用表头不如自己定义work area或指针的效率高
ABAP表头
ABAP顾问,在接触ABAP的第一天,就会接触内表,同一个选择,内表是好,是不好。
      我以一个深菜的眼光来看,与否取决于开发顾问的思模式。如果你喜,那你在编码候思非常连续都必很清楚的知道你在干什;不喜,喜工作区的,他的思逻辑性一定很问题
      先看看的:
      data: lt_ekpo like table of ekko with header line.
      data: l_tabix type sy-tabix.
      loop at lt_ekpo.
      move sy-tabix to l_tabix.
      .............
      modify lt_ekpo index l_tabix.
      end loop.
      里,loop at 句就把内表抓到表里面理,最后用modify 行更新。我个人更喜欢这种
理方法。
    再来看看不的。
      data: lt_ekko type standard table of ekko,
              ls_ekko like ekko.
    lt_ekko ls_ekko是两个相同字段的构,只不一个是表,一个是工作区。
          loop at lt_ekko.
          move sy-tabix to l_tabix.
          read table lt_ekko index l_tabix to ls_ekko.
          .............
          append ls_ekko to lt_ekko.
          clear ls_ekko.
          endloop.
          里吧lt_ekko中的一行ls_ekko 理,理完以后把append回内表当中。
有表行与无表行在模化中的运用(ABAP
PROGRAM SAPMZTST.
TYPES: BEGIN OF LINE,
        COL1 TYPE I,
        COL2 TYPE I,
      END OF LINE.
DATA: ITAB TYPE LINE OCCURS 10 WITH HEADER LINE,
      JTAB TYPE LINE OCCURS 10.
PERFORM FILL TABLES ITAB.
MOVE ITAB[] TO JTAB.
PERFORM OUT TABLES JTAB.
FORM FILL TABLES F_ITAB LIKE ITAB[].
  DO 3 TIMES.
    F_ITAB-COL1 = SY-INDEX.
      F_ITAB-COL2 = SY-INDEX ** 2.
      APPEND F_ITAB.
  ENDDO.
ENDFORM.
FORM OUT TABLES F_ITAB LIKE JTAB.
  LOOP AT F_ITAB.
      WRITE: / F_ITAB-COL1, F_ITAB-COL2.
  ENDLOOP.
ENDFORM.
SAPMZTST 后,出如 下:
        1          1
        2          4
        3          9
详细WITH HEADER LINE 指明了ITAB行,
先解下表行的作用吧:
内表是按行 访问 。必使用 某个工作区 域作与表 格互相传输 数据的接口 。在先前的
中我都又看见这样一个访问内表的句子: LOOP AT F_ITAB INTO F_LINE. F_LINE就是
这样一个接口。那如果有表行的,你就可以省略F_LINE,直接LOOP AT F_ITAB,因行就
这样一个系帮你建的一个表格工作区域(只要你声明加上WITH HEADER LINE ),那ITAB[]
中的[]是用来做什的?个其是因如果在句中使用内表名称,系将其解释为表格工作区域
的名称,也就是ITAB代表 行、表格工作区域、访问内表的接口。这样应该理解了吧。有表
行的内表在运用个中括号,这样才是我用的内表
重点理解:FORM OUT TABLES F_ITAB LIKE JTAB.
注意,在这种情况下, 将无表 表格传递给有表行的形式表 格,并在子程序中使用了表格工作域 F_ITAB
是因如果传递无表行的内表,在子程序中自动创建作局部数据象的表行,也就是F_ITAB行的,所以LOOP AT F_ITAB.的后面不用指明表格工作区域

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。