close

 

# Prog. Version..: '5.00.05-08.04.29(00009)'     #
# Pattern name...: cimi200.4gl
# Descriptions...: ?CBA CHARGE?桀蝬剛風雿平??
# Date & Author..: 10/12/20 By Jeffrey Hu
DATABASE ds
GLOBALS "../../../tiptop/config/top.global"
DEFINE 
    g_pcb           DYNAMIC ARRAY OF RECORD    #蝔?霈(Program Variables)
        tc_pcb01       LIKE tc_pcb_file.tc_pcb01,   
        tc_pcb02       LIKE tc_pcb_file.tc_pcb02,   
        tc_pcb03       LIKE tc_pcb_file.tc_pcb03,   
        tc_pcb04       LIKE tc_pcb_file.tc_pcb04,  
        tc_pcbacti     LIKE tc_pcb_file.tc_pcbacti
                     END RECORD,
    g_pcb_t         RECORD                 #蝔?霈 (?€?
    tc_pcb01       LIKE tc_pcb_file.tc_pcb01,   
        tc_pcb02       LIKE tc_pcb_file.tc_pcb02,   
        tc_pcb03       LIKE tc_pcb_file.tc_pcb03,   
        tc_pcb04       LIKE tc_pcb_file.tc_pcb04,  
        tc_pcbacti     LIKE tc_pcb_file.tc_pcbacti
                    END RECORD,
    g_sql           string,  #No:FUN-580092 HCN
    g_wc2           STRING,  #TQC-630166 
    g_rec_b         LIKE type_file.num5,   #?株澈蝑  #No.FUN-690026 SMALLINT
    l_ac            LIKE type_file.num5,   #?桀????RRAY CNT  #No.FUN-690026 SMALLINT
    g_account       LIKE type_file.num5    #??蝬剛風 #FUN-670032  #No.FUN-690026 SMALLINT
DEFINE p_row,p_col            LIKE type_file.num5    #No.FUN-690026 SMALLINT
DEFINE g_forupd_sql           STRING                 #SELECT ... FOR UPDATE NOWAIT SQL
DEFINE g_chr                  LIKE type_file.chr1    #No.FUN-690026 VARCHAR(1)
DEFINE g_cnt                  LIKE type_file.num10   #No.FUN-690026 INTEGER
DEFINE g_i                    LIKE type_file.num5    #count/index for any purpose  #No.FUN-690026 SMALLINT
DEFINE g_msg                  LIKE type_file.chr1000 #No.FUN-690026 VARCHAR(72)
DEFINE g_before_input_done    LIKE type_file.num5    #No.FUN-570110     #No.FUN-690026 SMALLINT
DEFINE g_cmd                  LIKE type_file.chr1000 #FUN-680048 #No.FUN-690026 VARCHAR(70)
DEFINE g_flag                 LIKE type_file.chr1    #FUN-680048 #No.FUN-690026 VARCHAR(1)
MAIN
    OPTIONS                                #?寡?銝€鈭頂蝯梢?閮剖€?
        FORM LINE       FIRST + 2,         #?恍????蝵?
        MESSAGE LINE    LAST,              #閮憿舐內??蝵?
        PROMPT LINE     LAST,              #?內閮??蝵?
        INPUT NO WRAP                      #頛詨?撘? 銝?頧?
    DEFER INTERRUPT                        #?瑕?銝剜?? ?梁?撘???
   IF (NOT cl_user()) THEN
      EXIT PROGRAM
   END IF
  
   WHENEVER ERROR CALL cl_err_msg_log
  
   IF (NOT cl_setup("CIM")) THEN
      EXIT PROGRAM
   END IF
   CALL  cl_used(g_prog,g_time,1)       #閮?雿輻?? (?唇??) #No:MOD-580088  HCN 20050818  #No.FUN-6A0074
         RETURNING g_time    #No.FUN-6A0074
   LET p_row = 3 LET p_col = 6
   OPEN WINDOW i200_w AT p_row,p_col WITH FORM "cim/42f/cimi200"
      ATTRIBUTE (STYLE = g_win_style CLIPPED) #No:FUN-580092 HCN
   
   CALL cl_ui_init()
   #FUN-670032................begin
    #CALL cl_set_comp_visible("imd16,gem02",g_aaz.aaz90='Y')
    CALL cl_set_act_visible("account",g_aaz.aaz90='Y')
   #FUN-670032................end
   LET g_wc2 = '1=1' 
   CALL i200_b_fill(g_wc2)
   LET g_flag = 'N'        #FUN-680048
   CALL i200_menu()
   CLOSE WINDOW i200_w                    #蝯??恍
   CALL  cl_used(g_prog,g_time,2)          #閮?雿輻?? (?€?箔蝙?? #No:MOD-580088  HCN 20050818  #No.FUN-6A0074
         RETURNING g_time    #No.FUN-6A0074
END MAIN
FUNCTION i200_menu()
   WHILE TRUE
      CALL i200_bp("G")
      CASE g_action_choice
         WHEN "query" 
            IF cl_chk_act_auth() THEN
               CALL i200_q()
            END IF
         WHEN "detail" 
            IF cl_chk_act_auth() THEN
               LET g_account=FALSE #FUN-670032
               CALL i200_b()
            ELSE
               LET g_action_choice = NULL
            END IF
         WHEN "output"  
            IF cl_chk_act_auth() THEN
              CALL i200_out()
            END IF
         WHEN "help" 
            CALL cl_show_help()
         WHEN "exit" 
            EXIT WHILE
         WHEN "controlg"   
            CALL cl_cmdask()
         WHEN "exporttoexcel"      #FUN-4B0002
            IF cl_chk_act_auth() THEN
              CALL cl_export_to_excel(ui.Interface.getRootNode(),base.TypeInfo.create(g_pcb),'','')
            END IF
      END CASE
   END WHILE
END FUNCTION
FUNCTION i200_q()
   CALL i200_b_askkey()
END FUNCTION
FUNCTION i200_b()
DEFINE
    l_ac_t          LIKE type_file.num5,    #?芸?瘨?ARRAY CNT  #No.FUN-690026 SMALLINT
    l_n             LIKE type_file.num5,    #瑼X???? #No.FUN-690026 SMALLINT
    l_lock_sw       LIKE type_file.chr1,    #?株澈???? #No.FUN-690026 VARCHAR(1)
    p_cmd           LIKE type_file.chr1,    #???€?? #No.FUN-690026 VARCHAR(1)
    l_possible      LIKE type_file.num5,    #?其?閮剖??斗????賣€? #No.FUN-690026 SMALLINT
    l_dir1          LIKE type_file.chr1,    #No.FUN-690026 VARCHAR(1)
    l_recal_ima1    LIKE type_file.chr1,    #No:TQC-690046 add
    l_recal_ima2    LIKE type_file.chr1,    #No:TQC-690046 add
    l_buf           LIKE ze_file.ze03,      #No.FUN-690026 VARCHAR(80)
    l_allow_insert  LIKE type_file.chr1,    #?舀憓  #No.FUN-690026 VARCHAR(1)
    l_allow_delete  LIKE type_file.chr1,    #?臬?文  #No.FUN-690026 VARCHAR(1)
    l_cnt           LIKE type_file.num10,   #FUN-670032  #No.FUN-690026 INTEGER
    l_pcb           RECORD LIKE tc_pcb_file.*, #FUN-670035 add
    l_change        LIKE type_file.chr1     #FUN-670035 add  #No.FUN-690026 VARCHAR(1)
    IF s_shut(0) THEN RETURN END IF
    LET l_allow_insert = cl_detail_input_auth('insert')
    LET l_allow_delete = cl_detail_input_auth('delete')
    CALL cl_opmsg('b')
    LET g_action_choice = ""
    LET g_forupd_sql = " SELECT tc_pcb01,tc_pcb02,tc_pcb03,tc_pcb04,tc_pcbacti ", #FUN-670032 + #MOD-101220
                       " FROM tc_pcb_file ",
                       " WHERE tc_pcb01 = ? AND tc_pcb02 = ? AND tc_pcb03 = ? AND tc_pcb04 = ? FOR UPDATE NOWAIT "
    DECLARE i200_bcl CURSOR FROM g_forupd_sql      # LOCK CURSOR
    INPUT ARRAY g_pcb WITHOUT DEFAULTS FROM s_pcb.*
      ATTRIBUTE (COUNT=g_rec_b,MAXCOUNT=g_max_rec,UNBUFFERED,
                INSERT ROW=l_allow_insert,DELETE ROW=l_allow_delete,APPEND ROW=l_allow_insert)
        BEFORE INPUT
           IF g_rec_b != 0 THEN
              CALL fgl_set_arr_curr(l_ac)
           END IF
        BEFORE ROW
           LET p_cmd=''
           LET l_ac = ARR_CURR()
           LET l_lock_sw = 'N'            #DEFAULT
           LET l_n  = ARR_COUNT()
           IF g_rec_b>=l_ac THEN
              #No.FUN-570110 --start--         
              CALL i200_set_entry_b() #FUN-670032
              LET p_cmd = 'u'
              LET g_before_input_done = FALSE
              CALL i200_set_entry(p_cmd)                                                                             
              CALL i200_set_no_entry(p_cmd)                                                                                        
              LET g_before_input_done = TRUE                                                                                       
              #No.FUN-570110 --end--   
              BEGIN WORK
              LET p_cmd='u'
              LET g_pcb_t.* = g_pcb[l_ac].*  # BACKUP ?€?
              OPEN i200_bcl USING g_pcb_t.tc_pcb01,g_pcb_t.tc_pcb02,g_pcb_t.tc_pcb03,g_pcb_t.tc_pcb04
              
     IF STATUS THEN
                 CALL cl_err("OPEN i200_bcl:", STATUS, 1)
                 LET l_lock_sw = 'Y' 
              ELSE  
                 FETCH i200_bcl INTO g_pcb[l_ac].* 
                 IF SQLCA.sqlcode THEN
                    CALL cl_err(g_pcb_t.tc_pcb01,SQLCA.sqlcode,1)
                    LET l_lock_sw = "Y"
                 END IF
# LET g_imd[l_ac].gem02=s_costcenter_desc(g_imd[l_ac].imd16) #FUN-670063
              END IF
              CALL cl_show_fld_cont()     #FUN-550037(smin)
           END IF
        BEFORE INSERT
           LET l_n = ARR_COUNT()
           LET p_cmd='a'
           #No.FUN-570110 --start--                                                                                                            
           LET g_before_input_done = FALSE                                                                                      
           CALL i200_set_entry(p_cmd)                                                                                           
           CALL i200_set_no_entry(p_cmd)                                                                                        
           LET g_before_input_done = TRUE                                                                                       
           #No.FUN-570110 --end--   
           INITIALIZE g_pcb[l_ac].* TO NULL      #皜?怠?鞈?霈
           LET g_pcb[l_ac].tc_pcb01=''             #閮剖?????
           LET g_pcb[l_ac].tc_pcb02=''             #BugNo:6825
           LET g_pcb[l_ac].tc_pcb03=''             #BugNo:6825
   LET g_pcb[l_ac].tc_pcb04=''             #BugNo:6825
           LET g_pcb[l_ac].tc_pcbacti='Y'
           LET g_pcb_t.* = g_pcb[l_ac].*         #?啗撓?亥???
           CALL cl_show_fld_cont()     #FUN-550037(smin)
          
NEXT FIELD tc_pcb01
  AFTER FIELD tc_pcb01  #銝蝛箇
           IF cl_null(g_pcb[l_ac].tc_pcb01) THEN
              NEXT FIELD tc_pcb01
           END IF
  BEFORE FIELD tc_pcb02
           
   IF cl_null(g_pcb[l_ac].tc_pcb01) THEN
             CALL cl_set_comp_entry("tc_pcb02",FALSE) 
           END IF
           LET g_pcb_t.tc_pcb02 = g_pcb[l_ac].tc_pcb02
        AFTER FIELD tc_pcb02  #銝蝛箇
           IF cl_null(g_pcb[l_ac].tc_pcb02) THEN
               NEXT FIELD tc_pcb02
           END IF
BEFORE FIELD tc_pcb03
  IF cl_null(g_pcb[l_ac].tc_pcb02) THEN
             CALL cl_set_comp_entry("tc_pcb03",FALSE) 
           END IF
           LET g_pcb_t.tc_pcb03 = g_pcb[l_ac].tc_pcb03
        AFTER FIELD tc_pcb03  #銝蝛箇
           IF cl_null(g_pcb[l_ac].tc_pcb03) THEN
               NEXT FIELD tc_pcb03
           END IF
BEFORE FIELD tc_pcb04
  IF cl_null(g_pcb[l_ac].tc_pcb03) THEN
             CALL cl_set_comp_entry("tc_pcb04",FALSE) 
           END IF
           LET g_pcb_t.tc_pcb04 = g_pcb[l_ac].tc_pcb04
        AFTER FIELD tc_pcb04  #銝蝛箇
           IF cl_null(g_pcb[l_ac].tc_pcb04) THEN
               NEXT FIELD tc_pcb04
           END IF
        AFTER FIELD tc_pcbacti
           IF g_pcb[l_ac].tc_pcbacti NOT MATCHES '[YN]' THEN
               NEXT FIELD tc_pcbacti
           END IF
          #FUN-650128 add--start
           IF g_pcb[l_ac].tc_pcbacti = 'N' THEN
            #  CALL i200_check() RETURNING l_buf
    LET l_buf =''
              IF g_chr = 'E' THEN  #銝?寧?⊥?
                 CALL cl_err('','aim-125',0)
                 LET g_pcb[l_ac].tc_pcbacti = g_pcb_t.tc_pcbacti
                 DISPLAY BY NAME g_pcb[l_ac].tc_pcbacti
                 NEXT FIELD tc_pcbacti
              END IF
           END IF
          #FUN-650128 add--end
        BEFORE DELETE                            #?臬???株澈
           IF g_pcb_t.tc_pcb01 IS NOT NULL THEN
              IF NOT cl_delete() THEN
                 CANCEL DELETE
              END IF
             #瑼X甇斤?鞈?銋?皜豢?獢mf_file,img_file?臬撠雿輻銝?
              LET l_buf=''
              #CALL i200_check() RETURNING l_buf
              IF g_chr = 'E' THEN  #銵函內?⊥??芷甇斤?鞈?
                 ERROR l_buf
                 CANCEL DELETE
              END IF
              IF l_lock_sw = "Y" THEN 
                 CALL cl_err("", -263, 1) 
                 CANCEL DELETE 
              END IF 
              DELETE FROM tc_pcb_file 
               WHERE tc_pcb01 = g_pcb_t.tc_pcb01 AND tc_pcb02 = g_pcb_t.tc_pcb02 AND tc_pcb03 = g_pcb_t.tc_pcb03 AND tc_pcb04 = g_pcb_t.tc_pcb04
              IF SQLCA.sqlcode THEN
#                CALL cl_err(g_pcb_t.imd01,SQLCA.sqlcode,0)  #No.FUN-660156 MARK
                 CALL cl_err3("del","tc_pcb_file",g_pcb_t.tc_pcb01,"",SQLCA.sqlcode,"","",1)  #No:FUN-660156
                 ROLLBACK WORK
                 CANCEL DELETE
              END IF
             
              LET g_rec_b=g_rec_b-1
              DISPLAY g_rec_b TO FORMONLY.cn2  
              COMMIT WORK
           END IF
        #AFTER DELETE
        #  LET l_n = ARR_COUNT()
        #  INITIALIZE g_pcb[l_n+1].* TO NULL
        #  LET l_jump = 1
        ON ROW CHANGE
           IF INT_FLAG THEN                 #900423
              CALL cl_err('',9001,0)
              LET INT_FLAG = 0
              LET g_pcb[l_ac].* = g_pcb_t.*
              CLOSE i200_bcl
              ROLLBACK WORK
              EXIT INPUT
           END IF
           IF l_lock_sw = 'Y' THEN
              CALL cl_err(g_pcb[l_ac].tc_pcb01,-263,1)
              LET g_pcb[l_ac].* = g_pcb_t.*
           ELSE
              UPDATE tc_pcb_file 
                   SET tc_pcb01   = g_pcb[l_ac].tc_pcb01,
                       tc_pcb02   = g_pcb[l_ac].tc_pcb02,
                       tc_pcb03   = g_pcb[l_ac].tc_pcb03,
                       tc_pcb04   = g_pcb[l_ac].tc_pcb04,                     
                       tc_pcbacti = g_pcb[l_ac].tc_pcbacti,
                       tc_pcbuser = g_user,
                       tc_pcbdate = g_today
               WHERE tc_pcb01 = g_pcb_t.tc_pcb01 AND tc_pcb02 = g_pcb_t.tc_pcb02
AND  tc_pcb03 = g_pcb_t.tc_pcb03 AND tc_pcb04 = g_pcb_t.tc_pcb04
              IF SQLCA.sqlcode THEN
#                 CALL cl_err(g_pcb[l_ac].tc_pcb01,SQLCA.sqlcode,0) #No.FUN-660156 MARK
                  CALL cl_err3("upd","tc_pcb_file",g_pcb_t.tc_pcb01,"",SQLCA.sqlcode,"","",1)  #No:FUN-660156
                  LET g_pcb[l_ac].* = g_pcb_t.*
                  ROLLBACK WORK
              ELSE
                  MESSAGE 'UPDATE O.K'
                  COMMIT WORK
      
              END IF
           END IF
        AFTER ROW
           LET l_ac = ARR_CURR()
           IF INT_FLAG THEN                 #900423
              CALL cl_err('',9001,0)
              LET INT_FLAG = 0
              IF p_cmd='u' THEN
                 LET g_pcb[l_ac].* = g_pcb_t.*
              END IF
              CLOSE i200_bcl
              ROLLBACK WORK
              EXIT INPUT
           END IF
           LET l_ac_t = l_ac
           CLOSE i200_bcl
           COMMIT WORK
        AFTER INSERT
           IF INT_FLAG THEN                 #900423
              CALL cl_err('',9001,0)
              LET INT_FLAG = 0
              CLOSE i200_bcl
              CANCEL INSERT
           END IF
           INSERT INTO tc_pcb_file(tc_pcb01,tc_pcb02,tc_pcb03,tc_pcb04,tc_pcbacti,tc_pcbuser,tc_pcbdate) #FUN-670032 #MOD-101220
             VALUES(g_pcb[l_ac].tc_pcb01,g_pcb[l_ac].tc_pcb02,g_pcb[l_ac].tc_pcb03,
                    g_pcb[l_ac].tc_pcb04,g_pcb[l_ac].tc_pcbacti,g_user,g_today) #MOD-101220
           IF SQLCA.sqlcode THEN
              CALL cl_err3("ins","tc_pcb_file",g_pcb[l_ac].tc_pcb01,"",SQLCA.sqlcode,"","",1)  #No:FUN-660156
              CANCEL INSERT
           ELSE
              MESSAGE 'INSERT O.K'
              #CALL i200_ins()
              LET g_rec_b = g_rec_b + 1
              DISPLAY g_rec_b TO FORMONLY.cn2  
           END IF
        ON ACTION CONTROLO                        #瘝輻?€??雿?
           IF INFIELD(tc_pcb01) AND l_ac > 1 THEN
              LET g_pcb[l_ac].* = g_pcb[l_ac-1].*
              NEXT FIELD tc_pcb01
           END IF
            
        ON ACTION CONTROLZ
           CALL cl_show_req_fields()
        ON ACTION CONTROLG
           CALL cl_cmdask()
        ON ACTION CONTROLF
           CALL cl_set_focus_form(ui.Interface.getRootNode()) RETURNING g_fld_name,g_frm_name #Add on 040913
           CALL cl_fldhelp(g_frm_name,g_fld_name,g_lang) #Add on 040913
          
        ON IDLE g_idle_seconds
           CALL cl_on_idle()
           CONTINUE INPUT
 
        ON ACTION about         #MOD-4C0121
           CALL cl_about()      #MOD-4C0121
 
        ON ACTION help          #MOD-4C0121
           CALL cl_show_help()  #MOD-4C0121
 
    END INPUT
    CLOSE i200_bcl
    COMMIT WORK
    
     OPTIONS
        INSERT KEY F1,
        DELETE KEY F2
END FUNCTION
FUNCTION i200_b_askkey()
    CLEAR FORM
    CALL g_pcb.clear()
    CONSTRUCT g_wc2 ON tc_pcb01,tc_pcb02,tc_pcb03,tc_pcb04,tc_pcbacti  #FUN-670032 #MOD-101220
            FROM s_pcb[1].tc_pcb01,s_pcb[1].tc_pcb02,
                 s_pcb[1].tc_pcb03,s_pcb[1].tc_pcb04,
 s_pcb[1].tc_pcbacti   #FUN-670032 #MOD-101220
              #No:FUN-580031 --start--     HCN
              BEFORE CONSTRUCT
                 CALL cl_qbe_init()
              #No:FUN-580031 --end--       HCN
    
       ON IDLE g_idle_seconds
          CALL cl_on_idle()
          CONTINUE CONSTRUCT
 
      ON ACTION about         #MOD-4C0121
         CALL cl_about()      #MOD-4C0121
 
      ON ACTION help          #MOD-4C0121
         CALL cl_show_help()  #MOD-4C0121
 
      ON ACTION controlg      #MOD-4C0121
         CALL cl_cmdask()     #MOD-4C0121
 
    
#No:FUN-580031 --start--     HCN
                 ON ACTION qbe_select
             CALL cl_qbe_select() 
                 ON ACTION qbe_save
   CALL cl_qbe_save()
#No:FUN-580031 --end--       HCN
    END CONSTRUCT
#No.TQC-710076 -- begin --
#    IF INT_FLAG THEN LET INT_FLAG = 0 RETURN END IF
   IF INT_FLAG THEN
      LET INT_FLAG = 0
      LET g_wc2 = NULL
      RETURN
   END IF
#No.TQC-710076 -- end --
    CALL i200_b_fill(g_wc2)
END FUNCTION
FUNCTION i200_b_fill(p_wc2)              #BODY FILL UP
DEFINE
    p_wc2           LIKE type_file.chr1000 #No.FUN-690026 VARCHAR(200)
    LET g_sql = " SELECT tc_pcb01,tc_pcb02,tc_pcb03,tc_pcb04,tc_pcbacti ",  #FUN-670032
                " FROM tc_pcb_file",
                " WHERE ", p_wc2 CLIPPED,                     #?株澈
                " ORDER BY 1"
    
    PREPARE i200_pb FROM g_sql
    DECLARE pcb_curs CURSOR FOR i200_pb
    CALL g_pcb.clear()
    
    LET g_cnt = 1
    
    MESSAGE "Searching!"
    
    FOREACH pcb_curs INTO g_pcb[g_cnt].*   #?株澈 ARRAY 憛怠?
       IF STATUS THEN CALL cl_err('foreach:',STATUS,1) EXIT FOREACH END IF
       #CALL i200_get_gem02(g_pcb[g_cnt].imd16)
       #   RETURNING g_pcb[g_cnt].gem02  #FUN-670032
       LET g_cnt = g_cnt + 1
       IF g_cnt > g_max_rec THEN
          CALL cl_err( '', 9035, 0 )
          EXIT FOREACH
       END IF
    END FOREACH
    MESSAGE ""
    CALL g_pcb.deleteElement(g_cnt)
    LET g_rec_b = g_cnt-1
    DISPLAY g_rec_b TO FORMONLY.cn2  
    LET g_cnt = 0
END FUNCTION
FUNCTION i200_bp(p_ud)
   DEFINE   p_ud   LIKE type_file.chr1    #No.FUN-690026 VARCHAR(1)
   IF p_ud <> "G" OR g_action_choice = "detail" THEN
      RETURN
   END IF
   LET g_action_choice = " "
   CALL cl_set_act_visible("accept,cancel", FALSE)
   DISPLAY ARRAY g_pcb TO s_pcb.* ATTRIBUTE(COUNT=g_rec_b)
      #FUN-680048
      BEFORE DISPLAY
        #IF g_sma.sma901!='Y' THEN
        #   CALL cl_set_act_visible("aps_related_data",FALSE)
        #END IF
        IF g_flag = 'Y' THEN
           CALL fgl_set_arr_curr(l_ac)
           LET g_flag = 'N'
        END IF
      #FUN-680048
      BEFORE ROW
         LET l_ac = ARR_CURR()
         CALL cl_show_fld_cont()                   #No:FUN-550037 hmf
      ON ACTION query
         LET g_action_choice="query"
         EXIT DISPLAY
      ON ACTION detail
         LET g_action_choice="detail"
         LET l_ac = 1
         EXIT DISPLAY
      ON ACTION output
         LET g_action_choice="output"
         EXIT DISPLAY
      #FUN-670032...............begin
      ON ACTION account
         LET g_action_choice="account"
         EXIT DISPLAY
      #FUN-670032...............end
   
      ON ACTION help
         LET g_action_choice="help"
         EXIT DISPLAY
      ON ACTION locale
         CALL cl_dynamic_locale()
          CALL cl_show_fld_cont()                   #No:FUN-550037 hmf
      ON ACTION exit
         LET g_action_choice="exit"
         EXIT DISPLAY
      ON ACTION controlg
         LET g_action_choice="controlg"
         EXIT DISPLAY
      ON ACTION accept
         LET g_action_choice="detail"
         LET l_ac = ARR_CURR()
         EXIT DISPLAY
      ON ACTION cancel
         LET INT_FLAG=FALSE  #MOD-570244 mars
         LET g_action_choice="exit"
         EXIT DISPLAY
      ON ACTION exporttoexcel #FUN-4B0002
         LET g_action_choice = 'exporttoexcel'
         EXIT DISPLAY
      ON IDLE g_idle_seconds
         CALL cl_on_idle()
         CONTINUE DISPLAY
 
      ON ACTION about         #MOD-4C0121
         CALL cl_about()      #MOD-4C0121
      # No:FUN-530067 --start--
      AFTER DISPLAY
         CONTINUE DISPLAY
      # No:FUN-530067 ---end---
 
      #FUN-680048
     # ON ACTION aps_related_data
     #    LET g_action_choice="aps_related_data"
     #    LET g_flag = 'Y'
     #    EXIT DISPLAY
      #FUN-680048
   END DISPLAY
   CALL cl_set_act_visible("accept,cancel", TRUE)
END FUNCTION
FUNCTION i200_out()
    DEFINE
        sr              RECORD
                        tc_pcb01   LIKE  tc_pcb_file.tc_pcb01,
                        tc_pcb02   LIKE  tc_pcb_file.tc_pcb02,
                        tc_pcb03   LIKE  tc_pcb_file.tc_pcb03,
                        tc_pcb04   LIKE  tc_pcb_file.tc_pcb04,
                        tc_pcbacti  LIKE tc_pcb_file.tc_pcbacti
                        END RECORD,
        l_i             LIKE type_file.num5,          #No.FUN-690026 SMALLINT
        l_name          LIKE type_file.chr20,         # External(Disk) file name  #No.FUN-690026 VARCHAR(20)
        l_za05          LIKE za_file.za05,            #No.FUN-690026 VARCHAR(40)
        l_chr           LIKE type_file.chr1           #No.FUN-690026 VARCHAR(1)
  DEFINE    l_cmd       LIKE type_file.chr1000        #NO.FUN-810099
    IF cl_null(g_wc2) THEN
       CALL cl_err("","9057",0)
       RETURN
    END IF
    LET l_cmd = ' p_query "cimi200" "',g_wc2 CLIPPED,'"'                                   
    CALL cl_cmdrun(l_cmd)                                                                  
    RETURN
END FUNCTION
#No.FUN-570110 --start--                                                                                                            
FUNCTION i200_set_entry(p_cmd)                                                                                                      
  DEFINE p_cmd   LIKE type_file.chr1                                                                                                               
   IF p_cmd = 'a' AND ( NOT g_before_input_done ) THEN                                                                              
     CALL cl_set_comp_entry("tc_pcb01",TRUE)                                                                                           
   END IF                                                                                                                           
END FUNCTION                                                                                                                        
                                                                                                                                    
FUNCTION i200_set_no_entry(p_cmd)                                                                                                   
  DEFINE p_cmd   LIKE type_file.chr1                                                                                                               
   IF p_cmd = 'u' AND ( NOT g_before_input_done ) AND g_chkey='N' THEN                                                              
     CALL cl_set_comp_entry("tc_pcb01",FALSE)                                                                                          
   END IF                                                                                                                           
END FUNCTION                                                                                                                        
FUNCTION i200_acc()
   LET g_account=TRUE
   CALL i200_b()
   LET g_account=FALSE
END FUNCTION
FUNCTION i200_set_entry_b()
   CASE g_account
      WHEN TRUE
         CALL cl_set_comp_entry("tc_pcb01,tc_pcb02,tc_pcb03,tc_pcb04,tc_pcbacti",FALSE)
         #CALL cl_set_comp_entry("imd16",TRUE)
      OTHERWISE
         CALL cl_set_comp_entry("tc_pcb01,tc_pcb02,tc_pcb03,tc_pcb04,tc_pcbacti",TRUE)
        # CALL cl_set_comp_entry("imd16",FALSE)
   END CASE
END FUNCTION

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 jeffreyhu 的頭像
    jeffreyhu

    傑佛瑞Blog TIPTOP ERP+ EasyFlow (BPM) + BI 系統整合開發經驗分享

    jeffreyhu 發表在 痞客邦 留言(0) 人氣()