Chapter 11. Variabel - Variabel Global di Ksystem

Variabel global yang diawali dengan g_ adalah variabel yang diset secara otomatis oleh program Ksystem. Sedang variabel global yang diawali dengan r_ bisa dipakai oleh programmer.


    Nama        Tipe    Panjang  Keterangan
    ----------------------------------------------
    g_curcmd    INT2	2	Perintah yang sedang dijalankan
    				1 => ADD, sedang menambah rekord
				2 => UPDATE, sedang mengubah rekord
				3 => QUERY, sedang mencari rekord
				4 => REMOVE, sedang menghapus rekord.
    g_dir	STRING	21	Direktori sekarang
    				g_dir == 0912 berarti sedang di direktori 0912
				g_dir == "", sedang di direktori utama.
    g_grpcab    STRING  11	Bila g_sglcab1 benar, variabel ini terisi
     				cabang yang hanya satu itu.
    g_grpdvs    STRING  11	Bila  g_sgldvs1 benar, variabel ini terisi
    				divisi yang hanya satu itu.
    g_grpnam	STRING	11	Grup dari user yang aktif, ambil dari usrgrp.
    g_numsfl1	INT4	4	Jumlah detail1 yang ada sekarang (lihat scr1721)
    g_numsfl2	INT4	4	Jumlah detail2 yang ada sekarang (lihat scr1721)
    g_persh	STRING	81	Nama perusahaan, diambil dari stspersh
    g_print	INT2	2	Jumlah laporan sudah dicetak ketika sedang
    				di layar naik turun hasil laporan.
    g_rtsno	STRING	15	Nama rts yang sedang dicetak di laporan.
    g_scrno	STRING	11	Nama screen yang sedang aktif, mis.
    				scr525 atau sct201.
    g_scrnumstr STRING  10      Nomor layar yang sedang berjalan
    				(nomornya saja), mis 201.
    g_system	STRING	51	Jenis program yang sedang dipakai, tergantung
    				dari isian stsytdo
    				

    g_sglcab   INT2    2        Cabang hanya 1 (scr113) atau User 
                                dibatasi oleh scr912 hanya boleh masuk 1 cabang 
    g_sgldvs	INT2	2	Divisi hanya 1 (scr2892) atau user hanya boleh
    				masuk 1 divisi via scr912.
    g_tgltrn	DATE	4	Menyimpan informasi tanggal transaksi sekarang,
    				tanggal ini akan berubah pada saat proses
				tutup hari.  
    g_master_type STRING 2	Nomor master, mis. a atau b dst.
                                Kadang satu screen memiliki banyak masater,
				g_master_type bisa disesuaikan sehingga
				program umum di scr525 menggunakan 
				IMAGE(master) sedang program kredit di scr525 
				menggunakan IMAGE(mastera).
    g_usrkode	STRING	11	Kode user diisi di scr912.
    g_usrno	INT2	2	Nomor user diisi di scr912.
    g_usrpos	STRING	11      Menyimpan informasi jabatan dari user.
    g_batalpst	INT2	2	Nilai 1 pada saat posting via SCR_BATALPST atau
    				SCR_VOIDPST
    g_grpcab    STRING	11	Cabang dari grp, ambil dari grpcab
    g_ipname	STRING	21	IP address dari komputer yang lagi jalan run
    g_sglcab	INT2	2	Nilai 1 bila hanya ada 1 cabang untuk user ini.
    g_sgldvs	INT2	2	Nilai 1 bila hanya ada 1 divisi untuk user ini
    g_sgllok  	INT2	2       nilai 1 bila hanya ada 1 lokasi
    g_usrkode	STRING	11	kode user, diambil dari usrkode pada saat login
    g_impdt_update INT2	2	Khusus untuk membantu ap_impdt yang akan
                                mengubah rekord yang sudah ada.

    r_count1	INT2  	2       menyimpan angka dari -32000 s/d 32000
      s/d
    r_count16	INT2  	2       menyimpan angka dari -32000 s/d 32000

    r_date1	INT4  	4       menyimpan tanggal dalam angka YYYYMMDD
      s/d
    r_date8	INT4  	4       menyimpan tanggal dalam angka YYYYMMDD

    r_double1   DFLOAT  8	menyimpan angka double, desimal presisi tinggi
       s/d
    r_double9   DFLOAT  8	menyimpan angka double, desimal presisi tinggi

    r_long1	INT4  	4       menyimpan nomor bulat -2 milyar s/d 2 milyar
      s/d
    r_long8	INT4  	4       menyimpan nomor bulat -2 milyar s/d 2 milyar,
    				
    r_string1	STRING 	51      menyimpan text
       s/d
    r_string32	STRING 	51      menyimpan text

    r_time1	INT2  	2       menyimpan informasi jam s/d menit
      s/d
    r_time8	INT2  	2       menyimpan informasi jam s/d menit

    r_sum1	DFLOAT 	8       menyimpan hasil RT_SUM1
      s/d
    r_sum8	DFLOAT 	8       menyimpan hasil RT_SUM8

    r_title1    STRING	21	menyimpan hasil ap_title
      s/d
    r_title24   STRING	21	menyimpan hasil ap_title

	Keterangan:
	   ap_impdt(nama_calc,nama_map,dirtxt,replace_calc);
	   Bila replace_calc kosong atau nilainya == 0, maka hanya menambahkan
	   data baru ke file, bila duplikat, data lama tidak diubah.
	   Bila replace_calc hasilnya == 1, maka bila duplikat, rekord baru
	   akan menumpuki rekord yang sudah ada.
	   Bila replace_calc hasilnya == 2, maka bila duplikat, rekord lama
	   akan diubah dengan menjalankan nama_map sekali lagi dan data 
	   yang baru akan tersedia di buf3 dan ada variabel global 
	   g_impdt_update yang hanya dijalankan pada saat update ini.
	   Maka MAP misalnya akan sbb:
	   CALCS()
	   cbukanupdate    g_impdt_update == 0
	   cupdate    	   g_impdt_update == 1

	   MAP(mimpdt)
	   cOPEN      brgsts    DO_CALC_IF cbukanupdate
	   #brghrg    brghrg    DO_CALC_IF cupdate

    g_jrndvs	STRING	11	variabel ini digunakan untuk mengisi 
                                jrndvs pada saat ap_adjrn. Ini dilakukan
				agar tidak perlu menambah parameter di
				ap_adjrn.