TROIA – Dialog Çağırma / Kapatma

Merhabalar,

Bu yazıda canias erp de bir dialog üzerinde işlem yaparken başka bir dialog çağırıp ordaki işlemlerle birlikte veritabanına kayıt ettirme amaçlı tasarım/kodlama nasıl yapılır onu ele alacağız.

Dün ki örnekten devam ediyoruz. İsim ve soyisim için ayrı bir dialog açıyorum HAKTRAIL2 şeklinde.


1_BirinciDialogTasarım.PNG

İlk dialoğumuzun tasarımını bu şekilde değiştiriyoruz.

3btndialog_kod.PNG

Dialog çağırma için CALL DIALOG komutunu kullanıyoruz.

4_BTNKAYDET_KOD.PNG

btnkaydet butonumuzu yukarıdaki gibi kodluyoruz.Açıklamaları resim üzerinde mevcut.

5_HAKTRAIL_BEFOREEVENT.PNG

İlk dialog açılmadan önce olmasını istediğimiz olayları burada tanımlıyoruz. tabloyu doldur,sütunları ayarla kaydet butonunu iptal et gibi.

6_İkinciDialaogTasarım.PNG

İkinci dialog tasarımı da yukarıdaki gibi olacak.

7_BTNGEÇİŞ_KOD.PNG

btngeçiş butonunun arkasına yukarıdaki control ifadesini yazıyoruz.shutdown ile kapatıyoruz.

8_TESTORTAMI GÖRÜNÜM.PNG

test ortamındaki ilk dilaoğun görüntüsü bu şekilde olmaktadır.

9_DIALOG2 GORUNUMU.PNG

dialog 2 yi aç dediğimiz de 2. dialoğumuz gelmektedir. Geçiş yap dedikten sonra ana ekrana geri döneriz.

10_KAYDET TEN SONRAKİ GÖRÜNTÜ.PNG

son olarak şehir ve doğum tarihini seçtikten sonra kaydet deyip işlemi sonlandırıyoruz.

İşlem bu kadar.

İyi çalışmalar…

KOD BLOKLARI ;

BEFORE KODLARI

/* açılır açılmaz tablo dolsun */

SELECT ID,NAME,SURNAME,CITY,BIRTHDAY FROM HAKTRIALTB ORDER BY ID INTO HAKTRIALTBL;

/* tablo genişlikleri ayarlansın. */
SETCOLWIDTH HAKTRIALTBL_ID TO 30;
SETCOLWIDTH HAKTRIALTBL_NAME TO 75;
SETCOLWIDTH HAKTRIALTBL_SURNAME TO 75;
SETCOLWIDTH HAKTRIALTBL_CITY TO 75;
SETCOLWIDTH HAKTRIALTBL_BIRTHDAY TO 115;

/* İLK AÇILDIĞINDA KAYDET BUTONUNU DİSABLE EDİYORUZ */
SET BTNKAYDET TO DISABLE;

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

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;

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

/* 2.DİALOG AÇILIR */
CALL DIALOG HAKTRAIL2  WITH LOCATION 200,200 SIZE 500,300;

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

/* BTNGEÇİŞ KODLARI , TEXTBOX LAR KONTROL EDİLİR, DİALOG KAPATILIR*/
IF TXTNAME = '' || TXTSURNAME = '' THEN
    MESSAGE BAS E2000 WITH 'İSİM YADA SOYİSİM BOŞ GEÇİLEMEZ..';
    ELSE
         /* İKİNCİ DİALOG TAN İSTEDİĞİMİZ VERİLER GELİRSE */
        SET BTNKAYDET TO ENABLE;
ENDIF;

SHUTDOWN;

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


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