12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- $PBExportHeader$f_checkpz.srf
- global type f_checkpz from function_object
- end type
- forward prototypes
- global subroutine f_checkpz (string arg_status, ref s_mtrlcfg_expr arg_mtrl_config_expr[])
- end prototypes
- global subroutine f_checkpz (string arg_status, ref s_mtrlcfg_expr arg_mtrl_config_expr[]);s_mtrlcfg_expr s_mtrl_config_expr[],s_mtrl_config_union[]
- Long i,j,ll_i,ll_j
- Boolean flag
- String str[]
- i = 0
- flag = TRUE
- DO WHILE flag //分离利用'+'号分割字符串
- IF Pos(arg_status,'+') > 0 THEN
- i++
- str[i] = Mid(arg_status,1,Pos(arg_status,'+') - 1 )
- arg_status = Mid(arg_status,Pos(arg_status , '+') + 1)
- ELSE
- flag = FALSE
- str[i+1] = arg_status
- END IF
- LOOP
- FOR i = 1 TO UpperBound(str[]) //分离利用'*'号分割出配置名和数量
- IF Pos(str[i] , '*') > 0 THEN
- s_mtrl_config_expr[i].cfgname = Trim(Mid(str[i],1,Pos(str[i],'*') - 1))
- s_mtrl_config_expr[i].qty = Trim(Mid(str[i] , (Pos(str[i] , '*') + 1), Len(str[i]) - (Pos(str[i] , '*') + 1) + 1))
- ELSE
- s_mtrl_config_expr[i].cfgname = Trim(str[i])
- s_mtrl_config_expr[i].qty = '1'
- END IF
- NEXT
- j = 0
- FOR ll_i = 1 TO UpperBound(s_mtrl_config_expr)
- FOR ll_j = 1 TO j
- IF s_mtrl_config_union[ll_j].cfgname = s_mtrl_config_expr[ll_i].cfgname THEN
- s_mtrl_config_union[ll_j].qty = String(Dec(s_mtrl_config_union[ll_j].qty) + Dec(s_mtrl_config_expr[ll_j].qty))
- GOTO next_
- END IF
- NEXT
-
- j++
- s_mtrl_config_union[j].cfgname = s_mtrl_config_expr[ll_i].cfgname
- s_mtrl_config_union[j].qty = s_mtrl_config_expr[ll_i].qty
- next_:
- NEXT
- arg_mtrl_config_expr = s_mtrl_config_union
- end subroutine
|