Master - Detail Grid

Last updated 3 days ago

Diyelim ki, personel kayıtlarının altında çocuk bilgilerini tutmak istiyoruz (1-N bağlantı). Bunun için yukarıdaki menüden New Editor'a tıklıyoruz. SQL DDL Command for VCS seçiyoruz. Bu kodu yazıyoruz ve SAVE'a basıyoruz.

create table ik_personel_cocuk (
personel_cocuk_id integer not null,
personel_id integer not null,
ad character varying(1024) not null,
soyad character varying(1024) not null,
lkp_cinsiyet integer,
aciklama character varying(1024),
dogum_tarihi_dt date,
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_ik_personel_cocuk PRIMARY KEY (personel_cocuk_id));
create sequence seq_ik_personel_cocuk;

personel_id alanı, bu tabloyuik_personel tablosuna bağlıyor.

DB Tables sayfasına geliyoruz ve burn butonuna basıyoruz. Tablo ismini ik_personel_cocuk yazarak OK'e basıyoruz.

ik_personel_cocuk isimli personel_id foreign key'si olan tablo oluşturduk.

Form ve Grid sayfasındaki gibi Form Wizard kullanarak ik_personel_cocuk tablosu için form ve grid oluşturuyoruz.

Forms sayfasına geliyoruz. frm_ik_personel_cocuk1'a tıklıyoruz. Form Elements'a geliyoruz ve personel_id 'a çift tıklıyoruz.

UI Component özelliğini none seçiyoruz ve UPDATE butonuna basıyoruz.

Tabloya doğrudan erişim iCodeBetter'de yoktur. Buradaki amacımız, Çocuk kaydını eklerken personel_id'yi UI'da göstermemek, fakat CRUD işlemi yapılırken dahil etmek. Çünkü tablolara erişim arayüzlerle(interface) ile olur. Doğrudan erişim olmaz. CRUD (create update delete) işlemleri için Form kullanıyoruz, Listelemek için Query oluşturup, Grid veya Card kullanıyoruz.

Bu kolonu grid'den de silmek için Grids sayfasına geliyoruz. Grid Columns da personel_id'i seçerek Delete butonuna (yuvarlak içinde eksi ikonu) basıyoruz.

DB Tables sayfasına geliyoruz. ik_personel_cocuk tablosunun personel_id sine çift tıklıyoruz ve Can Update? özelliğini kaldırıyoruz.

qry_ik_persnole_cocuk1 query'sine personel_id parametresi eklememiz lazım. Parametre eklemek için Queries sayfasına geliyoruz. qry_ik_persnole_cocuk1 seçiyoruz ve Query Parameters'e geliyoruz. Insert butonuna (yuvarlak içinde aşağıya bakan ok ikonu) basıyoruz ve Insert Query Params From Query Fields'a basıyoruz.

personel_id'i seçiyoruz ve Insert butonuna basıp kapatıyoruz.

Pages sayfasına gidiyoruz. Önceki bölümlerde yaptığımız ik_personel sayfasını seçiyoruz. Page Objects'a geliyoruz ve New butonuna (artı ikonu) basıyoruz.

Object olarak grd_ik_personel_cocuk1 ve Master Field olarak personel_id seçiyoruz. SAVE'a basıyoruz.

Master - Detail ilişkili grid oluşturduk.