$PBExportHeader$f_mtrl_pz.srf global type f_mtrl_pz from function_object end type forward prototypes global function string f_mtrl_pz (s_pzwin_open arg_s_open) end prototypes global function string f_mtrl_pz (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