Canias ERP Eğitimleri

Canias ERP Troia 15 Sınıf Kavramı & Detaylı Proje

Merhaba, bu yazımda detaylı bir şekilde sınıf kavramına giriş yapacağız.

Aşağıdaki yazımda sınıf kavramından, sınıfın nasıl oluşturulacağından bahsetmiştim.

Şimdi bir proje yaparak nasıl kullanıldığını göstermeye çalışacağım.

Bir önceki dersimizde bir hesap makinesi yapmıştık aşağıdaki linkten inceleyebilirsiniz.

Buradan yola çıkarak bu işlemleri bir sınıf içinde tutup oradan yapacağız.

Transaction İsmi : EDUTEST

Başlangıç Diyalogu : EDUD01D000

Oluşturacağımız Diyalog :  EDUD01D002

Şimdi öncelikle EDUTESTCLAS isimli bir sınıf oluşturalım.

Sonra bu sınıfa ait TOPLA, CIKAR, CARP, BOL Metotlarını da oluşturalım.

Bunun için yapmanız gereken işlemi yukarıda paylaştığım 9. yazıda bulabilirsiniz.

Bir tane örnek göstermiş olayım.

Hepsinin de geri INTEGER bir değer döndüreceğini bildiğimiz için RETURN TYPE INTEGER olarak ayarlıyoruz.

Tamamını oluşturduğumuzda şu olacaktır.

Şimdi yapacağımız işleme odaklanalım.

Bütün işlemler o işle özelleşmiş metotta yapılacak.

Öncelikle tüm sınıf içinde kullanılabilecek global değişkenimizi _VARIABLES metodu içinde tanımlayalım.

OBJECT:

INTEGER S3;

Şimdi diğer metotlarımızı yazalım.

PARAMETERS:
INTEGER S1,
INTEGER S2;

S3=S1+S2;

RETURN S3;
PARAMETERS:
INTEGER S1,
INTEGER S2;

S3=S1-S2;

RETURN S3;
PARAMETERS:
INTEGER S1,
INTEGER S2;

S3=S1*S2;

RETURN S3;
PARAMETERS:
INTEGER S1,
INTEGER S2;

S3=S1/S2;

RETURN S3;

Şimdi burada biraz metotların yapısından bahsedelim.

Metotlar parametre alabilirler. Yani dışarıdan değişkenler bu metoda parametre olarak gönderilip işleme dahil edilebilir.

Metot başında alabileceği parametreler

PARAMETERS : 

söz dizimi ile deklere edilir.

Sonrada Object tanımlar gibi dışarıdan gelmesi muhtemel Object tipine göre parametreler oluşturulur.

PARAMETERS:
INTEGER S1,
INTEGER S2;

Burada önemli olan durumlardan biri sıralamadır. Dışarıdan metodun parametresine yazılan 1. değer metot içinde tanımlanan ilk Parametre değerine atanır. 2. değer 2. Parametre değerine atanır. Bu şekilde sıra ile tüm parametre değerleri girilene kadar devam eder.

O yüzden sıralamaya dikkat etmemiz gerekir. Aksi taktirde tip uyuşmazlıkları çıkabileceği gibi istediğimiz sonuçları doğru bir şekilde alamama gibi durumlarla da karşılaşabiliriz.

Şimdi Diyalog tarafına geçelim ve ilk olarak BEFORE kodlarına Obje tanımlamalarımızı yapalım.

OBJECT:
STRING ISLEM1,
STRING MSSG,
EDUTESTCLAS EDUTESTCLASREC;

Oluşturmuş olduğumuz sınıfı kullanabilmek için Before’da bir nesne örneği oluşturulur.

Troia’da standart bir kullanım olarak sınıf isminin sonuna REC ifadesi eklenir. Zorunlu bir kullanım değildir. İstenilen isimle nesne türetilebilir ama IAS standart olarak bu kullanımı yapmaktadır.

Bizde o yüzden

EDUTESTCLAS sınıfından EDUTESTCLASREC isimli bir nesne türettik.

Artık diyalogun her yerinden bu nesne üzerinden sınıfa ulaşabilir. Metotlarını kullanabiliriz.

OK Click olayına geçelim.

ISLEM1=ISLEM;

IF ISLEM1 == '+' THEN
 SONUC=EDUTESTCLASREC.TOPLA(SAYI1,SAYI2);
ELSE

 IF ISLEM1 == '-' THEN
  SONUC=EDUTESTCLASREC.CIKAR(SAYI1,SAYI2);
 ELSE

  IF ISLEM1 == '*' THEN
   SONUC=EDUTESTCLASREC.CARP(SAYI1,SAYI2);
  ELSE

   IF ISLEM1 == '/' THEN
    SONUC=EDUTESTCLASREC.BOL(SAYI1,SAYI2);
   ELSE
    MSSG='Geçersiz İşlem';
    SONUC=MSSG;
   ENDIF;

  ENDIF;

 ENDIF;

ENDIF;

Sınıfın Dialog İçinde Kullanımı

[SınıfBelirteci].[İlgiliMethot](Paramters);

Biz iki parametre göndereceğimizi zaten bildirmiştik.

EDUTESTCLASREC.TOPLA(SAYI1,SAYI2);

Burada önemli durumlardan biride Editboxların direk bir değişken bir obje gibi veri çekilebilecek durumda olmasıdır. Değerleri ayrıca bir değişkene atmaya gerek kalmadan direk parametre olarak metoda uygulanabilirler.

Sınıfların bir diğer durumu geriye değer döndürmesi ve döndürmemesidir. Az önceki metot tanımlamamızda görmüştük geri dönüş tipinin INTEGER olduğunu belirtmiştik.

Bu sebepten metodumuz Return ifadesiyle geriye bir INTEGER değer dönmelidir.

RETURN S3;  

dediğimiz noktada tüm işlemler sonunda metot geriye S3 değerini dönüyor demektir.

Return ifadesinin kullanıldığı noktada Runner aşağıdaki kodları işlemez. Return bir bitirme sonlandırma ifadesidir.

Tek başına bir işlemi kesmek sonlandırmak içinde RETURN; şeklinde kullanılabilir.

SONUC=EDUTESTCLASREC.TOPLA(SAYI1,SAYI2);

Burada bahsedilen durumu anlatmak gerekirse.

EDUTESTCLAS sınıfının TOPLA Sınıfına git giderken SAYI1 ve SAYI2 değerlerini parametre olarak götür. Ve işlemler sonucundan gelen değeri SONUC editbox’ına yazdır.

Ekran Görüntüleri

Bir sonraki yazımda görüşmek üzere.

Murat Bilginer

21 Şubat 1992'de doğdum. Endüstri Mühendisi olarak lisansımı 2016 yılında tamamladım. Industryolog Akademi - NGenius oluşumlarının kurucusuyum. Şu anda kendi şirketim Brainy Tech ile Web ve Mobil Geliştirme, AWS, Google Cloud Platform Sistemleri için DevOps, Big Data Analiz ve Görselleştirme hizmetleri sunmakta ve Online Eğitimler vermekteyiz.

View Comments

Recent Posts

Kedimiz Oly & FIP Süreci 10 – Oly’nin PCR Sonucu Çıktı FCov Pozitif…

Selamlar, bu yazımda sizlere Oly’nin çıkan PCR sonucu ve geçtiğimiz bir haftada hastalığın genel seyrinden…

7 saat ago

Kedimiz Oly & FIP Süreci 9 – 1 Haftalık GS İğnesi Serüveni – Oly İyileşiyor mu?

Selamlar, bu yazımda Oly'nin 1 hafta boyunca olduğu GS iğnesi, yaşanan değişimleri anlatmaya çalışacağım. PCR…

5 gün ago

Kedimiz Oly & FIP Süreci 8 – Yeniden Hayvan Hastanesi – Sonuç Kontrolü ve Sonrası…

Selamlar, bu yazımda Hemogram ve Biyokimya sonuçlarımızı göstermek için İÜCHH'ne tekrar gidişimizi ve sonrasını anlatacağım.…

5 gün ago

Kedimiz Oly & FIP Süreci 7 – GS İğnesine Başlama Kararımız ve Oly’de Dikkat Ettiklerimiz

Selamlar, bu yazımda GS iğnesine başlama kararımızı ve Oly’de bu süreçte nelere dikkat ediyor, neler…

5 gün ago

Kedimiz Oly & FIP Süreci 6 – İstanbul Üniversitesi Cerrahpaşa Hayvan Hastanesi Serüveni ve Sonrası

Selamlar, bu yazımda İÜCHH'deki tedavi sürecimiz ve sonrasında yaşananlardan bahsetmeye çalışacağım. 20.06.2025 Cuma günü saat…

6 gün ago

Kedimiz Oly & FIP Süreci 5 – Teşhisten Önce Biz… Veterinerimize Güvenebilir Miydik?

Eve Dönüş ve İlk Şüpheler 18 Haziran Perşembe saat 23 sularında İstanbul’daki evimize giriş yaptık.…

6 gün ago