19.3. Membuat Program Posting

Seperti yang sudah dibahas sebelumnya, program posting untuk APP_TYPE tidak bisa digabungkan dengan layar QUERY_TYPE. Oleh karena itu kita akan buat program posting ini di layar 472. Sebelum kita masuk ke layar 472, ketikkan terlebih dahulu perintah berikut di layar 471 di bwh perintah SCR_FILE pbc.


SCR_NXT_POSTING 472
SCR_NXT_MAP mnext

MAP(mnext)
pbcnoprc	r_string1	REPLACE
pbctgl		r_date1		REPLACE

Setelah menuliskan perintah di atas marilah kita segera masuk ke layar editor 472 dengan cara mengetikkan perintah vi prt9000/sct472 pada editor vi. Setelah kita masuk ke layar editor 472, ketikkan perintah sebagai berikut.


SCREEN 472 APP_TYPE Posting Bayar Hutang

LOCAL
PGM_FIELDS
lmutawl		STRING		15
lstatus		STRING		5
lganti		INT2		2

IMAGE(master) {BASE_ROW=1} {FRSFLD_BACKUP} {LSTFLD_ADVANCE}
SCT472                                                               @DATE
/---------------------Posting Pembayaran Hutang------------------------------\
|                                                                            |
|               Status        : ____                                         |
|                                                                            |
|               Nomor. Bukti  : ______________                               |
|                                                                            |
|----------------------------------------------------------------------------|
| No          O/S Nomor          Sts  Kode         Jumlah       Suplier      |
| Perencanaan       Cek               Rekening     Pembayaran                |
\----------------------------------------------------------------------------/

FIELD(master)
   lstatus   PROTECT             NONE     1
   lmutawl   ALLCAPS             INPUTRI  2

CALCS()
cganti0		lganti == 0

DEFAULTS(master)
lmutawl		INIT		{r_string1}
lstatus		INIT		OPEN

/*-------------------- SUBFILE INFORMATION (trans) --------------------*/
IMAGE(transt) {NO_CLS} {LSTFLD_ADVANCE} {FRSFLD_BACKUP} {BASE_ROW=15}
+5                                                                   +5 {TOP}
 Nomor Fak       Tgl jt                 Sisa Hutang    Jumlah Bayar
+6                                                                   +6 {TOP}

IMAGE(trans) {NO_CLS} {LSTFLD_ADVANCE} {FRSFLD_BACKUP} {BASE_ROW=20}
 ______________  ________   ____________  ___________.__  ____ __________ ____________ __________

FIELD(trans)
   pbdnofak      ALLCAPS SCROLL     INPUTRI           1
   pbdtgljtp     PROTECT {DD-MM-YY}  NONE             3
   pbddvs        PROTECT             NONE             5
   pbdjml        NUMERIC             NONE             7
   pbdnobuk      PROTECT SCROLL      NONE             2
   pbdnobbm      PROTECT             NONE             2
   pbccab2       PROTECT             NONE             2
   pbccab        PROTECT             NONE             2

SUBFILE(trans)
SFL_TITLE(transt)
SFL_LINES(2)
SFL_TARGET
pbdbukdvsidx   lmutawl

/*-------------------- SUBFILE INFORMATION --------------------*/
/*
 No          O/S Nomor          Sts  Kode         Jumlah       Suplier
 Perencanaan       Cek               Rekening     Pembayaran
*/

IMAGE(trans2) {NO_CLS} {LSTFLD_ADVANCE} {FRSFLD_BACKUP} {BASE_ROW=13}
____________ _ _ ___________ ____ ________ _ ___________.__ ______ ____ ________

FIELD(trans2)
   pcmnoprc      NOCHANGE SCROLL        INPUTRI          1
   pcmtype       NOCHANGE SCROLL        INPUTRI          2
   pcmtype2      NOCHANGE SCROLL        INPUTRI          3
   pcmnocek      NOCHANGE SCROLL        INPUTRI          4
   pcmsts        PROTECT                INPUTRI          5
   pcmnobbm      PROTECT SCROLL         INPUTRI          6
   pcmtgl        PROTECT UNSEEN         INPUTRI          7
   pcmtotal      PROTECT                INPUTRI          8
   pcmplg        PROTECT SCROLL         INPUTRI          9
   pcmdvs        PROTECT SCROLL         INPUTRI          10
   pcmtgljtp     PROTECT {DD-MM-YY}     INPUTRI          11

SUBFILE(trans2)
SFL_LINES(4)
SFL_COND cganti0
SFL_TARGET
    pcmnoprcidx    pbdnobuk

/*--------------- dupdpmb ---------------*/
CALCS()
cpmbsisa	pmbsisa - pbdjml
cCLSD		CLSD
cINPG		INPG
c1		1
ctunai		pcmtype == "T"
cCEK		pcmtype == "C"

MAP(mupdpmb)
cpmbsisa	pmbsisa		DO_CALC

DBCALCS(dupdpmb)
	DBC_COMMAND	UPDATE
	DBC_TARGET	pmbnofakidx	pbdnofak
	DBC_MAP		mupdpmb

/*--------------- dupdpbc ---------------*/
MAP(mupdpbc)
cCLSD		pbcsts		DO_CALC
g_tgltrn	pbcpostgl	REPLACE

DBCALCS(dupdpbc)
	DBC_COMMAND	UPDATE
	DBC_TARGET	pbcnoprcidx	pbdnobuk
	DBC_MAP		mupdpbc

/*-------------- dupdpbd ---------------*/
MAP(mupdpbd)
cCLSD		pbdsts		DO_CALC

DBCALCS(dupdpbd)
	DBC_COMMAND	UPDATE
	DBC_TARGET	pbdprmidx	pbdprm
	DBC_MAP		mupdpbd

/*-------------- dupdpcm ---------------*/
MAP(mupdpcm)
cCLSD		pcmsts		DO_CALC_IF ctunai
cINPG		pcmsts		DO_CALC_IF cCEK
c1		lganti		DO_CALC

DBCALCS(dupdpcm)
	DBC_COMMAND	UPDATE
	DBC_TARGET	pcmprmidx	pcmprm
	DBC_MAP		mupdpcm

SPCALCS(spcal1)
	dupdpmb Berfungsi mengubah field pmbsisa yang menyimpan informasi sisa hutang
	dupdpbc Berfungsi mengubah field pbcsts menjadi CLSD
	dupdpbd Berfungsi mengubah field pbdsts menjadi CLSD

SPCALCS(spcal2)
	dupdpcm

POSTING(trans)
	PST_COMMAND	spcal1

POSTING(trans2)
	PST_COMMAND	spcal2

END_SCREEN

Kata - kata yang berwarna merah hanyalah keterangan saja jadi tidak perlu ditulis

Setelah kita menyelesaikan program posting di atas, langkah terakhir yang kita lakukan adalah membuat program laporan rts.