首页 文章

在ABAP中将新记录添加到内部表中

提问于
浏览
0

我正在尝试在我的内部表中添加一条新记录,这段代码给了我一个错误,但我做的与我的SAP书中完全相同 . 我究竟做错了什么?

TYPES : BEGIN OF personel_bilgileri,
  Ad TYPE c LENGTH 20,
  Soyad TYPE c LENGTH 20,
  Telefon_no Type n LENGTH 12,
  END OF personel_bilgileri.

TYPES personel_bilgi_tablo_tipi TYPE STANDARD TABLE OF
personel_bilgileri WITH NON-UNIQUE KEY ad soyad.

DATA : personel_bilgi_kaydi TYPE personel_bilgileri,
       personel_bilgi_tablosu TYPE personel_bilgi_tablo_tipi.

personel_bilgi_kaydi-ad = 'Murat'.
personel_bilgi_kaydi-soyad = 'Sahin'.
personel_bilgi_kaydi-telefon_no = '5556677'.

APPEND personel_bilgi_kaydi TO personel_bilgileri.

personel_bilgi_kaydi-ad  = 'Ayse'.
personel_bilgi_kaydi-soyad = 'Bil'.
personel_bilgi_kaydi-telefon_no = '5556611'.

APPEND personel_bilgi_kaydi TO personel_bilgileri.

personel_bilgi_kaydi-ad = 'Mehmet'.
personel_bilgi_kaydi-soyad = 'Kalan'.
personel_bilgi_kaydi-telefon_no = '5556622'.

APPEND personel_bilgi_kaydi TO personel_bilgileri.

实际上,我不知道应该使用哪种添加记录方法 . 我的意思是有太多的方法来做这个操作 . 哪种方法是真的?

我收到此错误:

The field Personel_bilgileri is unknown, but there are following fields similar names...

此外,我可以使用LOOP AT执行此操作,但我不了解LOOP AT的用法 . 我将感谢有用页面的建议 .

2 回答

  • 4

    在您的代码示例中,您首先将 PERSONEL_BILGILERI 定义为 TYPE ,然后将 PERSONEL_BILGI_TABLO_TIPI 定义为 PERSONEL_BILGILERI 的内部表 TYPE .

    到目前为止,还没有声明变量 . 只有数据类型 .

    然后:

    • PERSONEL_BILGI_KAYDI 的类型为 PERSONEL_BILGILERI . 这是一个用作工作区的结构(很好) .

    • PERSONEL_BILGI_TABLOSU 的类型为 PERSONEL_BILGI_TABLO_TIPI . 所以 PERSONEL_BILGI_TABLOSU 是你的内部表 .

    附加工作区时,必须附加到内部表,而不是数据类型 . 尝试使用 PERSONEL_BILGI_TABLOSU 而不是您的类型 PERSONEL_BILGI

    APPEND personel_bilgi_kaydi TO personel_bilgileri_tablosu.
    
  • 1

    您需要将WA(workarea,personel_bilgi_kaydi)附加到您的表格(personel_bilgi_tablosu) . 您不能将WA附加到已定义的类型 .

    所以看起来应该是这样的:

    APPEND personel_bilgi_kaydi TO personel_bilgi_tablosu.
    

    您也可以使用此代码在页面上显示它们 .

    LOOP AT personel_bilgi_tablosu into personel_bilgi_kaydi.
    
           write: / 'İSİM: ' ,personel_bilgi_kaydi-ad,
                 'SOYİSİM: ',personel_bilgi_kaydi-soyad,
                  'TEL NO: ', personel_bilgi_kaydi-telefon_no.
    
        ENDLOOP.
    

    您可以使用其他方法在页面上显示表格,例如REUSE_ALV_GRID_DISPLAY . 您可以在scn.sap.com中获得有关该信息的更多信息

    希望它有所帮助 .

    Kolay gelsin .

    塔尔哈

相关问题