Master-Detail

Konsep Master-Detail dalam relational database disebut juga dengan One-to-many. Artinya satu record dalam sebuah dataset dapat direlasikan dengan banyak record di dataset lain. Ini adalah sebuah model yang menggunakan data dari satu dataset untuk memfilter data di dataset lain. Dataset yang digunakan untuk memfilter data disebut Master dan set data yang difilter disebut Detail.

Untuk mengimplementasikan konsep Master-Detail pada Epigoni, perlu dibuat dan dilakukan pengaturan-pengaturan tertentu pada tiga bagian metadata, yaitu: dataset, data package, dan form.

Dataset

Langkah pertama adalah membuat Datasets Master dan dataset Detail, dengan konfigurasi masing-masing sebagai berikut.

Dataset Master

  • Dataset Name: QRY_PLAYLIST (opsional)

  • Dataset Title: Playlist (opsional)

  • Connection: Connections ke database Chinook

  • Command Type: QUERY

  • Update Mode: UPDATEABLE

  • Update Table: PLAYLIST

  • Command Text:

SELECT
  PLAYLISTID, NAME
FROM
  PLAYLIST
  • Pada tab Fields, tentukan PLAYLISTID sebagai Key.

Dataset Detail

  • Dataset Name: QRY_PLAYLISTTRACK (opsional)

  • Dataset Title: Playlist Track (opsional)

  • Connection: Connections ke database Chinook

  • Command Type: QUERY

  • Update Mode: UPDATEABLE

  • Update Table: PLAYLISTTRACK

  • Command Text:

SELECT
  PLAYLISTID, TRACKID
FROM
  PLAYLISTTRACK
WHERE
  PLAYLISTID=:PLAYLISTID
  • Pada tab Fields, tentukan PLAYLISTID dan TRACKID sebagai Key.

  • Pada tab Parameters, tambahkan atau generate parameter PLAYLISTID dengan Data Type-nya adalah INTEGER.

Data Package

Selanjutnya buatlah Data Packages baik dengan cara manual atau dengan cara generate dari dataset QRY_PLAYLIST.

QRY_PLAYLIST – Generate Data Package

Setelah data package terbentuk, klik kanan pada dataset QRY_PLAYLIST kemudian klik tombol Go To Data Package untuk menuju data package yang telah dibuat.

Go To Data Package

Edit data package tersebut, kemudian pada Data Package Editor, klik tombol Add Child pada QRY_PLAYLIST.

PKG_PLAYLIST – Add Child

Pada Data Package Member, klik tombol “…” pada edit box Dataset.

Data Package Member – Tombol – Pilih Dataset

Pilih dataset QRY_PLAYLISTTRACK, kemudian klik tombol OK.

Select Dataset QRY_PLAYLISTTRACK

Pada Data Package Member, untuk Relation Type-nya pilih MASTER-DETAIL.

PKG_PLAYLIST Relation Type – Master Detail

Klik tombol Generate All Link sehingga kolom Links terisi dengan PLAYLISTID=PLAYLISTID.

PKG_PLAYLIST – Generate All Link

Klik tombol OK, sehingga terlihat hasilnya yaitu dataset QRY_PLAYLIST dan QRY_PLAYLISTTRACK telah berelasi sebagai Master-Detail seperti pada gambar berikut.

QRY_PLAYLISTTRACK – Master Detail

Klik tombol Close pada Data Package Editor untuk menyimpan perubahan yang dilakukan.

Form

Untuk membuat form, lakukan seperti pada langkah pembuatan data package di atas, yaitu klik kanan pada data package yang telah dibuat, kemudian pilih Create Form atau Create Form and Action seperti pada gambar berikut.

PKG_PLAYLIST – Generate Form

Setelah form terbentuk, klik kanan dan pilih Go To Presentation untuk membuka form tersebut.

Go To Presentation

Selanjutnya, klik tombol Design.

FRM_PLAYLIST – Tombol Design

Pada Standard Form Designer, klik tab Content, kemudian klik pada MultiTable1, selanjutnya isi DatasetName dengan QRY_PLAYLIST dan DatasetDetailName dengan QRY_PLAYLISTTRACK seperti pada gambar berikut.

FRM_PLAYLIST – Dataset Master dan Detail

Gulung (scroll) ke bawah dan ubah EditorType menjadi dpeMasterDetail.

FRM_PLAYLIST – Editor Type

Sampai pada tahap ini, penerapan konsep Master-Detail telah terpenuhi. Untuk melihat hasilnya, klik tombol Refresh Preview atau Preview Modal. Form Playlist akan tampak seperti pada gambar berikut.

FRM_PLAYLIST – Master Detail – Edit Mode

Lakukan proses tambah atau ubah untuk memastikan form Master-Detail telah berfungsi dengan baik.

Selain menggunakan MultiTable, form Master-Detail dapat juga dibuat dengan menggunakan Table. Prinsipnya sama dengan MultiTable yaitu mengatur DatasetName dengan dataset master (QRY_PLAYLIST) DatasetDetailName dengan dataset detail (QRY_PLAYLISTTRACK) dan EditorType menjadi dpeMasterDetail. Hanya saja data yang tampil pada tampilan grid depan hanya data atau grid master saja.

Supaya data atau grid detail dapat juga ditampilkan pada bagian depan form, maka tambahkan satu Table lagi dengan mengatur DatasetName dengan dataset detail QRY_PLAYLISTTRACK.

Untuk membuatnya, terlebih dahulu kita hapus Multitable1 dengan mengklik tombol Remove.

Remove – Multitable1

Klik tombol Add dan pilih Table.

Add – Table1

Isi DatasetName dengan dataset master yaitu QRY_PLAYLIST dan EditorType menjadi dpeMasterDetail.

Table1 – Master

Tambahkan lagi Table, kemudian isi DatasetName dengan dataset detail yaitu QRY_PLAYLISTTRACK.

Table1 – Detail

Klik tombol Refresh Preview atau Preview Modal untuk melihat perubahan yang terjadi.

Preview Form Playlist – Table

Seperti terlihat pada gambar di atas, tiap grid memiliki sekumpulan tombol, yaitu Add, Edit, dan Delete. Pada kebanyakan kasus, untuk grid detail biasanya tidak perlu ditampilkan set tombol kecuali pada mode tambah atau ubah pada data master.

Untuk menghilangkan tombol Add, Edit, dan Delete pada grid detail, ubahlah nilai ShowAddButton, ShowEditButton, dan ShowDeleteButton menjadi False pada Table2.

False Button

Klik tombol Refresh Preview atau Preview Modal untuk melihat hasilnya.