Merhabalar,
Canias Erp ile ilgili yazılarımızda bugün bir dialog ekranında birden fazla dialog ekranı nasıl kullanıldığından bahsedeceğiz.
HAKTRAIL isimli ana dialog ekranımızı bu şekilde bir tasarlayoruz önce. Dialog ekranında boşluk olan bir yere tıklayıp sağ tarafta çıkan properties ekranında zoom type ı “splash” type ı da “multi ” seçerek birden fazla dialog ile çalışacağımızı söylüyoruz öncelikle.
daha sonra alttaki 2 butonun sub type ını “tab buton” seçiyoruz.Order ını da (sırasını da) hemen altındaki satırdan belirleyebiliriz.
Alt kısımdaki Caption da isim olarak başına & işareti koyarak bir değer verdikten sonra LinkTo yazan satır da o tab butonuna basıldığında hangi dialoğu çağıracağını belirtiyoruz. Aynı şeyi diğer buton içinde yapıp dialog için HAKTRAIL2 yi çağırmasını istiyoruz.
HAKTRAIL için serach butonunun click olayına yukarıdaki gibi kodlarımızı yazıyoruz. Kod en basit haliyle sql de like ‘%%’ sorgusu işlevi görmektedir.
Tablo Getir tab butonunun çağırdığı HAKTRAIL3 isimli dialog içinde sadece bir tablo var.Dialoğun zoom type ı splash type ı da nonMode seçilir ki gömülü olacağı belli olsun.
Yine aynı diolağa ait before kodları,dialog açılmadan önce çalışmasını istediğimiz kod blokları.
Kayıt isimli tab butonunun çağırdığı HAKTRAIL2 isimli dialoğun tasarımı da bu şekildedir.Dialoğun zoom type ı yine splash type ı nonmode seçilir.
Tasarımları yaparken sağ üst köşeden x y koordinatlarına dikkat edilirse üst üste binme ihtimali kalmayacaktır.
Senaryomuza bağlı olarak ana dialog ta arama yaptığımız herhangi bir şey için sonuç aşağıdaki diğer dialog ta dönmektedir.
Kayıt tabında ise verileri girdikten sonra kaydet diyoruz ve ;
Verimizi tablomuza kaydetmiş oluyoruz.
İç içe dialog kullanımı bu şekildeydi.
İyi çalışmalar..
KOD BLOKLARI ;
BTNSEARCH butonu OBJECT: STRING txtSearch; txtSearch = '%' + TXTSEARCH + '%'; SET HAKTRIALTBL TO ENABLE; IF TXTSEARCH != '' THEN SELECT * FROM HAKTRIALTB WHERE NAME LIKE txtSearch ORDER BY ID INTO HAKTRIALTBL; ELSE MESSAGE BAS E2000 WITH 'TÜM KAYITLAR GETİRİLİYOR..!!'; SELECT * FROM HAKTRIALTB ORDER BY ID INTO HAKTRIALTBL; ENDIF; ---------------------------------------------------------- BTNKAYDET /* BTNGEÇİŞ KODLARI , TEXTBOX LAR KONTROL EDİLİR, DİALOG KAPATILIR*/ IF TXTNAME == NULL || TXTSURNAME == NULL THEN MESSAGE BAS E2000 WITH 'İSİM YADA SOYİSİM BOŞ GEÇİLEMEZ..'; ELSE GLOBAL: INTEGER IDcount, STRING txtname, STRING txtsurname,STRING cmbcity,STRING txtbirthday,STRING errorM; /* sanal tabloya veri attıktan sonra kaç veri varsa integer olarak geri döner. */ IDcount = HAKTRIALTBL_ROWCOUNT; IDcount=IDcount+1; /* sanal tabloya bir kayıt satırı daha açıp işlem yaptıracağız.*/ APPEND ROW TO HAKTRIALTBL; /* dialog ekranındaki componentlerin içindeki verileri oracledaki tabloların kolonlarına eşitliyoruz*/ MOVE IDcount TO HAKTRIALTBL_ID; MOVE TXTNAME TO HAKTRIALTBL_NAME; MOVE TXTSURNAME TO HAKTRIALTBL_SURNAME; SWITCH CMBCITY /* combobox ın value değeri bu şekilde alınıp db ye basılıyor */ CASE 0: MOVE 'ISTANBUL' TO HAKTRIALTBL_CITY; CASE 1: MOVE 'IZMIR' TO HAKTRIALTBL_CITY; CASE 2: MOVE 'ANKARA' TO HAKTRIALTBL_CITY; DEFAULT: MOVE 'TURKİYE' TO HAKTRIALTBL_CITY; ENDSWITCH; MOVE TXTBIRTHDAY TO HAKTRIALTBL_BIRTHDAY; /* yukarıdaki değişiklikleri db ye uygulatıyoruz,yani bir nevi entity deki context.Save() metodu gibi*/ BEGINTRAN; INSERT INTO HAKTRIALTBL; IF SYS_STATUS THEN MESSAGE BAS E2000 WITH 'KAYDEDİLEMEDİ.'; ROLLBACKTRAN; RETURN 0; ENDIF; errorM = IDcount + '. KAYIT BAŞARIYLA KAYDEDİLDİ.'; MESSAGE BAS E2000 WITH errorM; COMMITTRAN; TXTNAME=''; TXTSURNAME=''; /* cliked olayından sonra ekranı bir yeniletiyoruz */ SELECT ID,NAME,SURNAME,CITY,BIRTHDAY FROM HAKTRIALTB ORDER BY ID INTO HAKTRIALTBL; /*SHUTDOWN;*/ ENDIF; ----------------------------------------------------------------- HAKTRAIL2 BEFORE KODLARI SELECT ID,NAME,SURNAME,CITY,BIRTHDAY FROM HAKTRIALTB ORDER BY ID INTO HAKTRIALTBL; /* tablo genişlikleri ayarlansın. */ SETCOLWIDTH HAKTRIALTBL_ID TO 100; SETCOLWIDTH HAKTRIALTBL_NAME TO 250; SETCOLWIDTH HAKTRIALTBL_SURNAME TO 250; SETCOLWIDTH HAKTRIALTBL_CITY TO 250; SETCOLWIDTH HAKTRIALTBL_BIRTHDAY TO 260; -------------------------------------------------------
Get-itlabs içinde bekliyorum bu yazıları….
BeğenBeğen
Benim için bir onur olur Ersin Hocam 🙂
BeğenBeğen
merhaba kolay gelsin canias da nakit akış alanını kullananlar varmı bana bır ornek lazım konu ıle ılgılı olarak maıl adresımden donersenız sevınırım. tesekkurler sımdıden
BeğenBeğen
fınt49 – 50 -51 ve 52 de bununla ilgili hazırlanmış dialoglara ulaşabilirsiniz aycan hanım. isterseniz fint alanları ile ilgili pdf göönderebilirim. mail ile ulaşabilirsiniz.
BeğenBeğen
sayın hocam zoom dialogda cağırdığımız tablo sığmıyor, zoom dialog size değişliği nerden yapabiliriz?
BeğenBeğen
çağırdığın zoom dialog u tasarlarken,geliştirme ekranının sağ tarafındaki width ve height özelliklerinden ayarlayabilirsin hocam. normal sayfa genişliği ideal olan 777 idi sanırım genişliği 500 vs vererek deneyebilirsin.
zoom dialogun zoom type ını splash , type ını da parent modal olarak seçmelisin
BeğenBeğen
Merhaba Erol bey,
TROIA IDE indirebileceğimiz bir link varmıydı?
Teşekkürler.
BeğenBeğen
Maalesef Abdullah Bey bildiğim kadarıyla yok, ya eğitim almaya bir kursa giderseniz yada bir yerde işe başlarsanız edu sürümünü kullanabiliyorsunuz.
BeğenBeğen