123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- $PBExportHeader$f_get_empson.srf
- global type f_get_empson from function_object
- end type
- forward prototypes
- global function string f_get_empson (s_pzwin_open arg_s_open)
- global subroutine f_get_empson (long arg_pempid, ref long arg_empid_arr[])
- end prototypes
- global function string f_get_empson (s_pzwin_open arg_s_open);String rslt_pz
- String ls_col_name
- Int li_flag_status,li_flag_woodcode,li_flag_pcode
- Long ll_statustype,ll_woodcodetype,ll_pcodetype
- IF arg_s_open.arg_mtrlid = 0 THEN
- rslt_pz = ''
- GOTO ext
- END IF
- ls_col_name = Lower(arg_s_open.arg_col)
- IF Pos(ls_col_name,'status') > 0 THEN
- SELECT statusflag,statustype
- INTO :li_flag_status,:ll_statustype
- FROM u_mtrldef
- Where mtrlid = :arg_s_open.arg_mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- rslt_pz = ''
- GOTO ext
- END IF
-
- CHOOSE CASE li_flag_status
- CASE 0
- arg_s_open.arg_mtrlid = 0
- arg_s_open.arg_dwname = 'dw_pz_ch_color'
- OpenWithParm(w_pz_ch,arg_s_open)
- rslt_pz = Message.StringParm
- CASE 1
- arg_s_open.arg_mtrlid = ll_statustype
- arg_s_open.arg_dwname = 'dw_pz_ch_pztype'
- OpenWithParm(w_pz_ch,arg_s_open)
- rslt_pz = Message.StringParm
- CASE 2
-
- OpenWithParm(w_configure_ch,arg_s_open)
- rslt_pz = Message.StringParm
- CASE 3
- rslt_pz = ''
- GOTO ext
- CASE 4
- arg_s_open.arg_id = arg_s_open.arg_mtrlid
- arg_s_open.arg_mtrlid = ll_statustype
-
- arg_s_open.arg_editmode = true
- OpenWithParm(w_configure_pzmx_ch,arg_s_open)
- rslt_pz = Message.StringParm
- CASE ELSE
- rslt_pz = ''
- GOTO ext
- END CHOOSE
-
- ELSEIF Pos(ls_col_name,'woodcode') > 0 THEN
- SELECT woodcodeflag,woodcodetype
- INTO :li_flag_woodcode,:ll_woodcodetype
- FROM u_mtrldef
- Where mtrlid = :arg_s_open.arg_mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- rslt_pz = ''
- GOTO ext
- END IF
-
- CHOOSE CASE li_flag_woodcode
- CASE 0
- arg_s_open.arg_mtrlid = 0
- arg_s_open.arg_dwname = 'dw_pz_ch_woodcode'
- OpenWithParm(w_pz_ch,arg_s_open)
- rslt_pz = Message.StringParm
- CASE 1
- arg_s_open.arg_mtrlid = ll_woodcodetype
- arg_s_open.arg_dwname = 'dw_pz_ch_pztype'
- OpenWithParm(w_pz_ch,arg_s_open)
- rslt_pz = Message.StringParm
- CASE 4
- arg_s_open.arg_id = arg_s_open.arg_mtrlid
- arg_s_open.arg_mtrlid = ll_woodcodetype
-
- arg_s_open.arg_editmode = true
- OpenWithParm(w_configure_pzmx_ch,arg_s_open)
- rslt_pz = Message.StringParm
- CASE ELSE
- rslt_pz = ''
- GOTO ext
- END CHOOSE
-
- ELSEIF Pos(ls_col_name,'pcode') > 0 THEN
- SELECT pcodeflag,pcodetype
- INTO :li_flag_pcode,:ll_pcodetype
- FROM u_mtrldef
- Where mtrlid = :arg_s_open.arg_mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- rslt_pz = ''
- GOTO ext
- END IF
-
- CHOOSE CASE li_flag_pcode
- CASE 0
- arg_s_open.arg_mtrlid = 0
- arg_s_open.arg_dwname = 'dw_pz_ch_pcode'
- OpenWithParm(w_pz_ch,arg_s_open)
- rslt_pz = Message.StringParm
- CASE 1
- arg_s_open.arg_mtrlid = ll_pcodetype
- arg_s_open.arg_dwname = 'dw_pz_ch_pztype'
- OpenWithParm(w_pz_ch,arg_s_open)
- rslt_pz = Message.StringParm
- CASE 4
- arg_s_open.arg_id = arg_s_open.arg_mtrlid
- arg_s_open.arg_mtrlid = ll_pcodetype
-
- arg_s_open.arg_editmode = true
- OpenWithParm(w_configure_pzmx_ch,arg_s_open)
- rslt_pz = Message.StringParm
- CASE ELSE
- rslt_pz = ''
- GOTO ext
- END CHOOSE
- ELSE
- rslt_pz = ''
- GOTO ext
- END IF
- ext:
- RETURN rslt_pz
- end function
- global subroutine f_get_empson (long arg_pempid, ref long arg_empid_arr[]);Long ll_empid, ll_empid_arr[]
- Long cnt, i
- string list
- DECLARE find_empson CURSOR FOR
- SELECT empid
- FROM u_user
- Where pempid = :arg_pempid
- and empid <> 0;
- OPEN find_empson;
- FETCH find_empson Into :ll_empid ;
- DO WHILE sqlca.SQLCode = 0
- cnt = UpperBound(arg_empid_arr)
- arg_empid_arr[cnt+1] = ll_empid
- i++
- ll_empid_arr[i] = ll_empid
- FETCH find_empson Into :ll_empid ;
- LOOP
- CLOSE find_empson;
- FOR i = 1 To UpperBound(ll_empid_arr)
- f_get_empson(ll_empid_arr[i], arg_empid_arr)
- NEXT
- end subroutine
|