TROIA – Birden Fazla Dialog Ekranı İle Çalışma

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.

1_ilk-ekran-tasarimi

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.

2_tab_buton properties ler.PNG

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.

3_search button kod.PNG

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.

4_üçüncü ekran.PNG

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.

5_üçüncü ekran before kodları.PNG

Yine aynı diolağa ait before kodları,dialog açılmadan önce çalışmasını istediğimiz kod blokları.

6_ikinci ekran.PNG

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.

7_TEST ortamı kontrol.PNG

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.

8_KAYIT TAB ı kontrol ekranı.PNG

Kayıt tabında ise verileri girdikten sonra kaydet diyoruz ve ;

9_kontrol son.PNG

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;

-------------------------------------------------------

TROIA – Birden Fazla Dialog Ekranı İle Çalışma” için 9 yorum

    1. 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ğen

      1. 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ğen

  1. sayın hocam zoom dialogda cağırdığımız tablo sığmıyor, zoom dialog size değişliği nerden yapabiliriz?

    Beğen

    1. ç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ğen

    1. 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ğen

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s