AS400 CLP Calculation

Saya akan menjelaskan cara menggunakan calculation atau perhitungan pada AS400. Operasi yang akan saya jelaskan kali ini adalah penambahan (+), pengurangan (-), perkalian (*) dan pembagian (/).

Karena saya menggunakan SNDPGMMSG untuk mendapatkan output tertulis di log, saya lakukan konversi decimal ke character.

PGM                                                          
             DCL        VAR(&DEC1) TYPE(*DEC) LEN(2) VALUE(6)
             DCL        VAR(&DEC2) TYPE(*DEC) LEN(2) VALUE(2)
             DCL        VAR(&CALC) TYPE(*DEC) LEN(2)         
             DCL        VAR(&OUTPUT) TYPE(*CHAR) LEN(2)      
                                                             
/* PLUS '+' SIGN */                                          
             CHGVAR     VAR(&CALC) VALUE(&DEC1 + &DEC2)      
             CHGVAR     VAR(&OUTPUT) VALUE(&CALC)            
             SNDPGMMSG  MSG(&OUTPUT)                         
                                                             
/* MINUS '-' SIGN */                                         
             CHGVAR     VAR(&CALC) VALUE(&DEC1 - &DEC2)      
             CHGVAR     VAR(&OUTPUT) VALUE(&CALC)            
             SNDPGMMSG  MSG(&OUTPUT)                         
                                                             
/* MULTIPLY '*' SIGN */                                      
             CHGVAR     VAR(&CALC) VALUE(&DEC1 * &DEC2)      
             CHGVAR     VAR(&OUTPUT) VALUE(&CALC)            
             SNDPGMMSG  MSG(&OUTPUT)                    
                                                        
/* DIVIDED '*' SIGN */                                  
             CHGVAR     VAR(&CALC) VALUE(&DEC1 / &DEC2) 
             CHGVAR     VAR(&OUTPUT) VALUE(&CALC)       
             SNDPGMMSG  MSG(&OUTPUT)                    
ENDPGM                                                  
Note: Tampilan ini merupakan tampilan gabungan dua halaman (agar mempermudah dalam membaca, saya gabung).

Compile dan jalankan program.

Tinggalkan Balasan