Table Event

New Editor -> SQL DDL Command for VCS ile ofs_adres_defter ve ofs_telefon isimli iki tablo oluşturuyoruz.

create table ofs_adres_defter (
adres_defter_id integer not null,
ad character varying(1024) not null,
soyad character varying(1024) not null,
lkp_cinsiyet integer,
lkp_kan_grubu integer,
adres character varying(1024),
lkp_il integer,
dogum_tarihi_dt date,
email character varying(1024),
active_flag smallint not null default 0,
version_no integer NOT NULL DEFAULT 1,
insert_user_id integer NOT NULL DEFAULT 1,
insert_dttm timestamp without time zone NOT NULL DEFAULT ('now'::text)::timestamp without time zone,
version_user_id integer NOT NULL DEFAULT 1,
version_dttm timestamp without time zone NOT NULL DEFAULT ('now'::text)::timestamp without time zone,
CONSTRAINT pk_ofs_adres_defter PRIMARY KEY (adres_defter_id ));
create sequence seq_ofs_adres_defter ;
create table ofs_telefon (
telefon_id integer not null,
table_id integer not null,
table_pk integer not null,
telefon character varying(1024) not null,
active_flag smallint not null default 0,
version_no integer NOT NULL DEFAULT 1,
insert_user_id integer NOT NULL DEFAULT 1,
insert_dttm timestamp without time zone NOT NULL DEFAULT ('now'::text)::timestamp without time zone,
version_user_id integer NOT NULL DEFAULT 1,
version_dttm timestamp without time zone NOT NULL DEFAULT ('now'::text)::timestamp without time zone,
CONSTRAINT pk_ofs_telefon PRIMARY KEY (telefon_id) );
create sequence seq_ofs_telefon;

İki tablonun form ve gridlerini de Form Wizard arkalı oluşturuyoruz. Nasıl yapıldığını hatırlamak için bu linke bakabilirsiniz. ofs_adres_defter için pg_adres_defeter isimli Page de oluşturuyoruz ve o sayfayı Adres Defter menyusunu ekliyoruz. ( Page ve Menu ) ofs_telefon için Page gerekmiyor çünkü telefon gridini detay grid olacak.

Telefon formundaki table_id ve table_pk kolonlarında UI Component ozelliğini none seçiyoruz.

ofs_telefon tablosundaki table_id ve table_pk kolonlarında Can Update? özelliğini kaldırıyoruz. Reload Cache yapıyoruz.

DB değişikliklerinden sonra Reload Cache yapıyoruz.

İki formun active_flag kolonunun Initial Value özelliğine 1 değer veriyoruz.

Şimdi frm_ofs_adres_defter1 formuna telefon alanı ekliyoruz. Bu telefon alanın ofs_adres_defter tablosunda karşılığı olmayacak. Amacımız adres defter formunun SAVE butonuna basınca telefon alanın değerini ofs_telefon tablosuna kaydetmektir. Alan eklemek için artı butonuna basıyoruz ve aşağıdaki bilgileri girerek SAVE butonuna tıklıyoruz.

frm_ofs_telefon1 formuna kayıt yapma kodunu almak için New Editor -> Backend Function açiyoruz. Tables/Forms/Queries altında ofs_telefon altında frm_ofs_telefon1 sağında olan </> butonuna tıklıyoruz.

Bu kodu kopyalıyoruz.

Parametre değerlerini giriyoruz. table_id olarak DB Tables sayfasından ofs_adres_defter tablosunun id'sini alıyoruz.

Bizim şu anki örnek için değerleri hazır olan kodumuz budur.

var frm_ofs_telefon1=$.postForm(6305,2,
{table_id:4440,table_pk:_request.tadres_defter_id,telefon:_request.telefon,active_flag:1});
$.console(frm_ofs_telefon1.outputFields);//.errorMap , .outputMessages

Applıcatıon Menu'dan adres defter sayfasını preview olarak açıyoruz. Yukarıdaki Business'a tıklıyoruz.

Events üzerine tıklıyoruz ve sonra artı butonuna tıklıyoruz.

Trigger Actions olarak After Insert seçiyoruz ve önceki hazırladığımız kodu buraya yapıştırıyoruz. SAVE butonuna basıyoruz.

grd_ofs_telefon1 gridindeki table_id ve table_pk kolonlarını siliyoruz. qry_ofs_telefon1'a iki query parametre ekliyoruz: table_id ve table_pk.

pg_adres_defter sayfasına grd_ofs_telefon1 gridini ikinci grid(detay gridi) olrak ekliyoruz.

Adres defter formu ile telefon kayıdı girince altındaki detay grid'inde görüyorüz.