12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- $PBExportHeader$f_checkpz_general.srf
- global type f_checkpz_general from function_object
- end type
- forward prototypes
- global subroutine f_checkpz_general (long arg_mtrlid, string arg_status, ref s_mtrlcfg_expr arg_s_mtrlcfg[])
- end prototypes
- global subroutine f_checkpz_general (long arg_mtrlid, string arg_status, ref s_mtrlcfg_expr arg_s_mtrlcfg[]);String ls_status,ls_status_left,ls_status_right
- String ls_status_general,ls_status_general_array[]
- Long ll_array,ll_array2,i,j,ll_pos,ll_pos_cnt
- Long ll_cnt_s_mtrlcfg
- s_mtrlcfg_expr s_mtrlcfg_tmp[]
- DECLARE cur_pz CURSOR FOR
- SELECT u_mtrl_configure.name
- FROM u_mtrl_configure
- WHERE ( mtrlid = :arg_mtrlid ) AND
- ( u_mtrl_configure.ifgeneral = 1 )
- Order By u_mtrl_configure.Name Asc ;
- OPEN cur_pz;
- FETCH cur_pz Into :ls_status_general;
- DO WHILE sqlca.SQLCode = 0
- ll_array++
- ls_status_general_array[ll_array] = ls_status_general
- FETCH cur_pz Into :ls_status_general;
- LOOP
- CLOSE cur_pz;
- ll_array2 = UpperBound(arg_s_mtrlcfg)
- IF ll_array = 0 THEN
- f_checkpz(arg_status,s_mtrlcfg_tmp)
- ll_cnt_s_mtrlcfg = UpperBound(s_mtrlcfg_tmp)
- FOR j = 1 To ll_cnt_s_mtrlcfg
- ll_array2++
- arg_s_mtrlcfg[ll_array2].cfgname = s_mtrlcfg_tmp[j].cfgname
- arg_s_mtrlcfg[ll_array2].qty = s_mtrlcfg_tmp[j].qty
- NEXT
- ELSE
- ls_status = arg_status
-
- FOR i = 1 To ll_array
- ll_pos = Pos(ls_status,ls_status_general_array[i])
- IF ll_pos > 0 THEN
- ll_array2++
- arg_s_mtrlcfg[ll_array2].cfgname = Trim(ls_status_general_array[i])
- arg_s_mtrlcfg[ll_array2].qty = '1'
-
- ls_status_left = Left(ls_status,ll_pos - 1)
-
- IF ls_status_left <> '' THEN
- ls_status_left = Left(ls_status_left,Len(ls_status_left) - 1)
- f_checkpz_general(arg_mtrlid,ls_status_left,arg_s_mtrlcfg)
- END IF
-
- ls_status_right = Mid(ls_status,ll_pos + Len(Trim(ls_status_general_array[i])))
- IF ls_status_right <> '' THEN
- ls_status_right = Mid(ls_status_right,2)
- f_checkpz_general(arg_mtrlid,ls_status_right,arg_s_mtrlcfg)
- END IF
- ll_pos_cnt++
- EXIT
- END IF
- NEXT
-
- IF ll_pos_cnt = 0 THEN
- f_checkpz(arg_status,s_mtrlcfg_tmp)
- ll_cnt_s_mtrlcfg = UpperBound(s_mtrlcfg_tmp)
- FOR j = 1 To ll_cnt_s_mtrlcfg
- ll_array2++
- arg_s_mtrlcfg[ll_array2].cfgname = s_mtrlcfg_tmp[j].cfgname
- arg_s_mtrlcfg[ll_array2].qty = s_mtrlcfg_tmp[j].qty
- NEXT
- END IF
- END IF
- end subroutine
|