我正在尝试在我的内部表中添加一条新记录,这段代码给了我一个错误,但我做的与我的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 回答
在您的代码示例中,您首先将
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
:您需要将WA(workarea,personel_bilgi_kaydi)附加到您的表格(personel_bilgi_tablosu) . 您不能将WA附加到已定义的类型 .
所以看起来应该是这样的:
您也可以使用此代码在页面上显示它们 .
您可以使用其他方法在页面上显示表格,例如REUSE_ALV_GRID_DISPLAY . 您可以在scn.sap.com中获得有关该信息的更多信息
希望它有所帮助 .
Kolay gelsin .
塔尔哈