Perintah Posting yang dimaksud di sini adalah Posting untuk APP_TYPE. Seperti pada bab sebelumnya, program Posting hanya terdiri dari master dan detail. Data master berfungsi untuk memilih no. faktur yang akan diposting, sehingga tidak memerlukan file, tetapi hanya memerlukan variable. Karena proses posting ini mempengaruhi file barang, maka anda akan memakai file ppd yang mengandung informasi barang. Untuk itu marilah kita segera membuat program Posting dengan mengetikkan perintah sebagai berikut.
Sebelum kita masuk ke layar 572, pada layar 571 pada bagian atas tuliskanlah perintah sebagai berikut.
SCREEN 571 QUERY_TYPE Penjualan SCR_FILE ppm SCR_NXT_POSTING 572 SCR_NXT_MAP mnext MAP(mnext) ppmnofak r_string12 REPLACE ppmscr r_string11 REPLACE
Setelah itu barulah kita masuk ke layar 572 dan mengetikkan perintah seperti berikut.
SCREEN 572 APP_TYPE Posting Jual LOCAL PGM_FIELDS lfakawl STRING 15 lPJ STRING 3 lganti STRING 3 IMAGE(master) {BASE_ROW=2} {FRSFLD_BACKUP} {LSTFLD_ADVANCE} SCT572 @DATE Posting Penjualan No Faktur : ______________ __ +1 +1 {TOP} No Faktur Kode Plg Tgl Fak Tgl DO Status Total Faktur Total HPP +2 +2 {TOP} FIELD(master) lfakawl ALLCAPS NONE 5 lPJ PROTECT NONE 6 DEFAULTS(master) lPJ INIT PJ lganti INIT 0 IMAGE(trans) {NO_CLS} {LSTFLD_ADVANCE} {FRSFLD_BACKUP} {BASE_ROW=9} _________ __________ _________________ ________ _____________.__ ____ ____ ___ __________ FIELD(trans) ppdnofak NOCHANGE SCROLL NONE 1 ppdplg PROTECT SCROLL NONE 2 ppdbrg PROTECT SCROLL NONE 6 ppdtglfak PROTECT {DD-MM-YY} NONE 3 ppdtotfak PROTECT NONE 5 ppmdvs PROTECT NONE 7 ppmcab PROTECT NONE 7 brgsup PROTECT NONE 7 ppmkota PROTECT NONE 7 CALCS() cgantinomor lganti == "0" SUBFILE(trans) SFL_LINES(6) SFL_COND cgantinomor SFL_TARGET ppdfakbbmidx lfakawl IMAGE(trans2) {NO_CLS} {LSTFLD_ADVANCE} {FRSFLD_BACKUP} {BASE_ROW=17} _ ______________ __________ __________ ____________.__ ____ ________ ____ FIELD(trans2) pcmtype NOCHANGE NONE 1 pcmnocek NOCHANGE NONE 1 pcmplg NOCHANGE NONE 2 pcmnobbm PROTECT NONE 3 pcmtotal PROTECT NONE 4 pcmsts PROTECT NONE 5 pcmtgljtp PROTECT {DD-MM-YY} ZERO 6 pcmdvs PROTECT NONE 5 SUBFILE(trans2) SFL_LINES(6) SFL_TARGET pcmty3prcidx ppdtype2 ppdnofak /*------------------- dupdppm --------------------*/ CALCS() ctype4P ppmtype4 == "P" ctype4T ppmtype4 == "T" cINPG "INPG" cCLSD "CLSD" MAP(mupdbkk) cCLSD ppmsts DO_CALC cINPG ppmsts DO_CALC_IF ctype4P DBCALCS(dupdbkk) DBC_COMMAND UPDATE DBC_TARGET ppmnofakidx ppdnofak DBC_MAP mupdppm /*--------------------dupdppd--------------------*/ MAP(mupdppd) cCLSD ppdsts DO_CALC DBCALCS(dupdppd) DBC_COMMAND UPDATE DBC_TARGET ppdprmidx ppdprm DBC_MAP mupdbkd /* ------------------ dupdpcm -------------------*/ CALCS() cTM pcmtype =="T" cSK pcmtype == "C" c1 1 MAP(mupdpcm) cCLSD pcmsts DO_CALC_IF cTM cINPG pcmsts DO_CALC_IF cSK DBCALCS(dupdpcm) DBC_COMMAND UPDATE DBC_TARGET pcmprmidx pcmprm DBC_MAP mupdpcm /*--------------------dmappcm--------------------*/ MAP(mmappcm) c1 lganti DO_CALC DBCALCS(dmappcm) DBC_COMMAND MAPMAP DBC_MAP mmappcm SPCALCS(spdetail1) dupdppm dupdppd SPCALCS(spdetail2) dupdpcm dmappcm POSTING(trans) PST_COMMAND spdetail POSTING(trans2) PST_COMMAND spdetail2 END_SCREEN
Seperti yang sudah diterangkan di bab sebelumnya, fungsi dari posting adalah mengubah ppmsts, ppdsts, dan pcmsts darij OPEN menjadi CLSD apabila pembayarannya tunai. Dan berubah menjadi INPG apabila pembayarannya secara kredit. Karena pada layar 571 terdapat perintah RESTRICT maka setelah diposting, kita tidak bisa mengubah data lagi. Oleh karena itu telitilah terlebih dahulu sebelum memposting suatu transaksi. Sebenarnya banyak fungsi dari POSTING, tidak hanya mengubah status transaksi tetapi kita hanya akan mempelajari fungsi ini terlebih dahulu