17.3. Membuat Perintah Posting

Seperti yang sudah dijelaskan pada bab sebelumnya yaitu fungsi perintah Posting ini adalah untuk mengubah data saat kita mengkonfirmasi data ( saat kita menekan tombol G pada layar ksystem ). Karena perintah posting ini adalah posting untuk APP_TYPE maka tidak bisa digabungkan dengan layar QUERY_TYPE, oleh karena itu kita harus membuka layar baru. Misalnya kita gunakan layar 372 untuk layar 371. Sebelum masuk ke layar 372 pada bagian paling atas di layar 371 ketikkan perintah sebagai berikut :


SCREEN 371 QUERY_TYPE Input Pembelian
SCR_FILE pmb
SCR_NXT_POSTING 372
SCR_NXT_MAP mnext

MAP(mnext)
pmbnofak    r_string7    REPLACE
pmbfl1      r_string15   REPLACE
pmbscr      r_string9    REPLACE
pmbfl2      r_string10   REPLACE
pmbtk       r_string11   REPLACE
pmbtglfak   r_date1      REPLACE
pmbtglfak   r_date2      REPLACE

Fungsi dari perintah SCR_NXT_MAP mnext adalah untuk mengcopykan data - data yang dibutuhkan di layar 371 ke dalam variabel global yang nantinya data tersebut akan dipakai di layar 372.

Setelah menuliskan perintah di atas maka marilah kita masuk ke layar 372 dengan mengetikkan perintah vi prt9000/sct372 pada editor vi. Setelah masuk ke layar editor 372 maka ketikkan perintah - perintah sebagai berikut.


SCREEN 372 APP_TYPE Posting Pembelian

LOCAL
PGM_FIELDS
  lnofak1	STRING		15
  lD		STRING		2
  lBR		STRING		3

IMAGE(master) {BASE_ROW=1} {FRSFLD_BACKUP} {LSTFLD_ADVANCE}
SCT278                                                                @DATE
/-----------------------Pelaksanaan Pembelian Barang---------------------------\
|              No. Faktur   : ______________                                   |
|                                                                              |
|                                                                              |
| No Faktur      Supplier    Kode Barang    Lokasi    Jml Unit    Tanggal  Sts |
\------------------------------------------------------------------------------/

FIELD(master)
   lnofak1           ALLCAPS                   INPUTRI    8

DEFAULTS(master)
lnofak1		INIT		{r_string7}
lD		INIT		D

IMAGE(trans) {NO_CLS} {LSTFLD_ADVANCE} {FRSFLD_BACKUP} {BASE_ROW=12}
 _____________ _________ ________________ _____ ________ ________ ____ _________ ___

FIELD(trans)
   ppdnofak          NOCHANGE SCROLL         NONE      1
   ppdplg            NOCHANGE SCROLL  NONE      2
   ppdbrg            PROTECT SCROLL          NONE      3
   ppdlok            PROTECT SCROLL          NONE      4
   pmbcab            PROTECT SCROLL          NONE      5
   ppdtglfak         PROTECT {DD-MM-YY} NONE    6
   pmbdvs            PROTECT SCROLL          NONE      7
   ppdnobbm          PROTECT SCROLL          NONE      7
   pmbsup            PROTECT SCROLL          NONE      7

DEFAULTS(trans)
  lBR         INIT    BR

SUBFILE(trans)
SFL_LINES(9)

SFL_TARGET
ppdfakbbmidx   lnofak1

IMAGE(trans2) {NO_CLS} {LSTFLD_ADVANCE} {FRSFLD_BACKUP} {BASE_ROW=19}
 _______________ _________ _________________.__ ___________ __________

FIELD(trans2)
   pcmnoprc          NOCHANGE         NONE      1
   pcmplg            NOCHANGE SCROLL  NONE      2
   pcmtotal          PROTECT          NONE      3
   pcmnobbm          PROTECT          NONE      3
   lbbmkas           PROTECT          NONE      3

CALCS()
cgantinomor     ppdnofak != lppdnofak
cD              "D"
cPB             "PB"
cCLSD		"CLSD"
cOPEN		"OPEN"

SUBFILE(trans2)
SFL_LINES(3)
SFL_COND        cgantinomor
SFL_TARGET
pcmty3stsprc   lPB lOPEN ppdnofak

/*--------------------daddbrd---------------------*/
MAP(mbrd)
   cOPEN                brdsts          DO_CALC
   ppdscr               brdscr          REPLACE
   ppdtglfak            brdtgl          REPLACE
   g_tgltrn             brdtglpos       REPLACE
   ppdplg               brdsup          REPLACE
   g_usrno              brdcrtusr       REPLACE
   ppdbrg               brdbrg          REPLACE
   ppdlok               brdlok          REPLACE
   ppdnourt             brdnourt        REPLACE
   ppdsat               brdsat          REPLACE
   ppdkdukr             brdkdukr        REPLACE
   ppdsatbsr            brdjmlsat       REPLACE  /* Jumlah x satuan */

   ppdtmp               brdjmu          REPLACE  /* Jumlah Satuan Kecil */
   brdjmu               brdsisunt       REPLACE
   brdjmu               brdsisuntprc    REPLACE
   ppdhrg               brdhrg          REPLACE  /* hrg Dlm Satuan kecil */

   ppdkat               brdkat          REPLACE
   ppdnobbm             brdnobbm        REPLACE
   pmbppnyt             brdppnyt        REPLACE
   ppdnwo               brdket          REPLACE
   ppdnofak             brdnofak        REPLACE

DBCALCS(daddbrd)
DBC_COMMAND             ADD
DBC_FILE                brd
DBC_MAP                 mbrd
DBC_LAST_TARGET         brdnoidx        brdno
DBC_LAST_LEN            14

/*-------------------daddbrt--------------------*/
MAP(maddbrt)
ppdnofak       brtnofak         REPLACE
brdbrg         brtbrg           REPLACE
brdlok         brtlok           REPLACE
brdkdukr       brtkdukr         REPLACE
brdnourt       brtnourt         REPLACE
brdsat         brtsat           REPLACE
brdno          brtno            REPLACE
brdtgl         brttgl           REPLACE
brdtglpos      brttglpos        REPLACE
brdjmu         brtjml           REPLACE
brdhrg         brthrg           REPLACE
brdscr         brtscr           REPLACE
brdsup         brtplg           REPLACE
brdnobbm       brtnobbm         REPLACE
cD             brtdk            DO_CALC /* D */
cPB            brttype          DO_CALC /* Pembelian*/

DBCALCS(daddbrt)
DBC_COMMAND             ADD
DBC_FILE                brt
DBC_MAP                 maddbrt
DBC_LAST_TARGET         brttrnidx       brttrn
DBC_LAST_LEN            14

/*------------------dupdpmb-------------------*/
CALCS()
cpmbtkK                 pmbtk == "K"
cpmbtkT                 pmbtk == "T"
cyt24yT                 stsyt24 == "T"
cyt24Y                  stsyt24 == "Y"

MAP(mupdpmbd)
   pmbtotfak            pmbsisa         REPLACE
   pmbtotfak            pmbsisprc       REPLACE
   pmbtothutas1         pmbsishutas1    REPLACE
   pmbtothutas1         pmbsisprcas1    REPLACE
   cOPEN                pmbstsret       DO_CALC
   g_usrno              pmbxctusr       REPLACE
   g_tgltrn             pmbpostgl       REPLACE
   cINPG                pmbsts          DO_CALC_IF cpmbtkK
   cCLSD                pmbsts          DO_CALC_IF cpmbtkT
   cOPEN                pmbstsprc       DO_CALC_IF cpmbtkK
   cCLSD                pmbstsprc       DO_CALC_IF cpmbtkT

DBCALCS(dupdpmbd)
        DBC_COMMAND     UPDATE
        DBC_TARGET      pmbnofakidx              ltmpfak
        DBC_MAP         mupdpmbd

/*--------------------dupdppd--------------------*/
MAP(mupdppd)
   cCLSD                ppdsts             DO_CALC
   lD                   ppddk              REPLACE

DBCALCS(dupdppd)
        DBC_COMMAND     UPDATE
        DBC_TARGET      ppdprmidx              ppdprm
        DBC_MAP         mupdppd

/*-------------------dupdpcm--------------------*/
MAP(mupdpcm)
   cCLSD                pcmsts          DO_CALC

DBCALCS(dupdpcm)
        DBC_COMMAND     UPDATE
        DBC_TARGET      pcmprmidx               pcmprm
        DBC_MAP         mupdpcm

/*-------------------dmapakhir-------------------*/
MAP(mmapakhir)
   ppdnofak             lppdnofak          REPLACE

DBCALCS(dmapakhir)
DBC_COMMAND MAPMAP
DBC_MAP     mmapakhir

SPCALCS(spcal1)
        daddbrd berfungsi untuk menambah file brd (file yang berisi detail barang)
        daddbrt berfungsi untuk menambah file brt (file yang berisi aktivitas barang)
        dupdpmb berfungsi untuk mengubah file pmb
        dupdppd berfungsi untuk mengubah file ppd

SPCALCS(spcal2)
        dupdpcm berfungsi untuk mengubah file pcm
        dmapakhir berfungsi untuk mengcopykan isi ppdnofak ke lppdnofak

POSTING(trans)
        PST_COMMAND     spcal1

POSTING(trans2)
        PST_COMMAND     spcal2

END_SCREEN

Setelah membuat perintah Posting langkah selanjutnya adalah membuat laporan dengan menggunakan perintah rts.