2012-06-12 69 views
0

我试图向我的内部表中添加一条新记录,并且此代码给了我一个错误,但我的行为与我的SAP书中完全一样。我究竟做错了什么?在ABAP的内部表中添加一条新记录

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的使用。我会很感激一个有用的页面的建议。

+0

这里的SAP库中的页解释LOOP AT:http://help.sap.com/saphelp_nw70/helpdata/en/fc/eb381a358411d1829f0000e829fbfe/frameset.htm –

+1

另外,请不要使用非在您的代码中使用英文单词bilgileri和kaydi会让您的代码难以维护,以便某一天有人维护您的代码。 – tomdemuyt

回答

2

在您的代码示例,您首先定义PERSONEL_BILGILERITYPE,然后PERSONEL_BILGI_TABLO_TIPI作为内部表的PERSONEL_BILGILERITYPE

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

然后:

  • PERSONEL_BILGI_KAYDI定义PERSONEL_BILGILERI类型。这是一个你用作工作区的结构(这很好)。
  • PERSONEL_BILGI_TABLOSU定义为PERSONEL_BILGI_TABLO_TIPI类型。所以PERSONEL_BILGI_TABLOSU是你的内部表。

当您添加您的工作区域时,您必须附加到内部表格,而不是数据类型。尝试,而不是你喜欢的类型PERSONEL_BILGIPERSONEL_BILGI_TABLOSU

APPEND personel_bilgi_kaydi TO personel_bilgileri_tablosu. 
1

您需要追加的WA(工作区,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获得更多的信息。

希望它有帮助。

科莱凝胶。

塔拉

相关问题