16.10. Mengenal Perintah RTREE

Berfungsi untuk menentukan nomor program rts yang akan dipakai sesuai dengan kondisi yang ditentukan. Dalam satu program laporan bisa terdiri banyak RTREE sesuai dengan jenis laporan yang diinginkan. Misalnya, dalam satu laporan minta ada jenis rekap dan rinci. Kondisi ini memerlukan 2 program rts. Program rts adalah program untuk membuat tampilan laporan yang ingin dibuat. Program rts harus diakhiri dengan .rts. Susunan RTREE adalah sebagai berikut :


	IMAGE(report) {LSTFLD_ADVANCE} {BASE_ROW=2}
	/--SCT???------------Ganti Dgn Judul yang sesuai-------------------------------\
	| /--------------------------------------------------------------------------\ |
	| |   Cetak   :  _                                                           | |
	| \--------------------------------------------------------------------------/ |
	\-----------------------------------------------------------------------------/
                                                                              
	FIELD(report)
	r_dev          NOCHANGE              ZERO       5

	MAP(mrts)
	ltglawl         r_date1         REPLACE
	ltglakh         r_date2         REPLACE

	DEFAULTS(qrts)
	???tglfak       INIT_QUERY     {ltglawl} : {ltglakh}

	RTREE(reportn)
	RT_COND cpil1
	USES_SCRIPT(scr???.rts)
	RT_MAP mrts
	RT_DEFAULT qrts

	berikut adalah keterangannya :
	1. RTREE(reportn) : n adalah no.urut untuk program laporan. RTREE ini berfungsi untuk menentukan program rts mana yang akan
	   ditampilkan.
	2. RT_COND : kondisi untuk menjalankan RTREE. jika kondisi benar, maka RTREE akan dijalankan.
	3. USES_SCRIPT : untuk menentukan nomor program rts yang akan dijalankan oleh RTREE.
	4. RT_MAP : untuk memindahkan variabel yang ada di program sct ke global variabel yang sudah disediakan oleh K-system. Sehingga,
	   isi dari global variabel ini dapat dipakai di program rts. Macam-macam global variabel untuk laporan ini adalah :
	   * r_string1 s/d r_string12 ini digunakan untuk data type Text.
	   * r_count1 s/d r_count4 ini digunakan untuk data type Interger.
	   * r_date1 s/d r_date4 ini untuk data type tanggal.
	   * r_double1 s/d r_double8 ini untuk data type desimal.
	5. RT_DEFAULT : berfungsi untuk mencari data utama dari file yang akan dipakai untuk menampilkan laporan. Dalam satu default
	   hanya untuk 1 file saja. Jika dalam pencarian perlu file lain maka pencarian dilakukan di program rts. Misalnya anda akan
	   mencetak laporan faktur penjualan tanpa ada informasi barang, maka file utama yang dicari adalah ppm. Tetapi kalau anda
	   mencetak laporan penjualan yang ada informasi barangnya, maka file utama yang anda cari adalah ppd.
	

Setelah mengetahui fungsi - fungsi dari tiap perintah yang ada di RTREE maka alangkah baiknya bila kita mencoba membuatnya untuk layar 271 ini. Contoh RTREE untuk layar 271 ini adalah sebagai berikut:


	IMAGE(report) {LSTFLD_ADVANCE} {BASE_ROW=2}
	/--SCT271------------Mencetak Bukti Keluar Kas/Bank----------------------------\
	| /--------------------------------------------------------------------------\ |
	| |   No. Bukti  : ___________________                                       | |
	| |                                                                          | |
	| |   Status     : ________                                                  | |
	| |                                                                          | |
	| |   Device     : _                                                         | |
	| \--------------------------------------------------------------------------/ |
	\-----------------------------------------------------------------------------/


	FIELD(report)
      	bkknum         PROTECT               INPUTRI      1
	bkksts         PROTECT               INPUTRI      2
	r_dev          NUMERIC               INPUTRI      4

	DEFAULTS(qrts)
	bkknum  INIT_QUERY      {bkknum}

	RTREE(report)
	USES_SCRIPT(scr271.rts)
	RT_DEFAULT qrts
	

Setelah membuat RTREE maka untuk menampilkan format laporan yang kita inginkan, kita harus membuat program rts. Program rts ini berfungsi untuk menampilkan format laporan sesuai yang kita inginkan. Fungsi - fungsi program rts adalah sebagai berikut:


	1. START
	   Berfungsi untuk memulai membuat program rts.

	2. VIRTUAL
	   Berfungsi untuk membuat variabel yang tidak ada di dalam struktur, membuat perhitungan, atau kondisi. Fungsi ini seperti
	   fungsi LOCAL dan CALCS di program scr/sct. Susunan fungsi VIRTUAL adalah :
           /------------------------------------------------------------------------\
	   |Nama Variabel + Type Variabel + Panjang Variabel + Perhitungan / Kondisi|
           \------------------------------------------------------------------------/
	   *Nama Variabel
	    Nama variabel bebas sesuai keinginan anda, tetapi untuk mempermudah mengingat fungsi dari variabel tersebut berilah na-
	    ma yang berhubungan dengan fungsinya. Misalnya anda menghitung jumlah dikalikan harga, maka beri nama variabel hasil
	    perhitungannya dengan "vhasil"
	   *Type variabel
	    -STRING jika isi variabel tersebut adalah text.
	    -DFLOAT jika isi variabel tersebut adalah angka dan dapat berupa desimal s/d +/- milyaran.
	    -INT2 jika isi variabel tersebut adalah angka yang tidak mempunyai desimal dan hanya dapat diisi angka max +/-32.000
	    -INT4 jika isi variabel tersebut adalah angka yang tidak mempunyai desimal dan hanya dapat diisi angka lebih +/-milyaran.
	    -DATE jika isi variabel tersebut adalah tanggal.
	   *Panjang variabel
	    type STRING	adalah sesuai yang anda butuhkan
	    type DFLOAT adalah 8 byte
	    type INT2 adalah 2 byte
	    type INT4 adalah 4 byte
	    type DATE adalah 4 byte
	   *Perhitungan / Kondisi
	    fungsi ini sama dengan CALCS di scr/sct

	3. SEARCH
	   berfungsi untuk mengumpulkan record-record data/file yang akan digunakan dalam membuat suatu laporan. Semakin banyak record
	   data yang dipakai dalam pembuatan laporan, maka semakin memperlambat proses penyajian laporan.
	   Dalam menentukan record file yang digunaka, dibagi dalam 2 susunan record file, yaitu file utama dan file kedua.
	   *File utama adalah satu file data yang dicari pada saat membuat program sct di bagian fungsi RT_DEFAULT. Satu file (misal:pmb)
	    tersebut harus diletakkan di baris pertama setelah SEARCH dengan susunan sebagai berikut: FILE "pmb.dat" ALL
	   *File kedua adalah file - file yang membantu file utama dalam menyajikan informasi yang dibutuhkan.
	    Misalnya file utama yang anda pakai adalah file pmb dan anda ingin menampilkan nama supplier di mana file pmb hanya ada info
	    kode suplier dan tidak ada nama suplier. Maka anda harus memanggil file sup yang mempunyai informasi nama suplier. Fasilitas
	    untuk memanggil file sup ini menggunakan JTN. Contohnya adalah sebagai berikut:

	    SEARCH
	    FILE "pmb.dat" ALL
	    FILE "sup.dat" JTN "pmb.dat" BY_FIELD pmbsup USING_KEY supkodidx

	 4. SELECT
	    berfungsi untuk menyeleksi lagi record - record yang sudah dikumpulkan di dalam SEARCH, sehingga record - record yang di-
	    tampilkan adalah record - record yang betul - betul diinginkan. Contoh cara pemakaian SELECT adalah sbg berikut:
	    SELECT
	    suptype = "DN" AND (supkota="JKT" OR supkota ="SMG")

	    artinya record yang sudah dikumpulkan di SEARCH masih diseleksi lagi, jika isi field suptype = DN dan isi supkota =JKT atau
	    isi supkota = SMG yang memenuhi seleksi tersebut adalah record yang ditampilkan.
	    Note:Jika dari record SEARCH tidak ada yang diseleksi lagi, maka fungsi SELECT tidak perlu ditulis lagi.

	 5. SORT USING KEY
	    adalah fasilitas untuk mengurutkan record yang dikumpulkan sesuai urutan field. Contoh cara pemakaian fungsi CONTROL DAN SORT :
	    SORT USING_KEY
	    NO_MOOD pmbsup
	    NO_MOOD pmbtglfak
	    NO_MOOD ppdnourt

	 6. CONTROL
	    berfungsi untuk mengontrol bentuk tampilan gambar dan sangat berhubungan dengan fungsi SORT. Urutan field yang ada di SORT
	    harus sama dengan yang ada di CONTROL. Fungsi control dibedakan menjadi CONTROL_HDR dan CONTROL_FTR.
	    *CONTROL_HDR
	     adalah menampilkan gambar di setiap awal record dari isi field nomor control yang berbeda dengan record sebelumnya.
	    *CONTROL_FTR
	     adalah tampilan layar akan ditampilkan setiap akhir record dari isi field nomor control yang berbeda dengan record sesudahnya.
         
         7. ACCUMULATOR
	    berfungsi untuk menjumlahkan / mengakumulasi suatu field / variable. Contoh :
	    ACCUMULATOR
	    total	SUM		pmbtotfak
	    artinya total akan terisi penjumlahan nilai field pmbtotfak.

	 8. DISPLAY
	    untuk mengatur tampilan laporan seperti panjang halaman, jumlah karakter per baris, besar dan kecilnya huruf

	 9. IMAGE
	    berfungsi untuk membuat tampilan gambar laporan yang dikehendaki. Fungsi - fungsi bagian IMAGE :
	    * BODY
	      berfungsi menampilkan semua data yang dikumpulkan oleh SEARCH dan yang sudah diseleksi oleh SELECT
	    * CONTROL_HDR(n)
	      berfungsi menampilkan gambar di awal setiap isi field control ke n yang sama.
	    * CONTROL_FTR(n)
	      berfungsi menampilkan gambar di akhir setiap isi field control ke n yang sama.
	    * REPORT_HDR
	      berfungsi menampilkan gambar sekali dalam 1 laporan, yaitu setiap awal laporan.
	    * REPORT_FTR
	      berfungsi menampilkan gambar sekali dalam 1 laporan, yaitu setiap akhir laporan.
	    * PAGE_HDR
	      berfungsi menampilkan gambar di setiap awal halaman.
	    * PAGE_FTR
	      berfungsi menampilkan gambar di setiap akhir halaman.

	 10.EXIT
	    berfungsi untuk mengakhiri program rts. letaknya di baris paling akhir program rts.
	 

Setelah kita mengetahui fungsi - fungsi yang ada di program rts, untuk lebih jelasnya marilah kita membuat program rts untuk layar 271 ini sebagai contoh.


	START

	VIRTUAL
	vnourt		INT2	2	COUNTER + 1

	SEARCH
	FILE "bkk.dat" ALL
	FILE "bkd.dat" DTN "bkk.dat" BY_FIELD bkknum USING_KEY bkdnumidx
	FILE "plg.dat" JTN "bkk.dat" BY_FIELD bkkkode USING_KEY plgkodidx
	FILE "bbm.dat" JTN "bkd.dat" BY_FIELD bkdnobbm USING_KEY bbmnoidx

	CONTROL
	1 bkdnobbm

	SORT USING_KEY
	NO_MOD          bkdnobbm
	
	ACCUMULATOR
	total		SUM	bkdjml

	DISPLAY
        DEVICE          r_dev
	PAGE_LENGTH     66
	THOUSAND_SEPARATOR PERIOD
	DECIMAL_POINT  COMMA
	SCREEN_LINES   24


	IMAGE

	REPORT_HDR
	+
	+@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx                    No.     : @xxxxxxxxxxxxx
	g_persh                                                                   bkknum
	+@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx               Tgl    : @xxxxxxxxxxxxx
	g_alamat                                                                  bkktgl
	+              
	+                          Bukti Pengeluaran Kas

	CONTROL_HDR(1)
	+/---t-------------t---------------------------------------t-------------------\
	+|No.|   REKENING  |              KETERANGAN               |       JUMLAH      |
	+|---|-------------|---------------------------------------|-------------------|
 	BODY
	+|@xx|@xxxxxxxxxxxx|@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|@9,9999999999999.00|
  	INCREMENT(vnourt) bkdnobbm       bbmket    bkdjml
	CONTROL_FTR(1)
	+|-----------------.---------------------------------------|-------------------|
  	+               T O T A L			            @9,9999999999999.00
   	total
	+\-----------------------------------------------------------------------------/
    	PAGE_FTR
    	+
    	+
    	EXIT