$PBExportHeader$uo_workremind.sru forward global type uo_workremind from nonvisualobject end type end forward global type uo_workremind from nonvisualobject end type global uo_workremind uo_workremind type variables s_workrmd_info s_wrmd[] //工作提醒原始条件 Long srmd_p = 0 //指针 long scid[],storageid[] long srmd_sc,srmd_storage end variables forward prototypes public subroutine f_init_wrmd_info () public function integer f_init () public subroutine f_syntaxfromsql (long arg_scid, long arg_funcid, long arg_powerid, long arg_storageid, string arg_powername, string arg_sql, string arg_sc_str, string arg_storage_str) public function integer f_getwrmdrslt () end prototypes public subroutine f_init_wrmd_info ();//f_init_wrmd_info //Atype=0:直接执行Asql //Atype=1:拼语句执行Asql //powerid=0:根权限无直接关系的提醒 s_wrmd[1].powerid = 6 s_wrmd[1].funcid = 102 s_wrmd[1].dscrp = '销售订单审核' s_wrmd[1].Asql = 'select count(*) from u_saletask where status = 0' s_wrmd[1].Atype = 0 s_wrmd[1].ifsc = TRUE s_wrmd[1].ifstorage = FALSE s_wrmd[2].powerid = 65 s_wrmd[2].funcid = 104 s_wrmd[2].dscrp = '销售单仓库审核' s_wrmd[2].Asql = 'select count(*) from u_outware where billtype = 1 and flag = 0' s_wrmd[2].Atype = 0 s_wrmd[2].ifsc = TRUE s_wrmd[2].ifstorage = TRUE s_wrmd[3].powerid = 137 s_wrmd[3].funcid = 104 s_wrmd[3].dscrp = '销售单财务审核' s_wrmd[3].Asql = 'select count(*) from u_outware where billtype = 1 and flag = 1 and secflag = 0' s_wrmd[3].Atype = 0 s_wrmd[3].ifsc = TRUE s_wrmd[3].ifstorage = TRUE s_wrmd[4].powerid = 23 s_wrmd[4].funcid = 122 s_wrmd[4].dscrp = '投诉单审核' s_wrmd[4].Asql = 'select count(*) from u_oppose where flag = 0 and billtype = 1' s_wrmd[4].Atype = 0 s_wrmd[4].ifsc = FALSE s_wrmd[4].ifstorage = FALSE s_wrmd[5].powerid = 86 s_wrmd[5].funcid = 204 s_wrmd[5].dscrp = '产品工价表审核' s_wrmd[5].Asql = 'select count(*) from u_mtrldef where Auditflag = 0 and mtrlprp = 0' s_wrmd[5].Atype = 0 s_wrmd[5].ifsc = FALSE s_wrmd[5].ifstorage = FALSE s_wrmd[6].powerid = 29 s_wrmd[6].funcid = 304 s_wrmd[6].dscrp = '工组完成时间调整审核' s_wrmd[6].Asql = 'select count(*) from u_orderworkgroup_time where flag = 0' s_wrmd[6].Atype = 0 s_wrmd[6].ifsc = FALSE s_wrmd[6].ifstorage = FALSE s_wrmd[7].powerid = 36 s_wrmd[7].funcid = 223 s_wrmd[7].dscrp = '生产计划审核' s_wrmd[7].Asql = 'select count(*) from u_order_ml where status = 0' s_wrmd[7].Atype = 0 s_wrmd[7].ifsc = TRUE s_wrmd[7].ifstorage = FALSE s_wrmd[8].powerid = 41 s_wrmd[8].funcid = 213 s_wrmd[8].dscrp = '外加工计划审核' s_wrmd[8].Asql = 'select count(*) from u_order_wfjg where status = 0' s_wrmd[8].Atype = 0 s_wrmd[8].ifsc = TRUE s_wrmd[8].ifstorage = FALSE s_wrmd[9].powerid = 56 s_wrmd[9].funcid = 202 s_wrmd[9].dscrp = '产品结构审核' s_wrmd[9].Asql = 'select count(*) from u_mtrldef where SAuditflag = 0 and mtrlprp = 0' s_wrmd[9].Atype = 0 s_wrmd[9].ifsc = FALSE s_wrmd[9].ifstorage = FALSE s_wrmd[10].powerid = 58 s_wrmd[10].funcid = 219 s_wrmd[10].dscrp = '工组交接单审核' s_wrmd[10].Asql = 'select count(*) from u_orderworkgroup_num where flag = 0' s_wrmd[10].Atype = 0 s_wrmd[10].ifsc = FALSE s_wrmd[10].ifstorage = FALSE s_wrmd[11].powerid = 63 s_wrmd[11].funcid = 207 s_wrmd[11].dscrp = '生产进仓单审核' s_wrmd[11].Asql = 'select count(*) from u_inware where flag = 0 and billtype = 3' s_wrmd[11].Atype = 0 s_wrmd[11].ifsc = TRUE s_wrmd[11].ifstorage = TRUE s_wrmd[12].powerid = 64 s_wrmd[12].funcid = 208 s_wrmd[12].dscrp = '领料出仓单审核' s_wrmd[12].Asql = 'select count(*) from u_outware where flag = 0 and billtype = 3' s_wrmd[12].Atype = 0 s_wrmd[12].ifsc = TRUE s_wrmd[12].ifstorage = TRUE s_wrmd[13].powerid = 66 s_wrmd[13].funcid = 403 s_wrmd[13].dscrp = '采购收货单审核' s_wrmd[13].Asql = 'select count(*) from u_inware where flag = 0 and billtype = 1' s_wrmd[13].Atype = 0 s_wrmd[13].ifsc = TRUE s_wrmd[13].ifstorage = TRUE s_wrmd[14].powerid = 68 s_wrmd[14].funcid = 304 s_wrmd[14].dscrp = '其他进仓单审核' s_wrmd[14].Asql = 'select count(*) from u_inware where flag = 0 and billtype = 8' s_wrmd[14].Atype = 0 s_wrmd[14].ifsc = TRUE s_wrmd[14].ifstorage = TRUE s_wrmd[15].powerid = 70 s_wrmd[15].funcid = 303 s_wrmd[15].dscrp = '其他出仓单审核' s_wrmd[15].Asql = 'select count(*) from u_outware where flag = 0 and billtype = 8' s_wrmd[15].Atype = 0 s_wrmd[15].ifsc = TRUE s_wrmd[15].ifstorage = TRUE s_wrmd[16].powerid = 72 s_wrmd[16].funcid = 305 s_wrmd[16].dscrp = '盘盈单审核' s_wrmd[16].Asql = 'select count(*) from u_inware where flag = 0 and billtype = 9' s_wrmd[16].Atype = 0 s_wrmd[16].ifsc = TRUE s_wrmd[16].ifstorage = TRUE s_wrmd[17].powerid = 74 s_wrmd[17].funcid = 306 s_wrmd[17].dscrp = '盘亏单审核' s_wrmd[17].Asql = 'select count(*) from u_outware where flag = 0 and billtype = 9' s_wrmd[17].Atype = 0 s_wrmd[17].ifsc = TRUE s_wrmd[17].ifstorage = TRUE s_wrmd[18].powerid = 82 s_wrmd[18].funcid = 313 s_wrmd[18].dscrp = '仓库调拨审核' s_wrmd[18].Asql = 'select count(*) from u_outware_move where flag = 0' s_wrmd[18].Atype = 0 s_wrmd[18].ifsc = FALSE s_wrmd[18].ifstorage = TRUE s_wrmd[19].powerid = 83 s_wrmd[19].funcid = 214 s_wrmd[19].dscrp = '外加工收货单审核' s_wrmd[19].Asql = 'select count(*) from u_inware where flag = 0 and billtype = 4' s_wrmd[19].Atype = 0 s_wrmd[19].ifsc = TRUE s_wrmd[19].ifstorage = TRUE s_wrmd[20].powerid = 85 s_wrmd[20].funcid = 320 s_wrmd[20].dscrp = '扣费品领用单审核' s_wrmd[20].Asql = 'select count(*) from u_outware where flag = 0 and billtype = 10' s_wrmd[20].Atype = 0 s_wrmd[20].ifsc = TRUE s_wrmd[20].ifstorage = TRUE s_wrmd[21].powerid = 94 s_wrmd[21].funcid = 401 s_wrmd[21].dscrp = '采购订单审核' s_wrmd[21].Asql = 'select count(*) from u_buytask where status = 0' s_wrmd[21].Atype = 0 s_wrmd[21].ifsc = TRUE s_wrmd[21].ifstorage = FALSE s_wrmd[22].powerid = 111 s_wrmd[22].funcid = 406 s_wrmd[22].dscrp = '供应商投诉单审核' s_wrmd[22].Asql = 'select count(*) from u_oppose where flag = 0 and billtype = 1' s_wrmd[22].Atype = 0 s_wrmd[22].ifsc = FALSE s_wrmd[22].ifstorage = FALSE s_wrmd[23].powerid = 198 s_wrmd[23].funcid = 708 s_wrmd[23].dscrp = '计件单审核' s_wrmd[23].Asql = 'select count(*) from u_sc_taskwork where AuditingFlag = 0' s_wrmd[23].Atype = 0 s_wrmd[23].ifsc = FALSE s_wrmd[23].ifstorage = FALSE s_wrmd[24].powerid = 200 s_wrmd[24].funcid = 709 s_wrmd[24].dscrp = '异常计件单审核' s_wrmd[24].Asql = 'select count(*) from u_sc_abnormity where AuditingFlag = 0' s_wrmd[24].Atype = 0 s_wrmd[24].ifsc = FALSE s_wrmd[24].ifstorage = FALSE s_wrmd[25].powerid = 203 s_wrmd[25].funcid = 320 s_wrmd[25].dscrp = '扣费品领用单工资审核' s_wrmd[25].Asql = 'select count(*) from u_outware where flag = 1 and secflag = 0 and billtype = 10' s_wrmd[25].Atype = 0 s_wrmd[25].ifsc = true s_wrmd[25].ifstorage = true s_wrmd[26].powerid = 205 s_wrmd[26].funcid = 721 s_wrmd[26].dscrp = '借支单审核' s_wrmd[26].Asql = 'select count(*) from u_gz_loanwage where flag = 0' s_wrmd[26].Atype = 0 s_wrmd[26].ifsc = FALSE s_wrmd[26].ifstorage = FALSE s_wrmd[27].powerid = 207 s_wrmd[27].funcid = 722 s_wrmd[27].dscrp = '返工返修赔偿单审核' s_wrmd[27].Asql = 'select count(*) from u_sc_abnormity_bill where flag = 0' s_wrmd[27].Atype = 0 s_wrmd[27].ifsc = FALSE s_wrmd[27].ifstorage = FALSE s_wrmd[28].powerid = 210 s_wrmd[28].funcid = 724 s_wrmd[28].dscrp = '奖罚单审核' s_wrmd[28].Asql = 'select count(*) from u_gz_award_punish where flag = 0' s_wrmd[28].Atype = 0 s_wrmd[28].ifsc = FALSE s_wrmd[28].ifstorage = FALSE s_wrmd[29].powerid = 212 s_wrmd[29].funcid = 725 s_wrmd[29].dscrp = '考勤单审核' s_wrmd[29].Asql = 'select count(*) from u_gz_cwork where flag = 0' s_wrmd[29].Atype = 0 s_wrmd[29].ifsc = FALSE s_wrmd[29].ifstorage = FALSE s_wrmd[30].powerid = 213 s_wrmd[30].funcid = 709 s_wrmd[30].dscrp = '异常计件单确认' s_wrmd[30].Asql = 'select count(*) from u_sc_abnormity where Auditingflag = 1 and secAuditingflag = 0' s_wrmd[30].Atype = 0 s_wrmd[30].ifsc = FALSE s_wrmd[30].ifstorage = FALSE srmd_p = 30 end subroutine public function integer f_init ();Long ll_scid,ll_storageid srmd_sc = 0 srmd_storage = 0 DECLARE cur_scid CURSOR FOR SELECT u_scdef.ScID FROM u_scdef ; open cur_scid; fetch cur_scid into :ll_scid; do while sqlca.sqlcode = 0 srmd_sc++ scid[srmd_sc] = ll_scid fetch cur_scid into :ll_scid; loop close cur_scid; DECLARE cur_storageid CURSOR FOR SELECT u_storage.storageid FROM u_storage ; open cur_storageid; fetch cur_storageid into :ll_storageid; do while sqlca.sqlcode = 0 srmd_storage++ storageid[srmd_storage] = ll_storageid fetch cur_storageid into :ll_storageid; loop close cur_storageid; return 1 end function public subroutine f_syntaxfromsql (long arg_scid, long arg_funcid, long arg_powerid, long arg_storageid, string arg_powername, string arg_sql, string arg_sc_str, string arg_storage_str);Long ll_powerqty String str_dwSQl,str_SyntaxFromSQL,ls_msg,ls_str String ls_powername datastore ds_powerqty ds_powerqty = CREATE datastore str_dwSQl = arg_sql + arg_sc_str + arg_storage_str str_SyntaxFromSQL = sqlca.SyntaxFromSQL(str_dwSQl,"style(type=grid)",ls_msg) IF ls_msg > '' THEN ls_powername = "dw语法生成失败,"+arg_powername GOTO ext END IF ds_powerqty.CREATE(str_SyntaxFromSQL,ls_msg) IF ls_msg <> '' THEN ls_powername = "建立相关DW失败,"+arg_powername GOTO ext END IF ds_powerqty.SetTransObject(sqlca) ds_powerqty.Retrieve() ll_powerqty = ds_powerqty.GetItemNumber(1,1) IF IsNull(ll_powerqty) THEN ll_powerqty = 0 GOTO ext END IF ext: f_workremind(arg_scid,arg_funcid,arg_powerid,arg_storageid,arg_powername,ll_powerqty,TRUE,TRUE) destroy ds_powerqty end subroutine public function integer f_getwrmdrslt ();//f_getwrmdrslt Int rslt = 1 f_init() f_init_wrmd_info() Long ll_i,ll_j Long ll_sc,ll_storage String ls_sc_str,ls_storage_str //OPEN(w_sys_wait_jdt) //初始化进度条 //w_sys_wait_jdt.Show() //w_sys_wait_jdt.wf_accepttol(srmd_p) FOR ll_i = 1 TO srmd_p // w_sys_wait_jdt.st_msg.Text = "统计:"+s_wrmd[ll_i].dscrp //进度信息 IF s_wrmd[ll_i].powerid = 0 THEN CONTINUE IF NOT f_power_ind(s_wrmd[ll_i].powerid) THEN CONTINUE IF s_wrmd[ll_i].ifsc THEN FOR ll_sc = 1 TO srmd_sc IF sys_user_scstr <> '0' AND Pos(sys_user_scstr,','+String(scid[ll_sc])+',') <= 0 THEN CONTINUE ls_sc_str = ' and scid = ' + String(scid[ll_sc]) IF s_wrmd[ll_i].ifstorage THEN FOR ll_storage = 1 TO srmd_storage IF sys_user_storagestr <> '0' AND Pos(sys_user_storagestr,','+String(storageid[ll_storage])+',') <= 0 THEN CONTINUE ls_storage_str = ' and storageid = ' + String(storageid[ll_storage]) f_syntaxfromsql(scid[ll_sc],s_wrmd[ll_i].funcid,s_wrmd[ll_i].powerid,storageid[ll_storage],s_wrmd[ll_i].dscrp,s_wrmd[ll_i].asql,ls_sc_str,ls_storage_str) NEXT ELSE ls_storage_str = '' f_syntaxfromsql(scid[ll_sc],s_wrmd[ll_i].funcid,s_wrmd[ll_i].powerid,-1,s_wrmd[ll_i].dscrp,s_wrmd[ll_i].asql,ls_sc_str,ls_storage_str) END IF NEXT ELSE ls_sc_str = '' IF s_wrmd[ll_i].ifstorage THEN FOR ll_storage = 1 TO srmd_storage IF sys_user_storagestr <> '0' AND Pos(sys_user_storagestr,','+String(storageid[ll_storage])+',') <= 0 THEN CONTINUE ls_storage_str = ' and storageid = ' + String(storageid[ll_storage]) f_syntaxfromsql(-1,s_wrmd[ll_i].funcid,s_wrmd[ll_i].powerid,storageid[ll_storage],s_wrmd[ll_i].dscrp,s_wrmd[ll_i].asql,ls_sc_str,ls_storage_str) NEXT ELSE ls_storage_str = '' f_syntaxfromsql(-1,s_wrmd[ll_i].funcid,s_wrmd[ll_i].powerid,-1,s_wrmd[ll_i].dscrp,s_wrmd[ll_i].asql,ls_sc_str,ls_storage_str) END IF END IF // w_sys_wait_jdt.wf_inc(ll_i) //进度 NEXT //CLOSE(w_sys_wait_jdt) RETURN rslt end function on uo_workremind.create call super::create TriggerEvent( this, "constructor" ) end on on uo_workremind.destroy TriggerEvent( this, "destructor" ) call super::destroy end on