FUNCTION i901_z()

   IF g_votea.tc_votea01 IS NULL THEN RETURN END IF

    SELECT * INTO g_votea.* FROM tc_votea_file WHERE tc_votea01=g_votea.tc_votea01

   IF g_votea.tc_voteaconf='X' THEN CALL cl_err(g_votea.tc_voteaconf,'9024',0) RETURN END IF

   IF g_votea.tc_voteaconf='N' THEN RETURN END IF

   IF NOT cl_confirm('axm-109') THEN RETURN END IF

   BEGIN WORK

   OPEN i901_cl USING g_votea_rowid

   #--Add exception check during OPEN CURSOR

   IF STATUS THEN

      CALL cl_err("OPEN i255_cl:", STATUS, 1)

      CLOSE i901_cl

      ROLLBACK WORK

      RETURN

   END IF

   FETCH i901_cl INTO g_votea.*               # 鎖住將被更改或取消的資料

   

   IF SQLCA.SQLCODE THEN

      CALL cl_err(g_votea.tc_votea01,SQLCA.SQLCODE,0)          #資料被他人LOCK

      ROLLBACK WORK

      RETURN

   END IF

   LET g_success = 'Y'

   LET g_votea.tc_votea03 = 'U'

    UPDATE tc_votea_file SET tc_voteaconf='N',tc_votea03  = g_votea.tc_votea03

    WHERE tc_votea01 = g_votea.tc_votea01

 

   IF SQLCA.sqlcode OR SQLCA.sqlerrd[3]=0 THEN

      CALL cl_err3("upd","tc_votea_file",g_votea.tc_votea01,"","apm-266","","upd tc_votea_file",1)  #No.FUN-660129

      LET g_success='N'

   END IF

 

   IF g_success = 'Y' THEN

      LET g_votea.tc_voteaconf='N'

      COMMIT WORK

      DISPLAY BY NAME g_votea.tc_voteaconf

      DISPLAY BY NAME g_votea.tc_votea03

   ELSE

      LET g_votea.tc_voteaconf='Y'

      DISPLAY BY NAME g_votea.tc_voteaconf

      DISPLAY BY NAME g_votea.tc_votea03

      ROLLBACK WORK

   END IF

   

   IF g_votea.tc_voteaconf='X' THEN LET g_chr='Y'  ELSE LET g_chr='N' END IF  #No.MOD-480339

   IF g_votea.tc_votea03='R'   THEN LET g_chr2='Y' ELSE LET g_chr2='N' END IF

   CALL cl_set_field_pic(g_votea.tc_voteaconf,g_chr2,"","",g_chr,"")             #No.MOD-480339

   ### END  No.MOD-4A0344

END FUNCTION

FUNCTION i901_x()

   IF s_shut(0) THEN

      RETURN

   END IF

   IF g_votea.tc_votea01 IS NULL THEN

      CALL cl_err("",-400,0)

      RETURN

   END IF

   BEGIN WORK

   OPEN i901_cl USING g_votea_rowid

   IF STATUS THEN

      CALL cl_err("OPEN i901_cl:", STATUS, 1)

      CLOSE i901_cl

      ROLLBACK WORK

      RETURN

   END IF

   FETCH i901_cl INTO g_votea.*               # 鎖住將被更改或取消的資料

   IF SQLCA.sqlcode THEN

      CALL cl_err(g_votea.tc_votea01,SQLCA.sqlcode,0)          #資料被他人LOCK

      ROLLBACK WORK

      RETURN

   END IF

   LET g_success = 'Y'

   CALL i901_show()

   IF cl_exp(0,0,g_votea.tc_voteaacti) THEN                   #確認一下

      LET g_chr=g_votea.tc_voteaacti

      IF g_votea.tc_voteaacti = 'Y' THEN

         LET g_votea.tc_voteaacti = 'N'

         LET g_votea.tc_voteaconf='X'

      ELSE

         LET g_votea.tc_voteaacti = 'Y'

 LET g_votea.tc_voteaconf='N'

      END IF

      UPDATE tc_votea_file SET tc_voteaacti = g_votea.tc_voteaacti,tc_voteamodu=g_user,tc_voteadate=g_today,tc_voteaconf = g_votea.tc_voteaconf

      WHERE tc_votea01 = g_votea.tc_votea01

      IF SQLCA.sqlcode OR SQLCA.SQLERRD[3]=0 THEN

         CALL cl_err3("upd","t_votea_file",g_votea.tc_votea01,"",SQLCA.sqlcode,"","",1)  #No.FUN-660129

         LET g_votea.tc_voteaacti = g_chr

         LET g_success='N'

      END IF

   END IF

   CLOSE i901_cl

   IF g_success = 'Y' THEN

      COMMIT WORK

      DISPLAY BY NAME g_votea.tc_voteaconf

      DISPLAY BY NAME g_votea.tc_votea03

   ELSE

      LET g_votea.tc_voteaconf = g_votea_t.tc_voteaconf

      LET g_votea.tc_votea03   = g_votea_t.tc_votea03

      DISPLAY BY NAME g_votea.tc_voteaconf

      DISPLAY BY NAME g_votea.tc_votea03

      ROLLBACK WORK

   END IF

   SELECT tc_voteaacti,tc_voteamodu,tc_voteadate,tc_voteaconf

     INTO g_votea.tc_voteaacti,g_votea.tc_voteamodu,g_votea.tc_voteadate,g_votea.tc_voteaconf FROM tc_votea_file

    WHERE tc_votea01 = g_votea.tc_votea01

   DISPLAY BY NAME g_votea.tc_voteaacti,g_votea.tc_voteamodu,g_votea.tc_voteadate,g_votea.tc_voteaconf

 

   IF g_votea.tc_voteaconf ='X' THEN LET g_chr='Y'  ELSE LET g_chr='N'  END IF

   IF g_votea.tc_votea03 ='R'   THEN LET g_chr2='Y' ELSE LET g_chr2='N' END IF

   CALL cl_set_field_pic(g_votea.tc_voteaconf,g_chr2,"","",g_chr,"")             #No.MOD-480339

END FUNCTION

FUNCTION i901_r()

   IF s_shut(0) THEN

      RETURN

   END IF

   IF g_votea.tc_votea01 IS NULL THEN

      CALL cl_err("",-400,0)

      RETURN

   END IF

   SELECT * INTO g_votea.* FROM tc_votea_file

    WHERE tc_votea01 = g_votea.tc_votea01

  #FUN-730060  --begin--------

  #IF g_votea.tc_voteaacti ='N' THEN    #檢查資料是否為無效

  #   CALL cl_err(g_votea.tc_votea01,'mfg1000',0)

  #   RETURN

  #END IF

  #FUN-730060  --end----------

   BEGIN WORK

   OPEN i901_cl USING g_votea_rowid

   IF STATUS THEN

      CALL cl_err("OPEN i901_cl:", STATUS, 1)

      CLOSE i901_cl

      ROLLBACK WORK

      RETURN

   END IF

   FETCH i901_cl INTO g_votea.*               # 鎖住將被更改或取消的資料

   IF SQLCA.sqlcode THEN

      CALL cl_err(g_votea.tc_votea01,SQLCA.sqlcode,0)          #資料被他人LOCK

      ROLLBACK WORK

      RETURN

   END IF

   CALL i901_show()

   IF cl_delh(0,0) THEN                   #確認一下

      DELETE FROM tc_votea_file WHERE tc_votea01 = g_votea.tc_votea01

      DELETE FROM tc_voteb_file WHERE tc_voteb01 = g_votea.tc_votea01

      CLEAR FORM

      CALL g_voteb.clear()

      OPEN i901_count

      FETCH i901_count INTO g_row_count

      DISPLAY g_row_count TO FORMONLY.cnt

      OPEN i901_cs

      IF g_curs_index = g_row_count + 1 THEN

         LET g_jump = g_row_count

         CALL i901_fetch('L')

      ELSE

         LET g_jump = g_curs_index

         LET mi_no_ask = TRUE      #No:FUN-6A0067

         CALL i901_fetch('/')

      END IF

   END IF

   CLOSE i901_cl

   COMMIT WORK

END FUNCTION

#單身

FUNCTION i901_b()

DEFINE

    l_ac_t          LIKE type_file.num5,                #未取消的ARRAY CNT  #No.FUN-680136 SMALLINT

    l_n             LIKE type_file.num5,                #檢查重複用  #No.FUN-680136 SMALLINT

    l_cnt           LIKE type_file.num5,                #檢查重複用  #No.FUN-680136 SMALLINT

    l_lock_sw       LIKE type_file.chr1,                #單身鎖住否  #No.FUN-680136 VARCHAR(1)

    p_cmd           LIKE type_file.chr1,                #處理狀態  #No.FUN-680136 VARCHAR(1)

    l_misc          LIKE gef_file.gef01,                #No.FUN-680136 VARCHAR(04)

    l_allow_insert  LIKE type_file.num5,                #可新增否  #No.FUN-680136 SMALLINT

    l_allow_delete  LIKE type_file.num5                 #可刪除否  #No.FUN-680136 SMALLINT

    LET g_action_choice = ""

    IF s_shut(0) THEN

       RETURN

    END IF

    IF g_votea.tc_votea01 IS NULL THEN

       RETURN

    END IF

    SELECT * INTO g_votea.* FROM tc_votea_file

     WHERE tc_votea01=g_votea.tc_votea01

    IF g_votea.tc_voteaacti ='N' THEN    #檢查資料是否為無效

     CALL cl_err(g_votea.tc_votea01,'mfg1000',0)

     RETURN

    END IF

    IF g_votea.tc_voteaconf ='X' THEN    #檢查資料是否為作廢

      CALL cl_err(g_votea.tc_voteaconf,'9024',0)

     RETURN

    END IF

    CALL cl_opmsg('b')

    LET g_forupd_sql = " SELECT tc_voteb02,tc_voteb03,tc_voteb04,tc_votebacti,tc_votebuser,tc_votebmodu,tc_votebdate",

                       " FROM tc_voteb_file",

                       " WHERE tc_voteb01 = ? AND tc_voteb02 = ? FOR UPDATE NOWAIT "

    DECLARE i901_bcl CURSOR FROM g_forupd_sql      # LOCK CURSOR

    LET l_allow_insert = cl_detail_input_auth("insert")

    LET l_allow_delete = cl_detail_input_auth("delete")

    INPUT ARRAY g_voteb WITHOUT DEFAULTS FROM s_voteb.*

          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

           DISPLAY "BEFORE INPUT!"

           IF g_rec_b != 0 THEN

              CALL fgl_set_arr_curr(l_ac)

           END IF

        BEFORE ROW

           DISPLAY "BEFORE ROW!"

           LET p_cmd = ''

           LET l_ac = ARR_CURR()

           LET l_lock_sw = 'N'            #DEFAULT

           LET l_n  = ARR_COUNT()

           BEGIN WORK

           OPEN i901_cl USING g_votea_rowid

           IF STATUS THEN

              CALL cl_err("OPEN i901_cl:", STATUS, 1)

              CLOSE i901_cl

              ROLLBACK WORK

              RETURN

           END IF

           FETCH i901_cl INTO g_votea.*            # 鎖住將被更改或取消的資料

           IF SQLCA.sqlcode THEN

              CALL cl_err(g_votea.tc_votea01,SQLCA.sqlcode,0)      # 資料被他人LOCK

              CLOSE i901_cl

              ROLLBACK WORK

              RETURN

           END IF

           IF g_rec_b >= l_ac THEN

              LET p_cmd='u'

              LET g_voteb_t.* = g_voteb[l_ac].*  #BACKUP

              LET g_voteb_o.* = g_voteb[l_ac].*  #BACKUP

              OPEN i901_bcl USING g_votea.tc_votea01,g_voteb_t.tc_voteb02

              IF STATUS THEN

                 CALL cl_err("OPEN i901_bcl:", STATUS, 1)

                 LET l_lock_sw = "Y"

              ELSE

                 FETCH i901_bcl INTO g_voteb[l_ac].*

                 IF SQLCA.sqlcode THEN

                    CALL cl_err(g_voteb_t.tc_voteb02,SQLCA.sqlcode,1)

                    LET l_lock_sw = "Y"

                 END IF

              END IF

              CALL cl_show_fld_cont()     #FUN-550037(smin)

              CALL i901_set_entry_b(p_cmd)    #No.FUN-610018

              CALL i901_set_no_entry_b(p_cmd) #No.FUN-610018

           END IF

        BEFORE INSERT

           DISPLAY "BEFORE INSERT!"

           LET l_n = ARR_COUNT()

           LET p_cmd='a'

           

           INITIALIZE g_voteb[l_ac].* TO NULL     

           LET g_voteb[l_ac].tc_voteb03 = ''           #Body default

           LET g_voteb[l_ac].tc_voteb04 = ''           #Body default

           LET g_voteb[l_ac].tc_votebacti = 'Y'           #Body default

           LET g_voteb[l_ac].tc_votebuser = g_user           #Body default

           LET g_voteb[l_ac].tc_votebmodu = g_user           #Body default

           LET g_voteb[l_ac].tc_votebdate = g_today           #Body default

           LET g_voteb_t.* = g_voteb[l_ac].*         #新輸入資料

           LET g_voteb_o.* = g_voteb[l_ac].*         #新輸入資料

           IF l_ac > 1 THEN # 修改日期初始值

              LET g_voteb[l_ac].tc_votebdate = g_voteb[l_ac-1].tc_votebdate

           ELSE

              LET g_voteb[l_ac].tc_votebdate = g_votea.tc_voteadate

           END IF

           CALL cl_show_fld_cont()         #FUN-550037(smin)

           CALL i901_set_entry_b(p_cmd)    #No.FUN-610018

           CALL i901_set_no_entry_b(p_cmd) #No.FUN-610018

           

        NEXT FIELD tc_voteb02 # 開始進入單身輸入欄位

        AFTER INSERT

           DISPLAY "AFTER INSERT!"

           IF INT_FLAG THEN

              CALL cl_err('',9001,0)

              LET INT_FLAG = 0

              CANCEL INSERT

           END IF

          #-----No:FUN-670099-----

          # IF cl_null(g_voteb[l_ac].voteb03) THEN

          #    LET g_voteb[l_ac].voteb03 = " "

          # END IF

          #-----No:FUN-670099 END-----

           INSERT INTO tc_voteb_file(tc_voteb01,tc_voteb02,tc_voteb03,tc_voteb04,tc_votebacti,tc_votebuser,tc_votebmodu,tc_votebdate)  

           VALUES(g_votea.tc_votea01,g_voteb[l_ac].tc_voteb02,g_voteb[l_ac].tc_voteb03,g_voteb[l_ac].tc_voteb04,

                  g_voteb[l_ac].tc_votebacti,g_voteb[l_ac].tc_votebuser,g_voteb[l_ac].tc_votebmodu,g_voteb[l_ac].tc_votebdate)

           IF SQLCA.sqlcode THEN

              CALL cl_err3("ins","tc_voteb_file",g_votea.tc_votea01,g_voteb[l_ac].tc_voteb02,SQLCA.sqlcode,"","",1)  #No.FUN-660129

              CANCEL INSERT

           ELSE

              MESSAGE 'INSERT O.K'

              COMMIT WORK

              LET g_rec_b=g_rec_b+1

              DISPLAY g_rec_b TO FORMONLY.cn2

           END IF

        BEFORE FIELD tc_voteb02                       #default 序號

           IF g_voteb[l_ac].tc_voteb02 IS NULL OR g_voteb[l_ac].tc_voteb02 = 0 THEN

             

                SELECT MAX(tc_voteb02)+1

                INTO g_voteb[l_ac].tc_voteb02

                FROM tc_voteb_file

               WHERE tc_voteb01 = g_votea.tc_votea01

              IF g_voteb[l_ac].tc_voteb02 IS NULL THEN

                 LET g_voteb[l_ac].tc_voteb02 = 1

              END IF

           END IF

        AFTER FIELD tc_voteb02                        #check 序號是否重複

           IF NOT cl_null(g_voteb[l_ac].tc_voteb02 ) THEN

              IF g_voteb[l_ac].tc_voteb02  != g_voteb_t.tc_voteb02 

                 OR g_voteb_t.tc_voteb02  IS NULL THEN

                 SELECT count(*)

                   INTO l_n

                   FROM tc_voteb_file

                  WHERE tc_voteb01 = g_votea.tc_votea01

                    AND tc_voteb02 = g_voteb[l_ac].tc_voteb02 

                 IF l_n > 0 THEN

                    CALL cl_err('',-239,0)

                    LET g_voteb[l_ac].tc_voteb02 = g_voteb_t.tc_voteb02 

                    NEXT FIELD tc_voteb02 

                 END IF

              END IF

           END IF

    #FUN-650191 --begin--begin

      AFTER FIELD tc_voteb03                      #廠商編號

         IF cl_null(g_voteb[l_ac].tc_voteb03) THEN    

                  NEXT FIELD tc_voteb03 

         END IF

            LET g_voteb_o.tc_voteb03  = g_voteb[l_ac].tc_voteb03 

         

    #FUN-650191 --add--end

        BEFORE FIELD tc_voteb04

           CALL i901_set_entry_b(p_cmd)

 

        AFTER FIELD tc_voteb04                

           IF cl_null(g_voteb[l_ac].tc_voteb03) THEN  

                 NEXT FIELD tc_voteb03  

           END IF

           LET g_voteb_o.tc_voteb04 = g_voteb[l_ac].tc_voteb04  

              

         AFTER FIELD tc_votebacti    #保稅否

            IF g_voteb[l_ac].tc_votebacti NOT MATCHES '[YyNn]' THEN

               NEXT FIELD tc_votebacti

            END IF

            LET g_voteb_o.tc_voteb03 = g_voteb[l_ac].tc_votebacti

CALL i901_set_no_entry_b(p_cmd)

        BEFORE DELETE                      #是否取消單身

           DISPLAY "BEFORE DELETE"

           IF g_voteb_t.tc_voteb02 > 0 AND g_voteb_t.tc_voteb02 IS NOT NULL THEN

              IF NOT cl_delb(0,0) THEN

                 CANCEL DELETE

              END IF

              IF l_lock_sw = "Y" THEN

                 CALL cl_err("", -263, 1)

                 CANCEL DELETE

              END IF

              DELETE FROM tc_voteb_file

               WHERE tc_voteb01 = g_votea.tc_votea01

                 AND tc_voteb02 = g_voteb_t.tc_voteb02

              IF SQLCA.sqlcode THEN

                 CALL cl_err3("del","tc_voteb_file",g_votea.tc_votea01,g_voteb_t.tc_voteb02,SQLCA.sqlcode,"","",1)  #No.FUN-660129

                 ROLLBACK WORK

                 CANCEL DELETE

              END IF

              LET g_rec_b=g_rec_b-1

              DISPLAY g_rec_b TO FORMONLY.cn2

           END IF

           COMMIT WORK

        ON ROW CHANGE

           IF INT_FLAG THEN

              CALL cl_err('',9001,0)

              LET INT_FLAG = 0

              LET g_voteb[l_ac].* = g_voteb_t.*

              CLOSE i901_bcl

              ROLLBACK WORK

              EXIT INPUT

           END IF

           IF l_lock_sw = 'Y' THEN

              CALL cl_err(g_voteb[l_ac].tc_voteb02,-263,1)

              LET g_voteb[l_ac].* = g_voteb_t.*

           ELSE

              #-----No:FUN-670099-----

             # IF cl_null(g_voteb[l_ac].pmx10) THEN

             #    LET g_voteb[l_ac].pmx10 = " "

             # END IF

              #-----No:FUN-670099 END-----

              UPDATE tc_voteb_file SET 

tc_voteb02=g_voteb[l_ac].tc_voteb02,

tc_voteb03=g_voteb[l_ac].tc_voteb03,

tc_voteb04=g_voteb[l_ac].tc_voteb04,

tc_votebacti=g_voteb[l_ac].tc_votebacti,

tc_votebuser=g_voteb[l_ac].tc_votebuser,

tc_votebmodu=g_voteb[l_ac].tc_votebmodu,

tc_votebdate=g_voteb[l_ac].tc_votebdate

               WHERE tc_voteb01=g_votea.tc_votea01

                 AND tc_voteb02=g_voteb_t.tc_voteb02

              IF SQLCA.sqlcode OR SQLCA.sqlerrd[3] = 0 THEN

                 CALL cl_err3("upd","tc_voteb_file",g_votea.tc_votea01,g_voteb_t.tc_voteb02,SQLCA.sqlcode,"","",1)  #No.FUN-660129

                 LET g_voteb[l_ac].* = g_voteb_t.*

              ELSE

                 MESSAGE 'UPDATE O.K'

                 COMMIT WORK

              END IF

           END IF

        AFTER ROW

           DISPLAY  "AFTER ROW!!"

           LET l_ac = ARR_CURR()

           LET l_ac_t = l_ac

           IF INT_FLAG THEN

              CALL cl_err('',9001,0)

              LET INT_FLAG = 0

              IF p_cmd = 'u' THEN

                 LET g_voteb[l_ac].* = g_voteb_t.*

              END IF

              CLOSE i901_bcl

              ROLLBACK WORK

              EXIT INPUT

           END IF

           CLOSE i901_bcl

           COMMIT WORK

        ON ACTION CONTROLO                        #沿用所有欄位

           IF INFIELD(pmx02) AND l_ac > 1 THEN

              LET g_voteb[l_ac].* = g_voteb[l_ac-1].*

              LET g_voteb[l_ac].tc_voteb02 = g_rec_b + 1

              NEXT FIELD tc_voteb02

           END IF

        ON ACTION CONTROLZ

           CALL cl_show_req_fields()

        ON ACTION CONTROLG

           CALL cl_cmdask()

        ON ACTION controlp

        {   CASE

           #FUN-650191 add--begin

             WHEN INFIELD(tc_voteb03) 

               CALL cl_init_qry_var()

               LET g_qryparam.form ="q_voteb" #MOD-530533

               LET g_qryparam.default1 = g_voteb[l_ac].tc_voteb03

               CALL cl_create_qry() RETURNING g_voteb[l_ac].tc_voteb03

               DISPLAY BY NAME g_voteb[l_ac].tc_voteb03

               NEXT FIELD tc_voteb03

               OTHERWISE EXIT CASE

            END CASE

       }

      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

 

      ON ACTION controls                           #No.FUN-6B0032             

         CALL cl_set_head_visible("","AUTO")       #No.FUN-6B0032

    END INPUT

   #start FUN-5B0136

    LET g_votea.tc_voteamodu = g_user

    LET g_votea.tc_voteadate = g_today

    UPDATE tc_votea_file SET tc_voteamodu = g_votea.tc_voteamodu,tc_voteadate = g_votea.tc_voteadate

     WHERE tc_votea01 = g_pmw.tc_votea01

    DISPLAY BY NAME g_votea.tc_voteamodu,g_votea.tc_voteadate

   #end FUN-5B0136

    CLOSE i901_bcl

    COMMIT WORK

    CALL i901_delall()

END FUNCTION

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

 
FUNCTION i901_tc_votea01(p_cmd)  #單據編號

   DEFINE l_smydesc LIKE smy_file.smydesc,

          l_smyacti LIKE smy_file.smyacti,

          l_t1      LIKE oay_file.oayslip, #No.FUN-680136 VARCHAR(5)  

          p_cmd     LIKE type_file.chr1    #No.FUN-680136 VARCHAR(1)

 

   LET g_errno = ' '

   LET l_t1 = s_get_doc_no(g_votea.tc_votea01)        #No:MOD-540182

   IF g_votea.tc_votea01 IS NULL THEN

      LET g_errno = 'E'

      LET l_smydesc=NULL

   ELSE

      SELECT smydesc,smyacti

        INTO l_smydesc,l_smyacti

        FROM smy_file WHERE smyslip = l_t1

      IF SQLCA.sqlcode THEN

         LET g_errno = 'E'

         LET l_smydesc = NULL

      ELSE

         IF l_smyacti matches'[nN]' THEN

            LET g_errno = 'E'

         END IF

      END IF

   END IF

   IF cl_null(g_errno) OR p_cmd = 'd' THEN

    #  DISPLAY l_smydesc TO FORMONLY.smydesc

   END IF

END FUNCTION

  

FUNCTION i901_q()

   LET g_row_count = 0

   LET g_curs_index = 0

   CALL cl_navigator_setting( g_curs_index, g_row_count )

   MESSAGE ""

   CALL cl_opmsg('q')

   CLEAR FORM

   CALL g_voteb.clear()

   DISPLAY ' ' TO FORMONLY.cnt

   CALL i901_cs()

   IF INT_FLAG THEN

      LET INT_FLAG = 0

      INITIALIZE g_votea.* TO NULL

      RETURN

   END IF

   OPEN i901_cs                            # 從DB產生合乎條件TEMP(0-30秒)

   IF SQLCA.sqlcode THEN

      CALL cl_err('',SQLCA.sqlcode,0)

      INITIALIZE g_votea.* TO NULL

   ELSE

      OPEN i901_count

      FETCH i901_count INTO g_row_count

      DISPLAY g_row_count TO FORMONLY.cnt

      CALL i901_fetch('F')                  # 讀出TEMP第一筆並顯示

   END IF

END FUNCTION

FUNCTION i901_fetch(p_flag)

DEFINE

   p_flag          LIKE type_file.chr1                  #處理方式  #No.FUN-680136 VARCHAR(1)

   CASE p_flag

      WHEN 'N' FETCH NEXT     i901_cs INTO g_votea_rowid,g_votea.tc_votea01

      WHEN 'P' FETCH PREVIOUS i901_cs INTO g_votea_rowid,g_votea.tc_votea01

      WHEN 'F' FETCH FIRST    i901_cs INTO g_votea_rowid,g_votea.tc_votea01

      WHEN 'L' FETCH LAST     i901_cs INTO g_votea_rowid,g_votea.tc_votea01

      WHEN '/'

            IF (NOT mi_no_ask) THEN      #No:FUN-6A0067

                CALL cl_getmsg('fetch',g_lang) RETURNING g_msg

                LET INT_FLAG = 0

                PROMPT g_msg CLIPPED,': ' FOR g_jump

                   ON IDLE g_idle_seconds

                      CALL cl_on_idle()

 

      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

 

                END PROMPT

                IF INT_FLAG THEN

                   LET INT_FLAG = 0

                   EXIT CASE

                END IF

            END IF

            FETCH ABSOLUTE g_jump i901_cs INTO g_votea_rowid,g_votea.tc_votea01

            LET mi_no_ask = FALSE     #No:FUN-6A0067

   END CASE

   IF SQLCA.sqlcode THEN

      CALL cl_err(g_votea.tc_votea01,SQLCA.sqlcode,0)

      INITIALIZE g_votea.* TO NULL               #No.FUN-6A0162

      RETURN

   ELSE

      CASE p_flag

         WHEN 'F' LET g_curs_index = 1

         WHEN 'P' LET g_curs_index = g_curs_index - 1

         WHEN 'N' LET g_curs_index = g_curs_index + 1

         WHEN 'L' LET g_curs_index = g_row_count

         WHEN '/' LET g_curs_index = g_jump

      END CASE

      CALL cl_navigator_setting( g_curs_index, g_row_count )

      DISPLAY g_curs_index TO FORMONLY.idx                    #No:FUN-4A0089

   END IF

   SELECT * INTO g_votea.* FROM tc_votea_file WHERE ROWID = g_votea_rowid

   IF SQLCA.sqlcode THEN

      CALL cl_err3("sel","tc_votea_file","","",SQLCA.sqlcode,"","",1)  #No.FUN-660129

      INITIALIZE g_votea.* TO NULL

      RETURN

   END IF

   LET g_data_owner = g_votea.tc_voteauser      #FUN-4C0056 add

  # LET g_data_group = g_votea.tc_voteagrup      #FUN-4C0056 add

   CALL i901_show()

END FUNCTION

#將資料顯示在畫面上

FUNCTION i901_show()

   LET g_votea_t.* = g_votea.*                #保存單頭舊值

   LET g_votea_o.* = g_votea.*                #保存單頭舊值

   DISPLAY BY NAME g_votea.tc_votea01,g_votea.tc_votea02,g_votea.tc_votea03,

                   g_votea.tc_voteauser,g_votea.tc_voteamodu,

                   g_votea.tc_voteadate,g_votea.tc_voteaacti,g_votea.tc_voteaconf

 

   CALL i901_tc_votea01('d')

   CALL i901_b_fill(g_wc2)                 #單身

   CALL cl_show_fld_cont()                   #No:FUN-550037 hmf

   IF g_votea.tc_voteaconf ='X' THEN LET g_chr='Y'  ELSE LET g_chr='N'  END IF

   IF g_votea.tc_votea03 ='R'   THEN LET g_chr2='Y' ELSE LET g_chr2='N' END IF

   CALL cl_set_field_pic(g_votea.tc_voteaconf,g_chr2,"","",g_chr,"")

END FUNCTION

#FUN-580120

FUNCTION i901_y_chk()

DEFINE l_cnt       LIKE type_file.num5    #No.FUN-680136 SMALLINT

   LET g_success = 'Y'

   IF s_shut(0) THEN RETURN END IF

   SELECT * INTO g_votea.* FROM tc_votea_file WHERE ROWID = g_votea_rowid

   IF SQLCA.SQLCODE THEN

      CALL cl_err('','mfg-009',1)

      LET g_success = 'N'

      RETURN

   END IF

   IF cl_null(g_votea.tc_votea01) THEN 

    CALL cl_err('',-400,0) 

 LET g_success = 'N'   

 RETURN 

   END IF

   IF g_votea.tc_voteaconf='X' THEN

      CALL cl_err('','9024',0)

      LET g_success = 'N'

      RETURN

   END IF

   IF g_votea.tc_voteaconf='Y' THEN

      CALL cl_err('','9023',0)

      LET g_success = 'N'

      RETURN

   END IF

   IF g_votea.tc_voteaacti= 'N' THEN

       CALL cl_err('','mfg0301',1)

       LET g_success = 'N'

       RETURN

   END IF

   LET l_cnt =0

   #控管單身未輸入資料

   SELECT COUNT(*) INTO l_cnt

     FROM tc_voteb_file

    WHERE tc_voteb01 = g_votea.tc_votea01

   IF SQLCA.SQLCODE THEN

      CALL cl_err('','mfg-009',1)

      LET g_success = 'N'

      RETURN

   END IF

   IF l_cnt = 0 OR l_cnt IS NULL THEN

      CALL cl_err('','mfg-009',1)

      LET g_success = 'N'

      RETURN

   END IF

END FUNCTION

FUNCTION i901_y_upd()

   DEFINE  l_cnt           LIKE type_file.num5    #No.FUN-680136 SMALLINT

   LET g_success = 'Y'

   IF NOT cl_confirm('axm-108') THEN RETURN END IF

   BEGIN WORK

   OPEN i901_cl USING g_votea_rowid

   IF STATUS THEN

      LET g_success = 'N'

      CALL cl_err("OPEN i901_cl:", STATUS, 1)

      CLOSE i901_cl

      ROLLBACK WORK

      RETURN

   END IF

   FETCH i901_cl INTO g_votea.*               # 對DB鎖定

   

   IF SQLCA.SQLCODE THEN

      LET g_success = 'N'

      CALL cl_err(g_votea.tc_votea01,SQLCA.SQLCODE,0)

      CLOSE i901_cl

      ROLLBACK WORK

      RETURN

   END IF

   UPDATE tc_votea_file SET tc_voteaconf = 'Y' WHERE tc_votea01 = g_votea.tc_votea01

   IF SQLCA.SQLCODE OR SQLCA.sqlerrd[3]=0 THEN

      CALL cl_err3("upd","tc_votea_file",g_votea.tc_votea01,"","apm-266","","upd tc_votea_file",1)  #No.FUN-660129

      LET g_success='N'

   END IF

   IF g_votea.tc_votea03 = 'U' THEN

      

      LET g_votea.tc_votea03 = 'R'

      UPDATE tc_votea_file SET tc_votea03 = 'U' WHERE tc_votea01 != g_votea.tc_votea01

      IF SQLCA.SQLCODE THEN

         CALL cl_err3("upd","tc_votea_file",g_votea.tc_votea01,"","apm-266","","upd tc_votea_file",1)  #No.FUN-660129

         LET g_success = 'N'

      END IF

      UPDATE tc_votea_file SET tc_votea03 = g_votea.tc_votea03 WHERE tc_votea01 = g_votea.tc_votea01

      IF SQLCA.SQLCODE THEN

         CALL cl_err3("upd","tc_votea_file",g_votea.tc_votea01,"","apm-266","","upd tc_votea_file",1)  #No.FUN-660129

         LET g_success = 'N'

      END IF

   END IF

   IF g_success = 'Y' THEN

      SELECT COUNT(*) INTO g_cnt FROM tc_voteb_file

       WHERE tc_voteb01 = g_votea.tc_votea01

      IF g_cnt = 0 OR SQLCA.SQLCODE THEN

         CALL cl_err(' ','aws-065',0)

         LET g_success = 'N'

      END IF

   END IF

  

      IF g_success='Y' THEN

         LET g_votea.tc_votea03='R'

         LET g_votea.tc_voteaconf='Y'

         COMMIT WORK

         DISPLAY BY NAME g_votea.tc_votea03

         DISPLAY BY NAME g_votea.tc_voteaconf

      ELSE

         LET g_votea.tc_voteaconf='N'

         LET g_success = 'N'

         ROLLBACK WORK

      END IF

   #CKP

   SELECT * INTO g_votea.* FROM tc_votea_file WHERE tc_votea01 = g_votea.tc_votea01

   IF g_votea.tc_voteaconf ='X' THEN LET g_chr='Y'  ELSE LET g_chr='N'  END IF

   IF g_votea.tc_votea03 ='R'   THEN LET g_chr2='Y' ELSE LET g_chr2='N' END IF

   CALL cl_set_field_pic(g_votea.tc_voteaconf,g_chr2,"",g_chr3,g_chr,g_votea.tc_voteaacti)

END FUNCTION

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

 
#start FUN-640063 add

FUNCTION i901_bp_refresh()

  DISPLAY ARRAY g_voteb TO s_voteb.* ATTRIBUTE(COUNT=g_rec_b,UNBUFFERED)

     BEFORE DISPLAY

        EXIT DISPLAY

     ON IDLE g_idle_seconds

        CALL cl_on_idle()

        CONTINUE DISPLAY

  END DISPLAY

END FUNCTION

#end FUN-640063 add

FUNCTION i901_a()

   DEFINE li_result   LIKE type_file.num5    #No.FUN-680136 SMALLINT

   DEFINE ls_doc      STRING

   DEFINE li_inx      LIKE type_file.num10   #No.FUN-680136 INTEGER

   DEFINE l_newno     LIKE tc_votea_file.tc_votea01

   DEFINE l_sql      STRING

   MESSAGE ""

   CLEAR FORM

   CALL g_voteb.clear()

   LET g_wc = NULL #MOD-530329

   LET g_wc2= NULL #MOD-530329

   IF s_shut(0) THEN

      RETURN

   END IF

   INITIALIZE g_votea.* LIKE tc_votea_file.*             #DEFAULT 設定

   LET g_votea01_t = NULL

   IF g_ydate IS NULL THEN

      LET g_votea.tc_votea01 = NULL

      LET g_votea.tc_voteadate = g_today

   ELSE                                          #使用上筆資料值

      LET g_votea.tc_votea01   = g_sheet            #採購詢價單別

      LET g_votea.tc_voteadate = g_ydate            #收貨日期

   END IF

   #預設值及將數值類變數清成零

   LET g_votea_t.* = g_votea.*

   LET g_votea_o.* = g_votea.*

   

   CALL cl_opmsg('a')

   WHILE TRUE

      LET g_votea.tc_voteauser = g_user

      LET g_votea.tc_voteamodu = g_user

      LET g_votea.tc_voteadate = g_today

      LET g_votea.tc_voteaacti = 'Y'              #資料有效

      LET g_votea.tc_voteaconf = 'N'              #資料有效

      CALL i901_i("a")                   #輸入單頭

      IF INT_FLAG THEN                   #使用者不玩了

         INITIALIZE g_votea.* TO NULL

         LET INT_FLAG = 0

         CALL cl_err('',9001,0)

         EXIT WHILE

      END IF

      IF cl_null(g_votea.tc_votea01) THEN       # KEY 不可空白

         CONTINUE WHILE

      END IF

      #輸入後, 若該單據需自動編號, 並且其單號為空白, 則自動賦予單號

      BEGIN WORK

       #No:MOD-540182 --start--

       CALL s_auto_assign_no("cxx",g_votea.tc_votea01,g_votea.tc_voteadate,"","tc_votea_file","tc_votea01","","","") RETURNING li_result,g_votea.tc_votea01

      

      IF (NOT li_result) THEN

         CONTINUE WHILE

      END IF

      MESSAGE g_votea.tc_votea01

      LET l_sql =" SELECT CASE WHEN sno < 10                 THEN substr('",g_votea.tc_votea01 CLIPPED,"',1,12)||'00'||to_char(sno) ",

           "                   WHEN sno > 10  AND sno < 100  THEN substr('",g_votea.tc_votea01 CLIPPED,"',1,12)|| '0'||to_char(sno) ",

           "               ELSE substr('",g_votea.tc_votea01 CLIPPED,"',1,12)||to_char(sno) ",

           "               END sno ",

           " FROM ( ",

           " SELECT TO_NUMBER(SUBSTR(NVL(MAX(tc_votea01),'XPUBX-'||to_char(sysdate,'yymmdd')||'000'),-3,3))+1 sno ",

   " FROM ds.tc_votea_file WHERE tc_votea01 LIKE substr('",g_votea.tc_votea01 CLIPPED,"',1,12)||'%' )"

     

    #MESSAGE l_sql

    PREPARE i901_sno FROM l_sql                # RUNTIME 編譯

    IF STATUS THEN CALL cl_err('i901_sno',STATUS,0) END IF

    #end No:FUN-550019

    DECLARE i901_cs_sno                        # CURSOR

        CURSOR FOR i901_sno

    FOREACH i901_cs_sno INTO l_newno

        IF SQLCA.sqlcode THEN

            CALL cl_err('foreach:',SQLCA.sqlcode,1)

            EXIT FOREACH

            END IF

    END FOREACH

    MESSAGE l_newno

    LET g_votea.tc_votea01 = l_newno

      DISPLAY BY NAME g_votea.tc_votea01

      INSERT INTO tc_votea_file VALUES (g_votea.*)

      LET g_ydate = g_votea.tc_voteadate                #備份上一筆日期

      #No:MOD-540182 --start--

      #備份上一筆單別

      CALL s_get_doc_no(g_votea.tc_votea01) RETURNING g_sheet

      #No:MOD-540182 ---end---

      IF SQLCA.SQLCODE THEN                     #置入資料庫不成功

         ROLLBACK WORK      #No:7857

         CALL cl_err3("ins","tc_votea_file",g_votea.tc_votea01,"",SQLCA.SQLCODE,"","",1)  #No.FUN-660129

         CONTINUE WHILE

      ELSE

         COMMIT WORK        #No:7857

      END IF

      SELECT ROWID INTO g_votea_rowid FROM tc_votea_file

       WHERE tc_votea01 = g_votea.tc_votea01

      

      LET g_votea01_t = g_votea.tc_votea01        #保留舊值

      LET g_votea_t.* = g_votea.*

      LET g_votea_o.* = g_votea.*

      

       CALL g_voteb.clear()

      LET g_rec_b = 0  #No:MOD-490280

      CALL i901_b()                   #輸入單身

      EXIT WHILE

   END WHILE

END FUNCTION

FUNCTION i901_u()

   IF s_shut(0) THEN

      RETURN

   END IF

   IF g_votea.tc_votea01 IS NULL THEN # KEY 不可為空白

      CALL cl_err('',-400,0)

      RETURN

   END IF

   SELECT * INTO g_votea.* FROM tc_votea_file

    WHERE tc_votea01=g_votea.tc_votea01

   IF g_votea.tc_voteaacti ='N' THEN    #檢查資料是否為無效

      CALL cl_err(g_votea.tc_votea01,'mfg1000',0)

      RETURN

   END IF

   MESSAGE ""

   CALL cl_opmsg('u')

   

   LET g_votea01_t = g_votea.tc_votea01

   

   BEGIN WORK

   OPEN i901_cl USING g_votea_rowid

   IF STATUS THEN

      CALL cl_err("OPEN i901_cl:", STATUS, 1)

      CLOSE i901_cl

      ROLLBACK WORK

      RETURN

   END IF

   FETCH i901_cl INTO g_votea.*                      # 鎖住將被更改或取消的資料

   IF SQLCA.SQLCODE THEN

       CALL cl_err(g_votea.tc_votea01,SQLCA.SQLCODE,0)    # 資料被他人LOCK

       CLOSE i901_cl

       ROLLBACK WORK

       RETURN

   END IF

   CALL i901_show()

   WHILE TRUE

      LET g_votea01_t = g_votea.tc_votea01

      LET g_votea_o.* = g_votea.*

      LET g_votea.tc_voteamodu = g_user

      LET g_votea.tc_voteadate = g_today

      CALL i901_i("u")                      #欄位更改

      IF INT_FLAG THEN

         LET INT_FLAG = 0

         LET g_votea.*=g_votea_t.*

         CALL i901_show()

         CALL cl_err('','9001',0)

         EXIT WHILE

      END IF

      IF g_votea.tc_votea01 != g_votea01_t THEN            # 更改單號

         UPDATE tc_voteb_file SET voteb01 = g_votea.tc_votea01 WHERE tc_voteb01 = g_votea01_t

         IF SQLCA.SQLCODE OR SQLCA.sqlerrd[3] = 0 THEN

            CALL cl_err3("upd","tc_voteb_file",g_votea01_t,"",SQLCA.SQLCODE,"","voteb",1)  #No.FUN-660129

            CONTINUE WHILE

         END IF

      END IF

      UPDATE tc_votea_file SET tc_votea_file.* = g_votea.* WHERE ROWID = g_votea_rowid

      IF SQLCA.SQLCODE OR SQLCA.sqlerrd[3] = 0 THEN

         CALL cl_err3("upd","tc_votea_file","","",SQLCA.SQLCODE,"","",1)  #No.FUN-660129

         CONTINUE WHILE

      END IF

      EXIT WHILE

   END WHILE

   CLOSE i901_cl

   COMMIT WORK

  

  #start FUN-640063 add

   CALL i901_b_fill("1=1")

   CALL i901_bp_refresh()

  #end FUN-640063 add

END FUNCTION

FUNCTION i901_i(p_cmd)

DEFINE

   l_n       LIKE type_file.num5,    #No.FUN-680136 SMALLINT

   p_cmd     LIKE type_file.chr1     #a:輸入 u:更改  #No.FUN-680136 VARCHAR(1)

   DEFINE    li_result   LIKE type_file.num5    #No.FUN-680136 SMALLINT

   IF s_shut(0) THEN

      RETURN

   END IF

   DISPLAY BY NAME g_votea.tc_voteauser,g_votea.tc_voteamodu,g_votea.tc_voteadate,g_votea.tc_voteaacti,g_votea.tc_voteaconf

   CALL cl_set_head_visible("","YES")           #No.FUN-6B0032

 

   INPUT BY NAME g_votea.tc_votea01,g_votea.tc_votea02,g_votea.tc_votea03 WITHOUT DEFAULTS

 

      BEFORE INPUT

         LET g_before_input_done = FALSE

         CALL i901_set_entry(p_cmd)

         CALL i901_set_no_entry(p_cmd)

         LET g_before_input_done = TRUE

          #No:MOD-540182 --start--

         CALL cl_set_docno_format("tc_votea01") 

          #No:MOD-540182 ---end---

      AFTER FIELD tc_votea01

         #單號處理方式:

         #在輸入單別後, 至單據性質檔中讀取該單別資料;

         #若該單別不需自動編號, 則讓使用者自行輸入單號, 並檢查其是否重複

         #若要自動編號, 則單號不用輸入, 直到單頭輸入完成後, 再行自動指定單號

          #No:MOD-540182 --start--

         IF NOT cl_null(g_votea.tc_votea01) THEN

            CALL s_check_no("apm",g_votea.tc_votea01,g_votea01_t,"6","tc_votea_file","tc_votea01","") RETURNING li_result,g_votea.tc_votea01

            DISPLAY BY NAME g_votea.tc_votea01

            IF (NOT li_result) THEN

               LET g_votea.tc_votea01=g_votea_o.tc_votea01

               NEXT FIELD tc_votea01

            END IF

          #  DISPLAY g_smy.smydesc TO smydesc

            IF g_votea.tc_votea01 != g_votea01_t OR g_votea01_t IS NULL THEN

               #進行輸入之單號檢查

               #No:MOD-540182 --start-- 暫時先mark,因為此支程式裡面沒有改成動態編碼長度

#              CALL s_mfgchno(g_votea.tc_votea01) RETURNING g_i,g_votea.tc_votea01

#              DISPLAY BY NAME g_votea.tc_votea01

#              IF NOT g_i THEN

#                 NEXT FIELD tc_votea01

#              END IF

                #No:MOD-540182 ---end---

#              SELECT count(*) INTO l_n FROM tc_votea_file

#               WHERE tc_votea01 = g_votea.tc_votea01

#              IF l_n > 0 THEN   #單據編號重複

#                 CALL cl_err(g_votea.tc_votea01,-239,0)

#                 LET g_votea.tc_votea01 = g_votea01_t

#                 DISPLAY BY NAME g_votea.tc_votea01

#                 NEXT FIELD tc_votea01

#              END IF

            END IF

         END IF

       #No:MOD-540182 ---end---

      AFTER FIELD tc_votea02                 

         IF cl_null(g_votea.tc_votea02) THEN

            LET g_votea_o.tc_votea02 = g_votea.tc_votea02

    NEXT FIELD tc_votea02

         END IF

  AFTER FIELD tc_votea03                 

         #IF cl_null(g_votea.tc_votea03) THEN

         #   LET g_votea_o.tc_votea03 = g_votea.tc_votea03

 #   NEXT FIELD tc_votea03

         #END IF

        IF NOT cl_null(g_votea.tc_votea03) THEN

        IF g_votea.tc_votea03 NOT MATCHES "[UR]" OR g_votea.tc_votea03 IS NULL

         THEN CALL cl_err(g_votea.tc_votea03,'cxx1001',0)

              LET g_votea_o.tc_votea03 = g_votea.tc_votea03

              DISPLAY BY NAME g_votea.tc_votea03

              NEXT FIELD tc_votea03

         END IF

        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 ACTION controlp

         CASE

            WHEN INFIELD(tc_votea01) #單據編號

                 LET g_t1 = s_get_doc_no(g_votea.tc_votea01)     #No:MOD-540182

                 CALL q_smycust(FALSE,FALSE,g_t1,'APM','6') RETURNING g_t1 #TQC-670008

                 LET g_votea.tc_votea01 = g_t1                 #No:MOD-540182

                 DISPLAY BY NAME g_votea.tc_votea01

                 CALL i901_tc_votea01('d')

                 NEXT FIELD tc_votea01

            OTHERWISE EXIT CASE

          END CASE

      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

END FUNCTION

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

 
# Prog. Version..: '5.00.04-07.12.21(00009)'     #

# Pattern name...: cxxi901.4gl

# Descriptions...: ●職工福利委員會公告資料維護作業●

# Date & Author..: 2011/01/05 By  Jeffrey

# Modify.........: 

DATABASE ds

GLOBALS "../../../tiptop/config/top.global"

#模組變數(Module Variables)

DEFINE g_votea         RECORD LIKE tc_votea_file.*,      # (單頭)

       g_votea_t       RECORD LIKE tc_votea_file.*,      # (舊值)

       g_votea_o       RECORD LIKE tc_votea_file.*,      # (舊值)

       g_votea01_t     LIKE tc_votea_file.tc_votea01,    # (舊值)

       g_votea_rowid   LIKE type_file.chr18,         #ROWID  

       g_t1          LIKE oay_file.oayslip,        #MOD-540182  #No.FUN-680136 VARCHAR(5)

       g_sheet       LIKE oay_file.oayslip,        #No.FUN-680136 VARCHAR(5) #單別 (沿用)

       g_ydate       LIKE type_file.dat,           #No.FUN-680136 DATE    #單據日期(沿用)

       g_voteb         DYNAMIC ARRAY OF RECORD       #程式變數(Program Variables)

           tc_voteb02       LIKE tc_voteb_file.tc_voteb02,          #公告項次

           tc_voteb03       LIKE tc_voteb_file.tc_voteb03,          #公告細項主旨

           tc_voteb04       LIKE tc_voteb_file.tc_voteb04,          #URL連結網址 

           tc_votebacti     LIKE tc_voteb_file.tc_votebacti,        #資料有效碼

           tc_votebuser     LIKE tc_voteb_file.tc_votebuser,        #資料建立者

           tc_votebmodu     LIKE tc_voteb_file.tc_votebmodu,        #最近資料修改者

           tc_votebdate     LIKE tc_voteb_file.tc_votebdate         #最近修改日期

                     END RECORD,

       g_voteb_t       RECORD                        #程式變數 (舊值)

           tc_voteb02       LIKE tc_voteb_file.tc_voteb02,          #公告項次

           tc_voteb03       LIKE tc_voteb_file.tc_voteb03,          #公告細項主旨

           tc_voteb04       LIKE tc_voteb_file.tc_voteb04,          #URL連結網址 

           tc_votebacti     LIKE tc_voteb_file.tc_votebacti,        #資料有效碼

           tc_votebuser     LIKE tc_voteb_file.tc_votebuser,        #資料建立者

           tc_votebmodu     LIKE tc_voteb_file.tc_votebmodu,        #最近資料修改者

           tc_votebdate     LIKE tc_voteb_file.tc_votebdate         #最近修改日期

                     END RECORD,

       g_voteb_o       RECORD                        #程式變數 (舊值)

           tc_voteb02       LIKE tc_voteb_file.tc_voteb02,          #公告項次

           tc_voteb03       LIKE tc_voteb_file.tc_voteb03,          #公告細項主旨

           tc_voteb04       LIKE tc_voteb_file.tc_voteb04,          #URL連結網址 

           tc_votebacti     LIKE tc_voteb_file.tc_votebacti,        #資料有效碼

           tc_votebuser     LIKE tc_voteb_file.tc_votebuser,        #資料建立者

           tc_votebmodu     LIKE tc_voteb_file.tc_votebmodu,        #最近資料修改者

           tc_votebdate     LIKE tc_voteb_file.tc_votebdate         #最近修改日期

                     END RECORD,

       g_sql         STRING,                       #CURSOR暫存 TQC-5B0183

       g_wc          STRING,                       #單頭CONSTRUCT結果

       g_wc2         STRING,                       #單身CONSTRUCT結果

       g_rec_b       LIKE type_file.num5,          #單身筆數  #No.FUN-680136 SMALLINT

       l_ac          LIKE type_file.num5           #目前處理的ARRAY CNT  #No.FUN-680136 SMALLINT

DEFINE p_row,p_col         LIKE type_file.num5    #No.FUN-680136 SMALLINT

DEFINE g_gec07             LIKE gec_file.gec07    #FUN-550019

DEFINE g_forupd_sql        STRING                 #SELECT ... FOR UPDATE NOWAIT NOWAIT SQL

DEFINE g_before_input_done LIKE type_file.num5    #No.FUN-680136 SMALLINT

DEFINE g_chr               LIKE type_file.chr1    #No.FUN-680136 VARCHAR(1)

DEFINE g_cnt               LIKE type_file.num10   #No.FUN-680136 INTEGER

DEFINE g_i                 LIKE type_file.num5    #count/index for any purpose  #No.FUN-680136 SMALLINT

DEFINE g_msg               LIKE ze_file.ze03      #No.FUN-680136 VARCHAR(72)

DEFINE g_curs_index        LIKE type_file.num10   #No.FUN-680136 INTEGER

DEFINE g_row_count         LIKE type_file.num10   #總筆數  #No.FUN-680136 INTEGER

DEFINE g_jump              LIKE type_file.num10   #查詢指定的筆數  #No.FUN-680136 INTEGER

DEFINE mi_no_ask           LIKE type_file.num5    #是否開啟指定筆視窗  #No.FUN-680136 SMALLINT      #No:FUN-6A0067

DEFINE g_argv1             LIKE tc_votea_file.tc_votea01    #No.FUN-680136 VARCHAR(16) #單號 #TQC-630074

DEFINE g_argv2             STRING               #指定執行的功能 #TQC-630074

DEFINE g_argv3             STRING    #No:FUN-670099

#No.FUN-710091   --begin

DEFINE l_table             STRING

DEFINE g_str               STRING

DEFINE g_chr2         LIKE type_file.chr1    #No.FUN-680136 VARCHAR(1)

DEFINE g_chr3         LIKE type_file.chr1    #FUN-580120  #No.FUN-680136 VARCHAR(1)

#No.FUN-710091   --end  

#主程式開始

MAIN

   DEFINE l_time   LIKE type_file.chr8             #計算被使用時間  #No.FUN-680136 VARCHAR(8)

#No:FUN-710055 --start--

   OPTIONS                               #改變一些系統預設值

      FORM LINE       FIRST + 2,         #畫面開始的位置

      MESSAGE LINE    LAST,              #訊息顯示的位置

      PROMPT LINE     LAST,              #提示訊息的位置

      INPUT NO WRAP                      #輸入的方式: 不打轉

   DEFER INTERRUPT                       #擷取中斷鍵, 由程式處理

#No:FUN-710055 ---end---

   IF (NOT cl_user()) THEN

      EXIT PROGRAM

   END IF

 

   WHENEVER ERROR CALL cl_err_msg_log

 

   IF (NOT cl_setup("CXX")) THEN

      EXIT PROGRAM

   END IF

   LET g_argv1=ARG_VAL(1)           #TQC-630074

   LET g_argv2=ARG_VAL(2)           #TQC-630074

   LET g_argv3=ARG_VAL(3)           #TQC-630074

   #No.FUN-710091  --begin

   LET g_sql="tc_votea01.tc_votea_file.tc_votea01,",   

             "tc_votea02.tc_votea_file.tc_votea02,",   

             "tc_votea03.tc_votea_file.tc_votea03,",  

     "tc_voteb02.tc_voteb_file.tc_voteb02,",   

             "tc_voteb03.tc_voteb_file.tc_voteb03,",   

             "tc_voteb04.tc_voteb_file.tc_voteb04"   

   LET l_table = cl_prt_temptable('cxxi901',g_sql) CLIPPED

   IF  l_table = -1 THEN EXIT PROGRAM END IF

   #No.FUN-710091  --end 

   CALL cl_used(g_prog,l_time,1)       #計算使用時間 (進入時間) #MOD-580088

      RETURNING l_time

   LET g_forupd_sql = "SELECT * FROM tc_votea_file WHERE ROWID = ? FOR UPDATE NOWAIT"

   DECLARE i901_cl CURSOR FROM g_forupd_sql

   LET p_row = 1 LET p_col = 3

   OPEN WINDOW i901_w AT p_row,p_col WITH FORM "cxx/42f/cxxi901"

     ATTRIBUTE (STYLE = g_win_style CLIPPED) #No:FUN-580092 HCN

   CALL cl_set_locale_frm_name("cxxi901")   #No:FUN-670099

   

   LET g_pdate = g_today   #No.FUN-710091 

   CALL cl_ui_init()

   LET g_ydate = NULL

   CALL i901_menu()

   CLOSE WINDOW i901_w                 #結束畫面

   CALL cl_used(g_prog,l_time,2)       #計算使用時間 (退出時間) #MOD-580088

      RETURNING l_time

END MAIN

#QBE 查詢資料

FUNCTION i901_cs()

   DEFINE lc_qbe_sn   LIKE gbm_file.gbm01    #No:FUN-580031  HCN

   CLEAR FORM 

   CALL g_voteb.clear()

  

   #TQC-630074

   IF NOT cl_null(g_argv1) THEN

      LET g_wc = " tc_votea01 = '",g_argv1,"'"  #FUN-580120

   ELSE

     

       CALL cl_set_head_visible("","YES")           #No.FUN-6B0032

      INITIALIZE g_votea.* TO NULL      #No.FUN-750051

      CONSTRUCT BY NAME g_wc ON tc_votea01,tc_votea02,tc_votea03,

                                tc_voteauser,tc_voteamodu,tc_voteadate,tc_voteaacti,tc_voteaconf

         #No:FUN-580031 --start--     HCN

         BEFORE CONSTRUCT

            CALL cl_qbe_init()

         #No:FUN-580031 --end--       HCN

         ON ACTION controlp

            CASE

               WHEN INFIELD(tc_votea01) #詢價單號   #MOD-4A0252

                  CALL cl_init_qry_var()

                  LET g_qryparam.state = 'c'

                  LET g_qryparam.form ="q_votea"

          LET g_qryparam.where = " 1=1 "

                  CALL cl_create_qry() RETURNING g_qryparam.multiret

                  DISPLAY g_qryparam.multiret TO tc_votea01

                  NEXT FIELD tc_votea01

               OTHERWISE EXIT CASE

            END CASE

      

         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_list() RETURNING lc_qbe_sn

            CALL cl_qbe_display_condition(lc_qbe_sn)

         #No:FUN-580031 --end--       HCN

      END CONSTRUCT

      

      IF INT_FLAG THEN

         RETURN

      END IF

   END IF

   #END TQC-630074

  # 資料權限的檢查

  # IF g_priv2='4' THEN                           #只能使用自己的資料

  #    LET g_wc = g_wc clipped," AND tc_voteauser = '",g_user,"'"

  # END IF

 

  # IF g_priv3='4' THEN                           #只能使用相同群的資料

  #    LET g_wc = g_wc clipped," AND tc_voteagrup MATCHES '",g_grup CLIPPED,"*'"

  # END IF

  #  IF g_priv3 MATCHES "[5678]" THEN    #TQC-5C0134群組權限

  #     LET g_wc = g_wc clipped," AND tc_voteagrup IN ",cl_chk_tgrup_list()

  #  END IF

  #start FUN-580035

  #  IF g_priv3 MATCHES '[567]' THEN               #只能使用相同群組的資料

  #     LET g_wc = g_wc clipped," AND tc_voteagrup IN ",cl_get_grup_str(g_grup)

  #  END IF

  #end FUN-580035

   #TQC-630074

   IF NOT cl_null(g_argv1) THEN

      LET g_wc2 = ' 1=1'     

   ELSE

      CONSTRUCT g_wc2 ON tc_voteb02,tc_voteb03,tc_voteb04,tc_votebacti,tc_votebuser,tc_votebmodu,tc_votebdate   #螢幕上取單身條件

              FROM s_voteb[1].tc_voteb02,s_voteb[1].tc_voteb03,s_voteb[1].tc_voteb04,

   s_voteb[1].tc_votebacti,s_voteb[1].tc_votebuser,s_voteb[1].tc_votebmodu,s_voteb[1].tc_votebdate

         #No:FUN-580031 --start--     HCN

         BEFORE CONSTRUCT

            CALL cl_qbe_display_condition(lc_qbe_sn)

         #No:FUN-580031 --end--       HCN

   

         #-----No:FUN-670099----- 

         ON ACTION CONTROLP

            CASE

           #FUN-650191--add--begin

            WHEN INFIELD(tc_voteb03) #

              CALL cl_init_qry_var()

              LET g_qryparam.state = 'c'

              LET g_qryparam.form ="q_voteb"

              CALL cl_create_qry() RETURNING g_qryparam.multiret

              DISPLAY g_qryparam.multiret TO tc_voteb03

              NEXT FIELD tc_voteb03

   OTHERWISE EXIT CASE

           #FUN-650191 add--end

            END CASE

         #-----No:FUN-670099 END----- 

         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_save

            CALL cl_qbe_save()

         #No:FUN-580031 --end--       HCN

      END CONSTRUCT

   

      IF INT_FLAG THEN

         RETURN

      END IF

    END IF

    #END TQC-630074

   IF g_wc2 = " 1=1" THEN                  # 若單身未輸入條件

      LET g_sql = "SELECT ROWID, tc_votea01 FROM tc_votea_file ",

                  " WHERE ", g_wc CLIPPED,

                  " ORDER BY 2"

   ELSE                              # 若單身有輸入條件

      LET g_sql = "SELECT UNIQUE tc_votea_file.ROWID, tc_votea01 ",

                  "  FROM tc_votea_file, tc_voteb_file ",

                  " WHERE tc_votea01 = tc_voteb01",

                  "   AND ", g_wc CLIPPED, " AND ",g_wc2 CLIPPED,

                  " ORDER BY 2"

   END IF

   PREPARE i901_prepare FROM g_sql

   DECLARE i901_cs                         #SCROLL CURSOR

       SCROLL CURSOR WITH HOLD FOR i901_prepare

   IF g_wc2 = " 1=1" THEN                  # 取合乎條件筆數

      LET g_sql="SELECT COUNT(*) FROM tc_votea_file WHERE ",g_wc CLIPPED

   ELSE

      LET g_sql="SELECT COUNT(DISTINCT tc_votea01) FROM tc_votea_file,tc_voteb_file WHERE ",

                "tc_votea01 = tc_voteb01 AND ",g_wc CLIPPED," AND ",g_wc2 CLIPPED

   END IF

   PREPARE i901_precount FROM g_sql

   DECLARE i901_count CURSOR FOR i901_precount

END FUNCTION

FUNCTION i901_menu()

   WHILE TRUE

      CALL i901_bp("G")

      CASE g_action_choice

         WHEN "insert"

            IF cl_chk_act_auth() THEN

               CALL i901_a()

            END IF

         WHEN "query"

            IF cl_chk_act_auth() THEN

               CALL i901_q()

            END IF

         WHEN "delete"

            IF cl_chk_act_auth() THEN

               CALL i901_r()

            END IF

         WHEN "modify"

            IF cl_chk_act_auth() THEN

               CALL i901_u()

            END IF

         WHEN "invalid"

            IF cl_chk_act_auth() THEN

               CALL i901_x()

            END IF

         WHEN "reproduce"

            IF cl_chk_act_auth() THEN

               CALL i901_copy()

            END IF

         WHEN "detail"

            IF cl_chk_act_auth() THEN

               CALL i901_b()

            ELSE

               LET g_action_choice = NULL

            END IF

         WHEN "output"

            IF cl_chk_act_auth() THEN

               CALL i901_out()

            END IF

         WHEN "help"

            CALL cl_show_help()

         WHEN "exit"

            EXIT WHILE

         WHEN "controlg"

            CALL cl_cmdask()

 WHEN "confirm" #確認

            IF cl_chk_act_auth() THEN

            CALL i901_y_chk()       #CALL 原確認的 check 段

               IF g_success = "Y" THEN

                 CALL i901_y_upd()      #CALL 原確認的 update 段

               END IF

             END IF

 WHEN "undo_confirm"

            IF cl_chk_act_auth() THEN

               CALL i901_z()

            END IF

         WHEN "void"

            IF cl_chk_act_auth() THEN

               CALL i901_x()

            END IF

         WHEN "exporttoexcel"     #FUN-4B0025

            IF cl_chk_act_auth() THEN

              CALL cl_export_to_excel(ui.Interface.getRootNode(),base.TypeInfo.create(g_voteb),'','')

            END IF

         #No:FUN-6A0162-------add--------str----

         WHEN "related_document"  #相關文件

              IF cl_chk_act_auth() THEN

                 IF g_votea.tc_votea01 IS NOT NULL THEN

                 LET g_doc.column1 = "tc_votea01"

                 LET g_doc.value1 = g_votea.tc_votea01

                 CALL cl_doc()

               END IF

         END IF

         #No:FUN-6A0162-------add--------end----

      END CASE

   END WHILE

END FUNCTION

FUNCTION i901_bp(p_ud)

   DEFINE   p_ud   LIKE type_file.chr1    #No.FUN-680136 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_voteb TO s_voteb.* ATTRIBUTE(COUNT=g_rec_b,UNBUFFERED)

      BEFORE DISPLAY

         CALL cl_navigator_setting( g_curs_index, g_row_count )

      BEFORE ROW

         LET l_ac = ARR_CURR()

         CALL cl_show_fld_cont()                   #No:FUN-550037 hmf

      ON ACTION insert

         LET g_action_choice="insert"

         EXIT DISPLAY

      ON ACTION query

         LET g_action_choice="query"

         EXIT DISPLAY

      ON ACTION delete

         LET g_action_choice="delete"

         EXIT DISPLAY

      ON ACTION modify

         LET g_action_choice="modify"

         EXIT DISPLAY

      ON ACTION first

         CALL i901_fetch('F')

         CALL cl_navigator_setting(g_curs_index, g_row_count)

         CALL fgl_set_arr_curr(1)

         ACCEPT DISPLAY   #FUN-530067(smin)

      ON ACTION previous

         CALL i901_fetch('P')

         CALL cl_navigator_setting(g_curs_index, g_row_count)

         CALL fgl_set_arr_curr(1)

         ACCEPT DISPLAY   #FUN-530067(smin)

      ON ACTION jump

         CALL i901_fetch('/')

         CALL cl_navigator_setting(g_curs_index, g_row_count)

         CALL fgl_set_arr_curr(1)

         ACCEPT DISPLAY   #FUN-530067(smin)

      ON ACTION next

         CALL i901_fetch('N')

         CALL cl_navigator_setting(g_curs_index, g_row_count)

         CALL fgl_set_arr_curr(1)

         ACCEPT DISPLAY   #FUN-530067(smin)

      ON ACTION last

         CALL i901_fetch('L')

         CALL cl_navigator_setting(g_curs_index, g_row_count)

         CALL fgl_set_arr_curr(1)

         ACCEPT DISPLAY   #FUN-530067(smin)

      ON ACTION invalid

         LET g_action_choice="invalid"

         EXIT DISPLAY

      ON ACTION reproduce

         LET g_action_choice="reproduce"

         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

      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 確認

      ON ACTION confirm

         LET g_action_choice="confirm"

         EXIT DISPLAY

#@    ON ACTION 取消確認

      ON ACTION undo_confirm

         LET g_action_choice="undo_confirm"

         EXIT DISPLAY

#@    ON ACTION 作廢

      ON ACTION void

         LET g_action_choice="void"

         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 IDLE g_idle_seconds

         CALL cl_on_idle()

         CONTINUE DISPLAY

 

      ON ACTION about         #MOD-4C0121

         CALL cl_about()      #MOD-4C0121

 

      ON ACTION exporttoexcel       #FUN-4B0025

         LET g_action_choice = 'exporttoexcel'

         EXIT DISPLAY

      # No:FUN-530067 --start--

      AFTER DISPLAY

         CONTINUE DISPLAY

      # No:FUN-530067 ---end---

      ON ACTION controls                           #No.FUN-6B0032             

         CALL cl_set_head_visible("","AUTO")       #No.FUN-6B0032

      ON ACTION related_document                #No:FUN-6A0162  相關文件

         LET g_action_choice="related_document"          

         EXIT DISPLAY

   END DISPLAY

   CALL cl_set_act_visible("accept,cancel", TRUE)

END FUNCTION

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

 
<?xml version="1.0" encoding="UTF-8" ?>

<Form width="288" lstrtoalltitle="false" lstrtoallitem="false" database_name="ds01" CHECKSUM="-1" spacing="normal" posX="0" posY="0" height="19" percommentheader="" percommentinstruction="" percommentattribute="" lstrtoallcomment="false" percommentschema="" name="cxxi901" fourSTFile="" defaultspacing="true" text="cxxi901" gstVersion="11401" lstrtoalltext="false" percommentlayout="GRID

GRID

HBOX

PAGE

GRID

PAGE

FOLDER

TABLE

GRID

VBOX

LAYOUT

" >

 <VBox tag="" posX="0" posY="0" hidden="" style="" name="" >

  <PageControl width="287" posX="0" height="6" posY="0" lstrcomment="false" name="folder01" >

   <Page lstrtext="false" hidden="--------" imagetype="Image as URL" name="page01" fontPitch="default" text="Main" >

    <HBox width="108" tag="" posX="0" height="4" posY="0" hidden="" style="" name="" >

     <Grid width="107" posX="0" height="4" posY="0" lstrcomment="false" hidden="--------" name="gr1629" fontPitch="default" scroll="false" >

      <Text width="4" lstrtext="false" gridWidth="11" posX="1" height="1" posY="0" sizePolicy="initial" name="text5532" text="UUID" />

      <FormField sqlDBName="ds" colName="tc_votea01" fieldId="1" sqlTabName="tc_votea_file" name="tc_votea01" fieldtype="TABLE_COLUMN" >

       <ButtonEdit width="20" case="NONE" comment="&lt;^P>Query Item  " gridWidth="30" invisible="--------" notNull="true" image="zoom" posX="22" action="controlp" formfieldname="formfield0" height="1" posY="0" autoNext="--------" lstrcomment="false" hidden="--------" imagetype="Select File" verify="--------" sizePolicy="initial" tabIndex="1" zeroFill="--------" data_type="VARCHAR" lstrtitle="false" name="tc_votea01" reverse="--------" century="R" color="black" fontPitch="default" noEntry="--------" required="true" scroll="--------" />

      </FormField>

      <Text width="5" lstrtext="false" gridWidth="12" posX="1" height="1" posY="1" hrecindex="-1" sizePolicy="initial" name="text26" text="Title" />

      <FormField sqlDBName="ds" colName="tc_votea02" fieldId="2" sqlTabName="tc_votea_file" name="tc_votea02" fieldtype="TABLE_COLUMN" >

       <Edit width="20" case="NONE" gridWidth="30" invisible="--------" notNull="--------" posX="22" formfieldname="formfield2" height="1" posY="1" autoNext="--------" lstrcomment="false" hidden="--------" verify="--------" sizePolicy="initial" tabIndex="2" zeroFill="--------" lstrtitle="false" name="tc_votea02" reverse="--------" century="R" color="black" fontPitch="default" noEntry="true" required="--------" scroll="--------" />

      </FormField>

      <Text width="6" lstrtext="false" gridWidth="13" posX="1" height="1" posY="2" sizePolicy="initial" name="text5534" text="Status" />

      <FormField sqlDBName="ds" colName="tc_votea03" sqlTabName="tc_votea_file" fieldId="3" name="tc_votea03" fieldtype="TABLE_COLUMN" >

       <ComboBox width="20" case="NONE" comment="Enter  RELEASED/UNDER_REVISION" gridWidth="10" notNull="true" posX="22" formfieldname="formfield3" height="1" posY="2" lstrcomment="false" hidden="--------" sizePolicy="initial" tabIndex="3" data_type="VARCHAR" lstrtitle="false" name="tc_votea03" century="R" color="black" fontPitch="default" noEntry="--------" queryEditable="true" required="true" >

        <Item lstrtext="" name="U" text="UNDER_REVISION" />

        <Item lstrtext="" name="R" text="RELEASED" />

       </ComboBox>

      </FormField>

      <FormField colName="imgmksg" fieldId="2" sqlTabName="formonly" name="formonly.imgmksg" fieldtype="FORM_ONLY" >

       <Image unitHeight="2 CHARACTERS" width="10" gridWidth="7" posX="67" formfieldname="formfieldname" height="3" posY="0" autoScale="true" lstrcomment="false" hidden="--------" imagetype="Image as URL" tabIndex="99" lstrtitle="false" name="imgmksg" unitWidth="7 CHARACTERS" gridHeight="2" noEntry="true" stretch="none" />

      </FormField>

      <Text width="7" lstrtext="false" gridWidth="7" posX="44" posY="0" height="1" sizePolicy="initial" name="text16320" text="Confirm" />

      <FormField sqlDBName="ds" colName="tc_voteaconf" sqlTabName="tc_votea_file" fieldId="30" name="tc_voteaconf" fieldtype="TABLE_COLUMN" >

       <ComboBox width="13" case="NONE" gridWidth="10" notNull="--------" posX="52" formfieldname="formfield100" height="1" posY="0" lstrcomment="false" hidden="--------" sizePolicy="initial" tabIndex="100" data_type="VARCHAR" lstrtitle="false" name="tc_voteaconf" century="R" color="black" fontPitch="default" noEntry="true" queryEditable="--------" required="--------" >

        <Item lstrtext="" name="N" text="UnConfirmed" />

        <Item lstrtext="" name="Y" text="Confirmed" />

        <Item lstrtext="" name="X" text="Void" />

       </ComboBox>

      </FormField>

     </Grid>

    </HBox>

   </Page>

   <Page lstrtext="false" hidden="--------" imagetype="Image as URL" name="info" fontPitch="default" text="Info" >

    <Grid width="73" posX="0" height="3" posY="0" lstrcomment="false" hidden="--------" name="gr1631" fontPitch="default" scroll="false" >

     <Text width="12" lstrtext="false" gridWidth="12" posX="1" height="1" posY="0" sizePolicy="initial" name="text5539" text="Record Owner" />

     <FormField sqlDBName="ds" colName="tc_voteauser" fieldId="4" sqlTabName="tc_votea_file" name="tc_voteauser" fieldtype="TABLE_COLUMN" >

      <Edit width="10" case="NONE" gridWidth="10" invisible="--------" notNull="--------" posX="22" formfieldname="formfield4" height="1" posY="0" autoNext="--------" lstrcomment="false" hidden="--------" verify="--------" sizePolicy="initial" tabIndex="4" zeroFill="--------" data_type="VARCHAR" lstrtitle="false" name="tc_voteauser" reverse="--------" century="R" color="black" fontPitch="default" noEntry="true" required="--------" scroll="--------" />

     </FormField>

     <Text width="16" lstrtext="false" gridWidth="16" posX="35" height="1" posY="0" sizePolicy="initial" name="text5540" text="Last Modified by" />

     <FormField sqlDBName="ds" colName="tc_voteamodu" fieldId="5" sqlTabName="tc_votea_file" name="tc_voteamodu" fieldtype="TABLE_COLUMN" >

      <Edit width="10" case="NONE" gridWidth="10" invisible="--------" notNull="--------" posX="55" formfieldname="formfield5" height="1" posY="0" autoNext="--------" lstrcomment="false" hidden="--------" verify="--------" sizePolicy="initial" tabIndex="5" zeroFill="--------" data_type="VARCHAR" lstrtitle="false" name="tc_voteamodu" reverse="--------" century="R" color="black" fontPitch="default" noEntry="true" required="--------" scroll="--------" />

     </FormField>

     <Text width="15" lstrtext="false" gridWidth="15" posX="35" height="1" posY="1" sizePolicy="initial" name="text5541" text="Data Valid Code" />

     <FormField sqlDBName="ds" colName="tc_voteaacti" fieldId="6" sqlTabName="tc_votea_file" name="tc_voteaacti" fieldtype="TABLE_COLUMN" >

      <Edit width="10" case="NONE" gridWidth="10" invisible="--------" notNull="--------" posX="55" formfieldname="formfield6" height="1" posY="1" autoNext="--------" lstrcomment="false" hidden="--------" verify="--------" sizePolicy="initial" tabIndex="6" zeroFill="--------" data_type="VARCHAR" lstrtitle="false" name="tc_voteaacti" reverse="--------" century="R" color="black" fontPitch="default" noEntry="true" required="--------" scroll="--------" />

     </FormField>

     <Text width="18" lstrtext="false" gridWidth="18" posX="1" height="1" posY="1" sizePolicy="initial" name="text5543" text="Create/Modify Date" />

     <FormField sqlDBName="ds" colName="tc_voteadate" fieldId="7" sqlTabName="tc_votea_file" name="tc_voteadate" fieldtype="TABLE_COLUMN" >

      <DateEdit width="12" gridWidth="12" notNull="--------" posX="22" formfieldname="formfield7" height="1" posY="1" autoNext="--------" lstrcomment="false" hidden="--------" sizePolicy="initial" tabIndex="7" data_type="DATE" lstrtitle="false" name="tc_voteadate" century="R" color="black" fontPitch="default" noEntry="true" required="--------" />

     </FormField>

    </Grid>

   </Page>

  </PageControl>

  <Table width="287" wantFixedPageSize="--------" unhidableColumns="--------" posX="0" height="8" posY="6" lstrcomment="false" unmovableColumns="--------" hidden="--------" unsizableColumns="--------" totalRows="6" name="s_voteb" fontPitch="default" tabName="s_voteb" tabName1="s_voteb" unsortableColumns="--------" >

   <TableColumn width="20" lstrtext="false" sqlDBName="ds" height="1" colName="tc_voteb02" fieldId="12" unsortable="--------" sqlTabName="tc_voteb_file" tabIndex="12" unsizable="--------" unhidable="--------" unmovable="--------" name="tc_voteb02" text="tc_voteb02" fieldtype="TABLE_COLUMN" >

    <Edit width="20" case="NONE" comment="tc_voteb02" invisible="--------" notNull="true" height="1" autoNext="--------" lstrcomment="false" hidden="--------" verify="--------" sizePolicy="initial" zeroFill="--------" data_type="SMALLINT" lstrtitle="false" reverse="--------" century="R" color="black" fontPitch="default" noEntry="--------" required="true" scroll="--------" />

   </TableColumn>

   <TableColumn width="20" lstrtext="false" sqlDBName="ds" height="1" colName="tc_voteb03" fieldId="13" unsortable="--------" sqlTabName="tc_voteb_file" tabIndex="13" unsizable="--------" unhidable="--------" unmovable="--------" name="tc_voteb03" text="tc_voteb03" fieldtype="TABLE_COLUMN" >

    <Edit width="20" case="NONE" comment="tc_voteb03" invisible="--------" notNull="--------" height="1" autoNext="--------" lstrcomment="false" hidden="--------" verify="--------" sizePolicy="initial" zeroFill="--------" data_type="VARCHAR" lstrtitle="false" reverse="--------" century="R" color="black" fontPitch="default" noEntry="--------" required="--------" scroll="--------" />

   </TableColumn>

   <TableColumn width="20" lstrtext="false" sqlDBName="ds" height="1" colName="tc_voteb04" fieldId="14" unsortable="--------" sqlTabName="tc_voteb_file" tabIndex="14" unsizable="--------" unhidable="--------" unmovable="--------" name="tc_voteb04" text="tc_voteb04" fieldtype="TABLE_COLUMN" >

    <Edit width="20" case="NONE" comment="tc_voteb04" invisible="--------" notNull="--------" height="1" autoNext="--------" lstrcomment="false" hidden="--------" verify="--------" sizePolicy="initial" zeroFill="--------" data_type="VARCHAR" lstrtitle="false" reverse="--------" century="R" color="black" fontPitch="default" noEntry="--------" required="--------" scroll="--------" />

   </TableColumn>

   <TableColumn width="10" lstrtext="false" sqlDBName="ds" height="1" colName="tc_votebacti" fieldId="15" unsortable="--------" sqlTabName="tc_voteb_file" tabIndex="15" unsizable="--------" unhidable="--------" unmovable="--------" name="tc_votebacti" text="tc_votebacti" fieldtype="TABLE_COLUMN" >

    <CheckBox width="17" lstrtext="false" notNull="true" height="1" lstrcomment="false" hidden="--------" sizePolicy="initial" data_type="VARCHAR" lstrtitle="false" fontPitch="default" valueUnchecked="N" noEntry="--------" required="true" text="" valueChecked="Y" />

   </TableColumn>

   <TableColumn width="10" lstrtext="false" sqlDBName="ds" height="1" colName="tc_votebuser" fieldId="16" unsortable="--------" sqlTabName="tc_voteb_file" tabIndex="16" unsizable="--------" unhidable="--------" unmovable="--------" name="tc_votebuser" text="tc_votebuser" fieldtype="TABLE_COLUMN" >

    <Edit width="13" case="NONE" invisible="--------" notNull="--------" height="1" autoNext="--------" lstrcomment="false" hidden="--------" verify="--------" sizePolicy="initial" zeroFill="--------" data_type="VARCHAR" lstrtitle="false" reverse="--------" century="R" color="black" fontPitch="default" noEntry="--------" required="--------" scroll="--------" />

   </TableColumn>

   <TableColumn width="10" lstrtext="false" sqlDBName="ds" colName="tc_votebmodu" fieldId="17" unsortable="--------" sqlTabName="tc_voteb_file" tabIndex="16" unsizable="--------" unhidable="--------" unmovable="--------" name="tc_votebmodu" flag_text_changed="FALSE" text="tc_votebmodu" fieldtype="TABLE_COLUMN" >

    <Edit width="17" case="NONE" justify="none" invisible="--------" notNull="--------" autoNext="--------" lstrcomment="false" colorCondition="black" hidden="--------" verify="--------" sizePolicy="initial" data_type="VARCHAR" reverse="--------" century="R" color="black" fontPitch="default" noEntry="--------" required="--------" scroll="--------" />

   </TableColumn>

   <TableColumn width="15" lstrtext="false" sqlDBName="ds" colName="tc_votebdate" fieldId="18" unsortable="--------" sqlTabName="tc_voteb_file" tabIndex="17" unsizable="--------" unhidable="--------" unmovable="--------" name="tc_votebdate" flag_text_changed="FALSE" text="tc_votebdate" fieldtype="TABLE_COLUMN" >

    <DateEdit justify="none" notNull="--------" lstrcomment="false" colorCondition="black" hidden="--------" sizePolicy="initial" data_type="DATE" century="R" color="black" fontPitch="default" noEntry="--------" required="--------" />

   </TableColumn>

  </Table>

  <Grid width="287" posX="0" height="3" posY="14" lstrcomment="false" hidden="--------" name="gr1632" fontPitch="default" scroll="false" >

   <HLine width="10" gridWidth="10" posX="2" height="1" posY="2" name="hl444" />

   <Text width="4" lstrtext="false" gridWidth="4" posX="13" height="1" posY="2" sizePolicy="initial" name="text5554" text="Rows" />

   <FormField colName="cnt" fieldId="19" sqlTabName="formonly" name="formonly.cnt" fieldtype="FORM_ONLY" >

    <Edit width="6" case="NONE" gridWidth="6" invisible="--------" notNull="--------" posX="19" formfieldname="formfield19" height="1" posY="2" autoNext="--------" lstrcomment="false" hidden="--------" verify="--------" sizePolicy="initial" tabIndex="18" zeroFill="--------" data_type="SMALLINT" lstrtitle="false" name="cnt" reverse="--------" century="R" color="black" fontPitch="default" noEntry="true" required="--------" scroll="--------" />

   </FormField>

   <Text width="1" lstrtext="false" gridWidth="1" posX="27" height="1" posY="2" sizePolicy="initial" name="text5555" text="/" />

   <FormField colName="cn2" fieldId="37" sqlTabName="formonly" name="formonly.cn2" fieldtype="FORM_ONLY" >

    <Edit width="6" case="NONE" gridWidth="6" invisible="--------" notNull="--------" posX="30" formfieldname="formfield20" height="1" posY="2" autoNext="--------" lstrcomment="false" hidden="--------" verify="--------" sizePolicy="initial" tabIndex="19" zeroFill="--------" data_type="SMALLINT" lstrtitle="false" name="cn2" reverse="--------" century="R" color="black" fontPitch="default" noEntry="true" required="--------" scroll="--------" />

   </FormField>

   <HLine width="10" gridWidth="10" posX="38" height="1" posY="2" name="hl445" />

  </Grid>

 </VBox>

 <RecordView SRType="default" fromTable="true" name="s_voteb" tableKey="tb1" >

  <Link colName="tc_voteb02" fromTable="true" colKey="Col2" />

  <Link colName="tc_voteb03" fromTable="true" colKey="Col3" />

  <Link colName="tc_voteb04" fromTable="true" colKey="Col4" />

  <Link colName="tc_votebacti" fromTable="true" colKey="Col5" />

  <Link colName="tc_votebuser" fromTable="true" colKey="Col6" />

  <Link colName="tc_votebmodu" fromTable="true" colKey="Col7" />

  <Link colName="tc_votebdate" fromTable="true" colKey="Col8" />

 </RecordView>

</Form>

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


 
 
 

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

 
# Prog. Version..: '5.00.03-07.09.05(00004)'     #
# Pattern name...: cimp901.4gl
# Descriptions...: ???辣銝餅?/BOM銝餅??蔥?芷雿平
# Date & Author..: 10/12/28 By Jeffrey Hu
DATABASE ds
GLOBALS "../../../tiptop/config/top.global"
#TQC-6B0191
DEFINE tm RECORD
            wc          STRING,
    moddate LIKE type_file.dat,          #No.FUN-680137 DATE
            userid      LIKE type_file.chr10,
            type        LIKE type_file.chr1
          END RECORD,
         g_change_lang   LIKE type_file.chr1     #?臬??隤???
DEFINE g_sql STRING
   
MAIN
DEFINE l_flag LIKE type_file.num5
   OPTIONS
      FORM LINE     FIRST + 2,
      MESSAGE LINE  LAST,
      PROMPT LINE   LAST,
      INPUT NO WRAP
   DEFER INTERRUPT # Supress DEL key function
   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
   IF cl_null(g_bgjob) THEN
      LET g_bgjob = "N"
   END IF
   CALL cl_used(g_prog,g_time,1) RETURNING g_time
   ERROR ""
   LET g_success = 'Y'
   WHILE TRUE
      IF g_bgjob = "N" THEN
         CALL p001_tm() # ?恍璇辣頛詨 ?批
         IF cl_sure(18,20) THEN
            BEGIN WORK
            LET g_success = 'Y'
            CALL exec_sp() # 鞈???蝔?
            CALL s_showmsg()        #No.FUN-710025
            IF g_success = 'Y' THEN
               COMMIT WORK
         MESSAGE('?祆活?瑁?雿平蝯?==> 撌唇???')
               CALL cl_end2(1) RETURNING l_flag
            ELSE
               ROLLBACK WORK
           MESSAGE('?祆活?瑁?雿平蝯?==> ?∩遙雿????')
               CALL cl_end2(2) RETURNING l_flag
            END IF
            IF l_flag THEN
               CONTINUE WHILE
            ELSE
               CLOSE WINDOW p001_w
               EXIT WHILE
            END IF
         ELSE
            CONTINUE WHILE
         END IF
         CLOSE WINDOW p001_w
      ELSE
         BEGIN WORK
         LET g_success = 'Y'
         CALL exec_sp()
         CALL s_showmsg()        #No.FUN-710025
         IF g_success = "Y" THEN
            COMMIT WORK
    MESSAGE('?祆活?瑁?雿平蝯?==> 撌唇???')
         ELSE
            ROLLBACK WORK
    MESSAGE('?祆活?瑁?雿平蝯?==> ?∩遙雿????')
         END IF
         EXIT WHILE
MESSAGE('')
      END IF
MESSAGE('')
   END WHILE
     CALL cl_used(g_prog,g_time,2) RETURNING g_time
END MAIN
FUNCTION p001_tm()
   DEFINE p_row,p_col LIKE type_file.num5
   DEFINE lc_cmd      LIKE type_file.chr1000
   IF s_shut(0) THEN RETURN END IF
   LET p_row = 3 LET p_col = 15
   OPEN WINDOW p001_w AT p_row,p_col WITH FORM "cim/42f/cimp901" 
       ATTRIBUTE (STYLE = g_win_style CLIPPED)
   
   CALL cl_ui_init()
   CALL cl_opmsg('z')
   CALL cl_set_comp_entry("userid,moddate",FALSE)

   MESSAGE('')
   WHILE TRUE
      CLEAR FORM 
      
      INITIALIZE tm.* TO NULL # Default condition
      
      IF cl_null(tm.type) THEN
         LET tm.type = '1'
      END IF
     
      IF cl_null(tm.moddate) THEN
         LET tm.moddate = TODAY
      END IF
      IF cl_null(tm.userid) THEN
         LET tm.userid = g_user
      END IF
   CONSTRUCT BY NAME tm.wc ON ima01
      BEFORE CONSTRUCT
          CALL cl_qbe_init()
      ON ACTION controlp
         CASE
            WHEN INFIELD(ima01) #?辣蝺刻?
               CALL cl_init_qry_var()
               LET g_qryparam.form     = "q_ima"
               LET g_qryparam.state    = "c"
               CALL cl_create_qry() RETURNING g_qryparam.multiret
               DISPLAY g_qryparam.multiret TO ima01
               NEXT FIELD ima01
         END CASE
      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
     
      ON ACTION locale                    #genero
         LET g_change_lang = TRUE
         EXIT CONSTRUCT
      
      ON ACTION exit              #????篇enero
         LET INT_FLAG = 1
         EXIT CONSTRUCT
      ON ACTION qbe_select
         CALL cl_qbe_select()
      END CONSTRUCT
  
      IF g_change_lang THEN
        LET g_change_lang = FALSE
        CALL cl_dynamic_locale()
        CALL cl_show_fld_cont()   #FUN-550037(smin)
        CONTINUE WHILE
     END IF
     IF INT_FLAG THEN
        LET INT_FLAG = 0
        CLOSE WINDOW p001_w
        EXIT PROGRAM
     END IF
   IF tm.wc = " 1=1" THEN
      CALL cl_err('','9046',0)
      CONTINUE WHILE
   END IF
     LET g_bgjob = 'N'
     INPUT BY NAME tm.moddate,tm.userid,tm.type WITHOUT DEFAULTS 
       AFTER FIELD moddate
         IF tm.moddate IS NULL THEN NEXT FIELD tm.moddate END IF
      
 AFTER FIELD userid
         IF tm.userid IS NULL THEN NEXT FIELD userid END IF
        ON ACTION CONTROLZ
           CALL cl_show_req_fields()
        ON ACTION CONTROLG
           CALL cl_cmdask()
        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
 
        ON ACTION exit  #????篇enero
           LET INT_FLAG = 1
           EXIT INPUT
        
        ON ACTION qbe_save
           CALL cl_qbe_save()
        
        ON ACTION locale
            LET g_change_lang = TRUE
            EXIT INPUT
      END INPUT
    EXIT WHILE
   END WHILE
END FUNCTION
FUNCTION exec_sp()
   DEFINE l_sql   STRING
   DEFINE l_cnt   LIKE type_file.num10
   DEFINE l_ima01 LIKE ima_file.ima01
   
   DEFINE l_sp1 STRING
   DEFINE l_sp2 STRING
   LET l_sp1 = "call DS.DEL_BOM(?)"
   LET l_sp2 = "call DS.DEL_ITEM(?)"
 PREPARE exec_sp1 FROM l_sp1
 IF SQLCA.SQLCODE THEN 
      CALL cl_err('prepare exec_sp1',SQLCA.SQLCODE,1)
      LET g_success = 'N'
      RETURN
   END IF
 PREPARE exec_sp2 FROM l_sp2
 IF SQLCA.SQLCODE THEN 
      CALL cl_err('prepare exec_sp2',SQLCA.SQLCODE,1)
      LET g_success = 'N'
      RETURN
   END IF
   LET l_sql=" SELECT DISTINCT ima01 ",
             " FROM ima_file",
             " WHERE ",tm.wc CLIPPED,
             " ORDER BY 1 "
   PREPARE item_cs_p FROM l_sql
   IF SQLCA.sqlcode THEN 
      CALL cl_err('prepare item_cs_p',SQLCA.sqlcode,1)
      LET g_success = 'N'
      RETURN
   END IF
   DECLARE item_cs CURSOR FOR item_cs_p
   CALL s_showmsg_init()     #No.FUN-710025
   FOREACH item_cs INTO l_ima01
  
   IF SQLCA.SQLCODE THEN 
       CALL s_errmsg('','','prepare FOREACH',SQLCA.SQLCODE,1) 
       LET g_success = 'N'
         RETURN
   END IF
  CASE tm.type
      WHEN "1"
         EXECUTE exec_sp1 USING l_ima01 IN
      WHEN "2"
         EXECUTE exec_sp2 USING l_ima01 IN
      WHEN "3"
        EXECUTE exec_sp1 USING l_ima01 IN
        EXECUTE exec_sp2 USING l_ima01 IN
      OTHERWISE
         LET g_success='N'
         RETURN      
   END CASE
     IF SQLCA.SQLCODE THEN 
               CALL s_errmsg('','','exec exec_sp',SQLCA.SQLCODE,1) 
       LET g_success = 'N'
               RETURN
       EXIT FOREACH
   END IF
   END FOREACH 
END FUNCTION

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

 
<?xml version="1.0" encoding="UTF-8" ?>
<Form width="49" lstrtoalltitle="false" lstrtoallitem="false" database_name="ds" CHECKSUM="-1" spacing="normal" posX="0" posY="0" height="11" percommentheader="" percommentinstruction="" percommentattribute="" lstrtoallcomment="false" percommentschema="" fourSTFile="" name="cimp901" defaultspacing="true" text="cimp901" gstVersion="11401" percommentlayout="GRID
VBOX
LAYOUT
" lstrtoalltext="false" >
 <VBox tag="" posX="0" posY="0" hidden="" style="" name="" >
  <Grid width="46" posX="0" posY="0" height="11" lstrcomment="false" hidden="--------" name="gr1" fontPitch="default" scroll="false" >
   <Group width="45" lstrtext="false" gridWidth="46" posX="0" posY="0" height="6" lstrcomment="false" hidden="--------" name="group01" fontPitch="default" text="QBE" gridHeight="4" gridChildrenInParent="--------" >
    <Text width="5" lstrtext="false" gridWidth="5" posX="1" posY="1" height="1" sizePolicy="initial" name="text1" text="Item#" />
    <FormField sqlDBName="ds" colName="ima01" fieldId="0" sqlTabName="ima_file" name="ima01" fieldtype="TABLE_COLUMN" >
     <ButtonEdit width="30" comment="Query Item#" case="NONE" gridWidth="30" invisible="--------" notNull="true" posX="14" image="zoom" height="1" posY="1" action="controlp" formfieldname="formfield0" lstrcomment="false" autoNext="--------" imagetype="Select File" hidden="--------" verify="--------" tabIndex="1" sizePolicy="initial" zeroFill="--------" name="ima01" data_type="VARCHAR" lstrtitle="false" reverse="--------" fontPitch="default" color="black" century="R" required="true" noEntry="--------" scroll="--------" />
    </FormField>
    <Text width="12" lstrtext="false" gridWidth="10" posX="1" posY="2" height="1" sizePolicy="initial" name="text2" text="Modify Date#" />
    <FormField colName="moddate" sqlTabName="formonly" fieldtype="FORM_ONLY" >
     <DateEdit width="10" justify="none" notNull="--------" posX="14" posY="2" height="1" formfieldname="formfield3" lstrcomment="false" colorCondition="black" hidden="--------" tabIndex="3" sizePolicy="initial" name="moddate" data_type="DATE" fontPitch="default" color="black" century="R" required="--------" noEntry="--------" />
    </FormField>
    <Text width="7" posX="1" posY="3" height="1" name="text3" text="UserID#" />
    <FormField colName="userid" sqlTabName="formonly" fieldtype="FORM_ONLY" >
     <Edit width="10" case="NONE" justify="none" invisible="--------" notNull="--------" posX="14" posY="3" height="1" formfieldname="formfield4" autoNext="--------" lstrcomment="false" colorCondition="black" hidden="--------" verify="--------" tabIndex="4" sizePolicy="initial" name="userid" data_type="VARCHAR" reverse="--------" fontPitch="default" color="black" century="R" required="--------" noEntry="--------" scroll="--------" />
    </FormField>
   </Group>
   <Group width="45" lstrtext="false" gridWidth="46" posX="0" posY="7" height="3" lstrcomment="false" hidden="--------" name="group02" fontPitch="default" text="Source" gridHeight="3" gridChildrenInParent="--------" >
    <FormField colName="type" fieldId="2" sqlTabName="formonly" name="formonly.type" fieldtype="FORM_ONLY" >
     <RadioGroup width="41" gridWidth="12" notNull="true" posX="2" defaultValue="1" height="1" posY="1" formfieldname="formfield2" lstrcomment="false" orientation="horizontal" hidden="--------" tabIndex="2" sizePolicy="initial" name="type" lstrtitle="false" fontPitch="default" century="R" required="true" noEntry="--------" >
      <Item lstrtext="" name="1" text="Del BOM" />
      <Item lstrtext="" name="2" text="Del Item" />
      <Item lstrtext="" name="3" text="Del BOM Item" />
     </RadioGroup>
    </FormField>
   </Group>
  </Grid>
 </VBox>
</Form>

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


 
 
 

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


 
 
 

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

 
<?xml version="1.0" encoding="UTF-8" ?>
<Form width="93" lstrtoalltitle="false" lstrtoallitem="false" database_name="formonly" CHECKSUM="-1" spacing="normal" posX="0" posY="0" height="15" percommentheader="" percommentinstruction="" percommentattribute="" lstrtoallcomment="false" percommentschema="" name="cbmr901" fourSTFile="" defaultspacing="true" text="cxmr661" browserStatus="true" gstVersion="11401" lstrtoalltext="false" percommentlayout="GRID
GRID
VBOX
LAYOUT
" >
 <VBox tag="" posX="0" posY="0" hidden="" style="" name="" >
  <Grid width="90" posX="0" height="12" posY="0" lstrcomment="false" hidden="--------" name="gr1" fontPitch="default" scroll="false" >
   <Group width="88" lstrtext="false" gridWidth="90" posX="1" height="10" posY="0" lstrcomment="false" hidden="--------" name="group02" fontPitch="default" gridHeight="6" text="INPUT" gridChildrenInParent="--------" >
    <FormField colName="cb_plant" fieldId="6" sqlTabName="formonly" name="formonly.cb_plant" fieldtype="FORM_ONLY" >
     <ComboBox width="20" case="NONE" gridWidth="20" notNull="--------" posX="9" formfieldname="formfield6" height="1" posY="1" lstrcomment="false" hidden="--------" sizePolicy="initial" tabIndex="1" lstrtitle="false" name="cb_plant" century="R" color="black" fontPitch="default" noEntry="--------" queryEditable="true" required="--------" >
      <Item lstrtext="false" name="DS01" text="DS01" />
      <Item lstrtext="false" name="DS02" text="DS02" />
      <Item lstrtext="false" name="DS03" text="DS03" />
      <Item lstrtext="false" name="DS04" text="DS04" />
      <Item lstrtext="false" name="DS05" text="DS05" />
      <Item lstrtext="false" name="DS06" text="DS06" />
      <Item lstrtext="false" name="DS07" text="DS07" />
      <Item lstrtext="false" name="DS08" text="DS08" />
      <Item lstrtext="false" name="DS09" text="DS09" />
      <Item lstrtext="false" name="DS14" text="DS14" />
      <Item lstrtext="false" name="DS15" text="DS15" />
     </ComboBox>
    </FormField>
    <FormField colName="cb_year" fieldId="7" sqlTabName="formonly" name="formonly.cb_year" fieldtype="FORM_ONLY" >
     <ComboBox width="20" case="NONE" gridWidth="21" notNull="--------" posX="9" formfieldname="formfield7" height="1" posY="3" lstrcomment="false" hidden="--------" sizePolicy="initial" tabIndex="2" lstrtitle="false" name="cb_year" century="R" color="black" fontPitch="default" noEntry="--------" queryEditable="true" required="--------" >
      <Item lstrtext="false" name="2008" text="2008" />
      <Item lstrtext="false" name="2009" text="2009" />
      <Item lstrtext="false" name="2010" text="2010" />
      <Item lstrtext="false" name="2011" text="2011" />
      <Item lstrtext="false" name="2012" text="2012" />
      <Item lstrtext="false" name="2013" text="2013" />
     </ComboBox>
    </FormField>
    <FormField colName="cb_month" fieldId="8" sqlTabName="formonly" name="formonly.cb_month" fieldtype="FORM_ONLY" >
     <ComboBox width="20" case="NONE" gridWidth="22" notNull="--------" posX="9" formfieldname="formfield8" height="1" posY="5" lstrcomment="false" hidden="--------" sizePolicy="initial" tabIndex="3" lstrtitle="false" name="cb_month" century="R" color="black" fontPitch="default" noEntry="--------" queryEditable="true" required="--------" >
      <Item lstrtext="false" name="1" text="1" />
      <Item lstrtext="false" name="2" text="2" />
      <Item lstrtext="false" name="3" text="3" />
      <Item lstrtext="false" name="4" text="4" />
      <Item lstrtext="false" name="5" text="5" />
      <Item lstrtext="false" name="6" text="6" />
      <Item lstrtext="false" name="7" text="7" />
      <Item lstrtext="false" name="8" text="8" />
      <Item lstrtext="false" name="9" text="9" />
      <Item lstrtext="false" name="10" text="10" />
      <Item lstrtext="false" name="11" text="11" />
      <Item lstrtext="false" name="12" text="12" />
     </ComboBox>
    </FormField>
    <Text width="5" posX="1" posY="1" height="1" name="text1" text="Plant" />
    <Text width="4" posX="1" posY="3" height="1" name="text2" text="Year" />
    <Text width="5" posX="1" posY="5" height="1" name="text3" text="Month" />
   </Group>
  </Grid>
  <Grid width="90" posX="0" height="1" posY="12" lstrcomment="false" hidden="--------" name="gr2" fontPitch="default" scroll="false" />
 </VBox>
</Form>

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

 
# Prog. Version..: '5.00.06-08.07.09(00005)'     #
# Pattern name...: cbmr901.4gl
# Descriptions...: ?????極?株??€€??蝝啗」??
# Modify ........: 
DATABASE ds
GLOBALS "../../../tiptop/config/top.global"
DEFINE tm          RECORD
    wc         LIKE type_file.chr1000,     # Where condition
cb_plant   LIKE type_file.chr10,       #??銝剖? ??? [TEXTINPUT] DS01,DS02...
        cb_year    LIKE type_file.num5,        #撟游漲 銝??詨? [COMBOBOX]      2008 - 2014
        cb_month   LIKE type_file.num5         #?遢 銝??詨? [COMBOBOX]      1-12
END RECORD
DEFINE l_flag     LIKE type_file.num5    #SMALLINT,
DEFINE g_level_end ARRAY[20] OF LIKE type_file.num5 #SMALLINT
DEFINE   g_argv1         LIKE type_file.chr1
DEFINE   g_i             LIKE type_file.num5   #SMALLINT   #count/index for any purpose
                                                                                                         
DEFINE l_table    STRING                                                                                                            
DEFINE g_str      STRING                                                                                                   
DEFINE g_sql      STRING                                                                                                            
MAIN
   OPTIONS
       FORM LINE     FIRST + 2,
       MESSAGE LINE  LAST,
       PROMPT LINE   LAST,
       INPUT NO WRAP
   DEFER INTERRUPT # Supress DEL key function
   
   LET g_argv1 = ARG_VAL(1)
   LET g_towhom = ARG_VAL(2)
   LET g_rlang  = ARG_VAL(3)
   LET g_bgjob  = ARG_VAL(4)
   LET g_prtway = ARG_VAL(5)
   LET g_copies = ARG_VAL(6)
   LET tm.wc  = ARG_VAL(7)
   LET tm.cb_plant  = ARG_VAL(8)
   LET tm.cb_year  = ARG_VAL(9)
   LET tm.cb_month      = ARG_VAL(10)
   LET g_prog ="cbmr901"
   IF (NOT cl_user()) THEN
      EXIT PROGRAM
   END IF
  
   WHENEVER ERROR CALL cl_err_msg_log
  
   IF (NOT cl_setup("CBM")) THEN  
      EXIT PROGRAM
   END IF                                                                                                    
   ## BEGIN: ??Crystal Reports 銝脰畾?- <<<< ?Y?Temp Table >>>> 2010/12/27 Jeffrey Hu *** ##
   LET g_sql  = "x1.type_file.chr10,",
                "x2.type_file.chr18,",
                "x3.type_file.chr10,",
                "x4.type_file.chr50,",
                "x5.type_file.chr50,",   
                "x6.type_file.chr50,",                
                "x7.type_file.chr1000,",
"x8.type_file.chr1000,",
"x9.type_file.num20,",
"x10.type_file.chr50"
   ## END: ??Crystal Reports 銝脰畾?- <<<< ?Y?Temp Table >>>> 2010/12/27 Jeffrey Hu *** ##   
                            
   LET l_table = cl_prt_temptable('cbmr901',g_sql) CLIPPED
   IF l_table = -1 THEN EXIT PROGRAM END IF           
   LET g_sql = "INSERT INTO ",g_cr_db_str CLIPPED,l_table CLIPPED," VALUES(?,?,?,?,?, ?,?,?,?,? ) "                                                                                                     
   PREPARE insert_prep FROM g_sql                                                                                                   
   IF STATUS THEN                                                                                                                   
      CALL cl_err('insert_prep:',status,1) EXIT PROGRAM                                                                             
   END IF                                                                                         
 
   IF cl_null(g_bgjob) OR g_bgjob = 'N' # If background job sw is off
      THEN CALL r002_tm(0,0)          # Input print condition
      ELSE CALL cbmr901() # Read data and create out-file
   END IF
END MAIN
FUNCTION r002_tm(p_row,p_col)
   DEFINE  p_row,p_col LIKE type_file.num5,   #SMALLINT,
                l_flag LIKE type_file.num5,   #SMALLINT,
                l_one         LIKE type_file.chr1,    #CHAR(01)
                l_cmd         LIKE type_file.chr1000  #CHAR(1000)
   IF p_row = 0 THEN LET p_row = 4 LET p_col =14 END IF
   #UI
   IF g_gui_type MATCHES "[13]" AND fgl_getenv('GUI_VER') = '6' THEN
       LET p_row = 7 LET p_col = 20
   ELSE
       LET p_row = 4 LET p_col = 14
   END IF
   OPEN WINDOW r002_w AT p_row,p_col
        WITH FORM "cbm/42f/cbmr901" 
   ATTRIBUTE (STYLE = g_win_style  CLIPPED)
    
   CALL cl_ui_init()
   CALL cl_opmsg('p')
   
   INITIALIZE tm.* TO NULL # Default condition
   #### BEGIN: INPUT 霈 FOR SQL 璇辣撘?
   LET tm.cb_plant = 'DS01'
   LET tm.cb_year  = YEAR(TODAY)
   LET tm.cb_month = MONTH(TODAY)
   #### END:   INPUT 霈 FOR SQL 璇辣撘?
   LET g_pdate = g_today
   LET g_rlang = g_lang
   LET g_bgjob = 'N'
   LET g_copies = '1'
   WHILE TRUE
   INPUT BY NAME tm.cb_plant,tm.cb_year,tm.cb_month
   WITHOUT DEFAULTS
    AFTER FIELD cb_plant
            IF cl_null(tm.cb_plant) THEN
               NEXT FIELD cb_year
            END IF 
    AFTER FIELD cb_year
            IF cl_null(tm.cb_year) THEN
               NEXT FIELD cb_month
            END IF 
      ON ACTION CONTROLZ
            CALL cl_show_req_fields()
 
      ON ACTION CONTROLG
            CALL cl_cmdask() 
      ON IDLE g_idle_seconds
         CALL cl_on_idle()
         CONTINUE INPUT
      ON ACTION about
         CALL cl_about()
      ON ACTION help
         CALL cl_show_help()
      ON ACTION exit
         LET INT_FLAG = 1
         EXIT INPUT
   END INPUT
       IF g_action_choice = "locale" THEN
          LET g_action_choice = ""
          CALL cl_dynamic_locale()
          CONTINUE WHILE
       END IF
   IF INT_FLAG THEN
      LET INT_FLAG = 0 
      CLOSE WINDOW r002_w 
      EXIT PROGRAM
   END IF
   IF g_bgjob = 'Y' THEN
      SELECT zz08 INTO l_cmd FROM zz_file #get exec cmd (fglgo xxxx)
             WHERE zz01='cbmr901'
      IF SQLCA.sqlcode OR cl_null(l_cmd) THEN
         CALL cl_err('cbmr901','9031',1)
      ELSE
         LET tm.wc =cl_replace_str(tm.wc, "'", "\"")
         LET l_cmd = l_cmd CLIPPED, #(at time fglgo xxxx p1 p2 p3)
                         " '",g_pdate CLIPPED,"'",
                         " '",g_towhom CLIPPED,"'",
                         " '",g_lang CLIPPED,"'",
                         " '",g_bgjob CLIPPED,"'",
                         " '",g_prtway CLIPPED,"'",
                         " '",g_copies CLIPPED,"'",
                         " '",tm.wc CLIPPED,"'",
                         " '",tm.cb_plant CLIPPED,"'",
 " '",tm.cb_year CLIPPED,"'",
 " '",tm.cb_month CLIPPED,"'"
         CALL cl_cmdat('cbmr901',g_time,l_cmd) # Execute cmd at later time
      END IF
      CLOSE WINDOW r002_w 
EXIT PROGRAM
   END IF
   CALL cl_wait()
   CALL cbmr901()
   ERROR ""
END WHILE
   CLOSE WINDOW r002_w
END FUNCTION
   
FUNCTION cbmr901()
DEFINE   l_sql STRING
DEFINE   l_prog LIKE type_file.chr10
DEFINE sr RECORD
          x1  LIKE type_file.chr10,
          x2  LIKE type_file.chr18,
          x3  LIKE type_file.chr10,
          x4  LIKE type_file.chr50,
          x5  LIKE type_file.chr50,   
          x6  LIKE type_file.chr50,                
          x7  LIKE type_file.chr1000,
  x8  LIKE type_file.chr1000,
  x9  LIKE type_file.num20,
  x10 LIKE type_file.chr50
        END RECORD
      CALL cl_del_data(l_table)     
      LET l_prog = g_prog
     ## BEGIN: SQL COMMAND WRITE HERE
      LET l_sql = " select '",tm.cb_plant CLIPPED,"' X1,tlf905 X2,to_char(tlf06,'yyyy/mm/dd') X3,to_char(tlf906) X4,tlf62 X5,tlf01 X6,ima02 X7,ima021 X8,(tlf10*tlf907*(-1)) X9, USERNAME X10 ",
              " from ",
              tm.cb_plant CLIPPED,".ima_file,",
              tm.cb_plant CLIPPED,".tlf_file,",
              tm.cb_plant CLIPPED,".sfp_file,",
              " DS.STAFF_file ",
              " where ima01 = tlf01 and tlf13 in ('asfi512','asfi527') and tlf907 <> 0 ",
              " AND year(tlf06) = '",tm.cb_year CLIPPED,"' AND month(tlf06) = '",tm.cb_month CLIPPED,"' ",
              " and tlf905 = sfp01 and sfpuser = USERID(+) order by 2,3 "
     ## END: SQL COMMAND WRITE HERE
     PREPARE r002_prepare1 FROM l_sql
     IF SQLCA.sqlcode != 0 THEN 
        CALL cl_err('prepare:',SQLCA.sqlcode,1) EXIT PROGRAM 
     END IF
     DECLARE r002_curs1 CURSOR FOR r002_prepare1
     INITIALIZE sr.* TO NULL
   #BEGIN: 頛詨鞈?
   FOREACH r002_curs1 INTO sr.*
      
      IF SQLCA.sqlcode != 0 THEN
         CALL cl_err('foreach:',SQLCA.sqlcode,1)
         EXIT FOREACH
      END IF
      
      EXECUTE insert_prep USING sr.x1,sr.x2,sr.x3,sr.x4,sr.x5,
              sr.x6,sr.x7,sr.x8,sr.x9,sr.x10
   END FOREACH
   #END: 頛詨鞈?
   LET g_prog = 'cbmr901'    
   LET g_str= tm.wc,";",l_prog                                                                           
   LET l_sql = "SELECT * FROM ", g_cr_db_str CLIPPED, l_table CLIPPED       
                          
   CALL cl_prt_cs3('cbmr901','cbmr901',l_sql,g_str)
   
   LET g_prog = l_prog    
   
END FUNCTION

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

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。