$PBExportHeader$w_flowdef_edit.srw forward global type w_flowdef_edit from w_publ_edit_index end type type cb_re_create from uo_imflatbutton within w_flowdef_edit end type end forward global type w_flowdef_edit from w_publ_edit_index integer width = 3589 integer height = 2024 string title = "现金流量项目" boolean minbox = true windowtype windowtype = popup! long backcolor = 81324524 event ue_refresh_face ( ) cb_re_create cb_re_create end type global w_flowdef_edit w_flowdef_edit type variables uo_flow uo_flow_recreate end variables event ue_refresh_face;cb_re_create.Enabled = NOT dw_edit_mode end event on w_flowdef_edit.create int iCurrent call super::create this.cb_re_create=create cb_re_create iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.cb_re_create end on on w_flowdef_edit.destroy call super::destroy destroy(this.cb_re_create) end on event retrieve_uc;Boolean cb_nextpage_enabled,cb_retrieveall_enabled Boolean cb_query_enabled,cb_retrieve_enabled cb_nextpage_enabled = cb_nextpage.Enabled cb_retrieveall_enabled = cb_retrieveall.Enabled cb_retrieve_enabled = cb_retrieve.Enabled cb_nextpage.Enabled = FALSE cb_retrieveall.Enabled = FALSE cb_retrieve.Enabled = FALSE dw_UC.SetRedraw(FALSE) dw_index.ShareDataOff() SetPointer(HourGlass!) dw_UC.Retrieve(sys_accsetid) SetPointer(Arrow!) dw_UC.ShareData(dw_index) dw_UC.SetRedraw(TRUE) IF dw_index.RowCount() >= 1 THEN dw_index.SelectRow(0,FALSE) dw_index.SelectRow(1,TRUE) END IF cb_nextpage.Enabled = cb_nextpage_enabled cb_retrieveall.Enabled = cb_retrieveall_enabled cb_retrieve.Enabled = cb_retrieve_enabled end event event ue_usual_query_filt;call super::ue_usual_query_filt; IF dw_edit_mode OR KeyDown(keyf4!) OR KeyDown(keyf5!) THEN RETURN String obj_expr = '' IF Trim(sle_usual_query.Text) <> '' THEN IF Pos(Trim(sle_usual_query.Text),'%') = 0 THEN obj_expr = obj_expr+'( cashcode LIKE "%'+Trim(sle_usual_query.Text)+'%" )' ELSE obj_expr = obj_expr+'( cashcode LIKE "'+Trim(sle_usual_query.Text)+'" )' END IF END IF dw_UC.SetFilter(obj_expr) dw_UC.SetRedraw(FALSE) dw_INDEX.SetRedraw(FALSE) dw_UC.Filter() IF dw_INDEX.RowCount() >= 1 THEN dw_INDEX.SelectRow(0,FALSE) dw_INDEX.SelectRow(1,TRUE) END IF dw_UC.SetRedraw(TRUE) dw_INDEX.SetRedraw(TRUE) end event event open;call super::open;uo_flow_recreate = CREATE uo_flow end event event close;call super::close;DESTROY uo_flow_recreate end event event resize;ln_1.EndX = THIS.Width ln_2.EndX = THIS.Width end event type cb_func from w_publ_edit_index`cb_func within w_flowdef_edit integer x = 151 end type type cb_exit from w_publ_edit_index`cb_exit within w_flowdef_edit integer x = 1490 end type type sle_usual_query from w_publ_edit_index`sle_usual_query within w_flowdef_edit integer x = 229 integer width = 558 boolean bringtotop = true end type type cb_nextpage from w_publ_edit_index`cb_nextpage within w_flowdef_edit integer x = 347 integer y = 2140 integer width = 146 boolean bringtotop = true end type type cb_priorpage from w_publ_edit_index`cb_priorpage within w_flowdef_edit end type type cb_firstpage from w_publ_edit_index`cb_firstpage within w_flowdef_edit end type type cb_retrieveall from w_publ_edit_index`cb_retrieveall within w_flowdef_edit integer x = 809 integer y = 2140 integer width = 146 boolean bringtotop = true end type type em_pagerowno from w_publ_edit_index`em_pagerowno within w_flowdef_edit integer x = 1646 integer y = 2116 boolean bringtotop = true end type type st_pagerowno from w_publ_edit_index`st_pagerowno within w_flowdef_edit end type type st_1 from w_publ_edit_index`st_1 within w_flowdef_edit integer x = 14 integer y = 216 integer width = 206 integer height = 44 boolean bringtotop = true string text = "代码含:" end type type cb_add from w_publ_edit_index`cb_add within w_flowdef_edit integer x = 315 end type event cb_add::clicked;//IF NOT f_power_ind(11) THEN // MessageBox(publ_operator,'你没有使用权限!') // RETURN //END IF Long ll_flowid = 0,cnt String errmsg = '',ls_cashcode,ls_pcashcode IF dw_edit_mode THEN dw_uc.AcceptText() IF dw_uc.GetNextModified(0, Primary!) = 0 THEN MessageBox('系统提示','没有任何修改,不可以保存!') RETURN END IF dw_uc.Object.cashcode[dw_uc.GetRow()] = Trim(dw_uc.Object.cashcode[dw_uc.GetRow()]) dw_uc.Object.flowname[dw_uc.GetRow()] = Trim(dw_uc.Object.flowname[dw_uc.GetRow()]) IF dw_uc.Object.cashcode[dw_uc.GetRow()] = '' THEN MessageBox('系统提示','请输入项目代码!') dw_uc.SetFocus() dw_uc.SetColumn("cashcode") RETURN END IF IF dw_uc.Object.flowname[dw_uc.GetRow()] = '' THEN MessageBox('系统提示','请输入客户名称!') dw_uc.SetFocus() dw_uc.SetColumn("flowname") RETURN END IF //--检查项目代码 ls_cashcode = dw_uc.Object.cashcode[dw_uc.GetRow()] IF NOT Mod(Len(ls_cashcode),2) = 0 THEN MessageBox('系统提示','项目代码每级为两位,项目代码长度必须为偶数!') dw_uc.SetFocus() dw_uc.SetColumn("cashcode") RETURN END IF IF Len(ls_cashcode) > 2 THEN ls_pcashcode = Left(ls_cashcode,Len(ls_cashcode) - 2 ) SELECT count(*) INTO :cnt FROM cw_flow Where accsetid = :sys_accsetid AND cashcode = :ls_pcashcode; IF sqlca.SQLCode <> 0 THEN MessageBox('系统提示',ls_pcashcode+':不存在该项目代码,在定义子项目之前,必须先定义其上级项目!') dw_uc.SetFocus() dw_uc.SetColumn("cashcode") RETURN END IF UPDATE cw_flow SET detailfalg = 0 Where accsetid = :sys_accsetid AND cashcode = :ls_pcashcode; IF sqlca.SQLCode <> 0 THEN ROLLBACK; MessageBox('系统提示','更新上级项目'+ls_pcashcode+'一级项目标记失败!') dw_uc.SetFocus() dw_uc.SetColumn("cashcode") RETURN END IF dw_uc.Object.detailfalg[dw_uc.GetRow()] = 1 ELSE dw_uc.Object.detailfalg[dw_uc.GetRow()] = 0 END IF dw_uc.Object.accsetid[dw_uc.GetRow()] = sys_accsetid IF dw_uc.Object.flowid[dw_uc.GetRow()] = 0 THEN ll_flowid = f_sys_scidentity(0,"cw_flow","flowid",errmsg,TRUE,id_sqlca) IF ll_flowid <= 0 THEN MessageBox("系统信息",errmsg) RETURN ELSE dw_uc.Object.flowid[dw_uc.GetRow()] = ll_flowid END IF END IF END IF CALL SUPER::Clicked IF dw_edit_mode THEN dw_uc.SetColumn('cashcode') END IF PARENT.TriggerEvent('ue_refresh_face') end event type cb_edit from w_publ_edit_index`cb_edit within w_flowdef_edit integer x = 507 end type event cb_edit::clicked;call super::clicked;PARENT.TriggerEvent('ue_refresh_face') end event type cb_delet from w_publ_edit_index`cb_delet within w_flowdef_edit integer x = 699 end type type cb_choice from w_publ_edit_index`cb_choice within w_flowdef_edit integer x = 603 integer y = 2136 end type type cbx_mlselect from w_publ_edit_index`cbx_mlselect within w_flowdef_edit integer x = 2514 integer y = 1960 integer height = 48 end type type cbx_allselect from w_publ_edit_index`cbx_allselect within w_flowdef_edit integer x = 2789 integer y = 2008 end type type cb_mode_itfchg from w_publ_edit_index`cb_mode_itfchg within w_flowdef_edit integer x = 1403 integer width = 87 end type type dw_uc from w_publ_edit_index`dw_uc within w_flowdef_edit integer x = 1765 integer width = 1760 integer height = 1616 string dataobject = "dw_flowdef_edit" end type type cb_retrieve from w_publ_edit_index`cb_retrieve within w_flowdef_edit integer x = 0 end type type cb_print from w_publ_edit_index`cb_print within w_flowdef_edit boolean visible = false integer x = 974 integer y = 552 boolean enabled = false end type type ln_bar from w_publ_edit_index`ln_bar within w_flowdef_edit end type type ln_bar2 from w_publ_edit_index`ln_bar2 within w_flowdef_edit end type type r_bar from w_publ_edit_index`r_bar within w_flowdef_edit end type type ln_1 from w_publ_edit_index`ln_1 within w_flowdef_edit end type type ln_2 from w_publ_edit_index`ln_2 within w_flowdef_edit end type type dw_index from w_publ_edit_index`dw_index within w_flowdef_edit integer width = 1765 integer height = 1616 boolean bringtotop = true string dataobject = "dw_flowdef_index" end type type cb_re_create from uo_imflatbutton within w_flowdef_edit integer x = 2208 integer width = 553 integer height = 172 integer taborder = 150 boolean bringtotop = true string text = "重新生成初始化项目" string normalpicname = "update.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;Long cnt String arg_msg cnt = 0 SELECT count(*) INTO :cnt FROM cw_initflow WHERE accsetid = :sys_accsetid AND ( debit <> 0 OR credit <> 0 ); IF sqlca.SQLCode <> 0 THEN MessageBox('提示','查询原有现金流量项目是否有初始化数据失败,'+sqlca.SQLErrText) RETURN END IF IF cnt > 0 THEN MessageBox('提示','原有现金流量项目已有初始化数据,不能操作') RETURN END IF cnt = 0 SELECT count(*) INTO :cnt FROM cw_CashItem Where accsetid = :sys_accsetid; IF sqlca.SQLCode <> 0 THEN MessageBox('提示','查询原有现金流量项目是否已用于凭证失败,'+sqlca.SQLErrText) RETURN END IF IF cnt > 0 THEN MessageBox('提示','原有现金流量项目已用于凭证,不能操作') RETURN END IF IF MessageBox ("询问","是否确定要重新生成初始化项目?(选择确定后原有项目将被删除,不可恢复)",Question!,YesNo! ) = 2 THEN RETURN END IF IF uo_flow_recreate.uof_create_flow(sys_accsetid,arg_msg,TRUE) = 0 THEN MessageBox('提示',arg_msg) RETURN END IF PARENT.TriggerEvent('retrieve_uc') end event