TYPES ifadesi programda yerel veri TYPE'ları oluşturmak için kullanılır.
DATA ise programda yeni bir veri objesi oluşturmak için kullanılır.
Aşağıda basit bir örnek mevcut.
Bu programda yazi ve sonuc, yerel data Type'ları olarak tanımlanmış. Böylelikle amount ve text gibi yeni data objeleri tanımlarken 'c' veya 'p' yazmak yerine bu yerel ifadeler kullanılır. Bu programı aşağıdaki gibi de yazsak bir şey fark etmeyecekti.
Aşağıda başka bir örnek daha mevcut. Bu örnek biraz daha amaca uygun, tekrar tekrar uzun bir şekilde TYPE yapısı yazmak yerine önceden tanımlanmış yerel TYPE'ı kullanarak DATA objelerine referans veriyor.
Yukarıdaki örnekte name ve mylist yapıları yerel TYPE olarak tanımlanarak programın sonraki parçalarında list1, list2 ve list3; DATA yapılarına tek bir ifade olarak referans gösterilmiş. Daha sonraki adımlarda ise list1, list2 ve list3 DATA yapısına veriler girilmiş ve yazdırılmış.
LIKE ve TYPE 'ın kullanımı
Yukarıdaki örnekteki gibi yerel TYPE tanımlamayıp, aynı yapıyı tekrar tekrar kullanmak isteseydik. Bu durumda ilk DATA yapısını tanımlayıp sonraki yapılarda LIKE ifadesini kullanarap ilk DATA yapısı referans alınabilir. Aşağıdaki örnkte TYPES ifadesi kullanılmadan aynı program derlenmiştir program çıktısı yukardakinin aynısı olacaktır.
DATA ise programda yeni bir veri objesi oluşturmak için kullanılır.
Aşağıda basit bir örnek mevcut.
REPORT demo_types_statement. TYPES yazi(10) TYPE c. TYPES sonuc TYPE p DECIMALS 2. DATA text TYPE yazi. DATA amount TYPE sonuc. text = ' 4 / 3 = '. amount = 4 / 3 . WRITE: text, amount.
Program çıktısı aşağıdaki gibidir.
Bu programda yazi ve sonuc, yerel data Type'ları olarak tanımlanmış. Böylelikle amount ve text gibi yeni data objeleri tanımlarken 'c' veya 'p' yazmak yerine bu yerel ifadeler kullanılır. Bu programı aşağıdaki gibi de yazsak bir şey fark etmeyecekti.
REPORT demo_types_statement.
*
*TYPES yazi(10) TYPE c.
*TYPES sonuc TYPE p DECIMALS 2.
DATA text(10) TYPE c.
DATA amount TYPE p DECIMALS 2.
text = ' 4 / 3 = '.
amount = 4 / 3 .
WRITE: text, amount.
Aşağıda başka bir örnek daha mevcut. Bu örnek biraz daha amaca uygun, tekrar tekrar uzun bir şekilde TYPE yapısı yazmak yerine önceden tanımlanmış yerel TYPE'ı kullanarak DATA objelerine referans veriyor.
REPORT demo_structure. TYPES: BEGIN OF name, title(5) TYPE c, first_name(10) TYPE c, last_name(10) TYPE c, END OF name. TYPES: BEGIN OF mylist, client TYPE name, number TYPE i, END OF mylist. DATA list1 TYPE mylist. DATA list2 TYPE mylist. DATA list3 TYPE mylist. list1-client-title = 'Lord'. list1-client-first_name = 'Howard'. list1-client-last_name = 'Mac Duff'. list1-number = 1. list2-client-title = 'Mr.'. list2-client-first_name = 'Kerem izzet'. list2-client-last_name = 'Atam'. list2-number = 2. list3-client-title = 'Sir'. list3-client-first_name = 'Hasan'. list3-client-last_name = 'Huseyin'. list3-number = 3. WRITE list1-client-title. WRITE list1-client-first_name. WRITE list1-client-last_name. WRITE / 'Number'. WRITE list1-number. skip. WRITE list2-client-title. WRITE list2-client-first_name. WRITE list2-client-last_name. WRITE / 'Number'. WRITE list2-number. skip. WRITE list3-client-title. WRITE list3-client-first_name. WRITE list3-client-last_name. WRITE / 'Number'. WRITE list3-number.
Program çıktısı aşağıdaki gibidir.
Yukarıdaki örnekte name ve mylist yapıları yerel TYPE olarak tanımlanarak programın sonraki parçalarında list1, list2 ve list3; DATA yapılarına tek bir ifade olarak referans gösterilmiş. Daha sonraki adımlarda ise list1, list2 ve list3 DATA yapısına veriler girilmiş ve yazdırılmış.
LIKE ve TYPE 'ın kullanımı
Yukarıdaki örnekteki gibi yerel TYPE tanımlamayıp, aynı yapıyı tekrar tekrar kullanmak isteseydik. Bu durumda ilk DATA yapısını tanımlayıp sonraki yapılarda LIKE ifadesini kullanarap ilk DATA yapısı referans alınabilir. Aşağıdaki örnkte TYPES ifadesi kullanılmadan aynı program derlenmiştir program çıktısı yukardakinin aynısı olacaktır.
REPORT demo_structure. DATA : BEGIN OF name, title(5) TYPE c, first_name(10) TYPE c, last_name(10) TYPE c, END OF name. DATA : BEGIN OF list1, client LIKE name, number TYPE i, END OF list1. DATA list2 LIKE list1. DATA list3 LIKE list1. list1-client-title = 'Lord'. list1-client-first_name = 'Howard'. list1-client-last_name = 'Mac Duff'. list1-number = 1. list2-client-title = 'Mr.'. list2-client-first_name = 'Kerem izzet'. list2-client-last_name = 'Atam'. list2-number = 2. list3-client-title = 'Sir'. list3-client-first_name = 'Hasan'. list3-client-last_name = 'Huseyin'. list3-number = 3. WRITE list1-client-title. WRITE list1-client-first_name. WRITE list1-client-last_name. WRITE / 'Number'. WRITE list1-number. skip. WRITE list2-client-title. WRITE list2-client-first_name. WRITE list2-client-last_name. WRITE / 'Number'. WRITE list2-number. skip. WRITE list3-client-title. WRITE list3-client-first_name. WRITE list3-client-last_name. WRITE / 'Number'. WRITE list3-number.
No comments:
Post a Comment