我正在尝试向我的内部表添加一条新记录,而且这段代码给了我一个错误,但我的做法与我在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的用法。它做了什么?
答案 0 :(得分:4)
在您的代码示例中,您首先将PERSONEL_BILGILERI
定义为TYPE
,然后将PERSONEL_BILGI_TABLO_TIPI
定义为TYPE
的内部表PERSONEL_BILGILERI
。
到目前为止,还没有声明变量。只有数据类型。
然后:
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 :(得分: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。
塔尔哈