$PBExportHeader$w_porfit_loss_auto.srw forward global type w_porfit_loss_auto from w_publ_1ton_share_detail end type type ddlb_1 from dropdownlistbox within w_porfit_loss_auto end type end forward global type w_porfit_loss_auto from w_publ_1ton_share_detail integer x = 0 integer y = 0 integer height = 2380 string title = "自动转帐凭证" boolean maxbox = true windowstate windowstate = maximized! event insert_childrow ( ) ddlb_1 ddlb_1 end type global w_porfit_loss_auto w_porfit_loss_auto type variables int ls_ifalways = -1 uo_credence_mode uo_porfit_loss_auto end variables event insert_childrow;long li_row li_row=dw_child.insertrow(0) dw_child.scrolltorow(li_row) dw_child.SetColumn ('brief') end event on w_porfit_loss_auto.create int iCurrent call super::create this.ddlb_1=create ddlb_1 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.ddlb_1 end on on w_porfit_loss_auto.destroy call super::destroy destroy(this.ddlb_1) end on event retrieve_pageretr;boolean cb_nextpage_enabled,cb_retrieveall_enabled boolean cb_retrieve_enabled cb_nextpage_enabled=cb_nextpage.enabled cb_retrieveall_enabled=cb_retrieveall.enabled cb_nextpage.enabled=false cb_retrieveall.enabled=false dw_pageretr.sharedataoff() dw_pageretr.retrieve(sys_accsetid,ls_ifalways) if dw_pageretr.rowcount()>0 and dw_pageretr.getrow()=0 then dw_pageretr.setrow(1) dw_pageretr.sharedata(dw_uc) this.triggerevent('retrieve_childdw') cb_nextpage.enabled=cb_nextpage_enabled cb_retrieveall.enabled=cb_retrieveall_enabled end event event retrieve_childdw;call super::retrieve_childdw;long row,uc_credid row=dw_uc.getrow() if row>0 then uc_credid=dw_uc.object.credid [row] dw_child.SetRedraw (false) dw_child.retrieve(sys_accsetid,uc_credid) dw_child.SetRedraw (true) else dw_child.reset() end if end event event ue_before_open;call super::ue_before_open;//1.会计科目 datawindowchild childdw_subid dw_child.getchild("subid",childdw_subid) childdw_subid.SetTransObject (sqlca) ddd_subid_display_detail.sharedata(childdw_subid) //2.凭证字 datawindowchild childdw_credword dw_uc.getchild("credtype",childdw_credword) childdw_credword.SetTransObject (sqlca) childdw_credword.retrieve(sys_accsetid) if childdw_credword.rowcount()<=0 then childdw_credword.insertrow(0) end if //5.项目 datawindowchild childdw_itemid dw_child.getchild("itemid",childdw_itemid) childdw_itemid.SetTransObject (sqlca) childdw_itemid.retrieve(sys_accsetid) if childdw_itemid.rowcount()<=0 then childdw_itemid.insertrow(0) end if end event event refresh_interface;call super::refresh_interface;sle_usual_query.enabled = not dw_edit_mode ddlb_1.enabled = not dw_edit_mode end event event ue_usual_query_filt;call super::ue_usual_query_filt;string obj_expr='' if trim(sle_usual_query.text)<>'' then IF POS(trim(sle_usual_query.text),'%')=0 THEN obj_expr=obj_expr+'( credname LIKE "%'+trim(sle_usual_query.text)+'%" )' ELSE obj_expr=obj_expr+'( credname LIKE "'+trim(sle_usual_query.text)+'" )' END IF end if dw_pageretr.setfilter(obj_expr) dw_pageretr.SetRedraw(False) dw_pageretr.filter() if dw_pageretr.rowcount()>=1 then dw_pageretr.selectrow(0,false) dw_pageretr.selectrow(1,true) end if dw_pageretr.SetRedraw(TRUE) end event event open;call super::open;uc_column_int=4 //uc dw前5列可以编辑 child_column_int=8 //子dw前10列可以编辑 uo_porfit_loss_auto=create uo_credence_mode end event event ue_addmx;Int li_row_1, li_cur_row_1 li_cur_row_1 = dw_child.GetRow() li_row_1 = dw_child.InsertRow (li_cur_row_1) dw_child.ScrollToRow (li_row_1) dw_child.SetFocus() end event type cb_func from w_publ_1ton_share_detail`cb_func within w_porfit_loss_auto integer x = 174 end type type cb_exit from w_publ_1ton_share_detail`cb_exit within w_porfit_loss_auto integer x = 1326 end type type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_porfit_loss_auto integer x = 224 integer y = 188 integer width = 640 end type type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_porfit_loss_auto boolean visible = false integer x = 599 integer y = 1768 end type type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_porfit_loss_auto boolean visible = false integer x = 334 integer y = 1768 end type type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_porfit_loss_auto integer x = 1541 integer y = 188 integer width = 2007 integer height = 768 string title = "凭证摘要内容" string dataobject = "dw_credence_auto_index" boolean hscrollbar = false boolean hsplitscroll = false end type type st_1 from w_publ_1ton_share_detail`st_1 within w_porfit_loss_auto integer x = 27 integer y = 200 integer width = 215 string text = "名称含:" end type type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_porfit_loss_auto boolean visible = false integer x = 2565 end type type dw_uc from w_publ_1ton_share_detail`dw_uc within w_porfit_loss_auto integer width = 1541 integer height = 768 string dataobject = "dw_credence_auto_edit" boolean border = false borderstyle borderstyle = stylebox! end type type dw_child from w_publ_1ton_share_detail`dw_child within w_porfit_loss_auto integer y = 960 integer width = 3547 integer height = 1156 string title = "转帐凭证明细" string dataobject = "dw_credencemx_auto_index" end type event dw_child::rowfocuschanged;int i = 0 end event event dw_child::doubleclicked;//cb_addzy.triggerevent(clicked!) end event event dw_child::dwnkey;if dw_edit_mode then If keydown(Keydownarrow!) Then long li_row if dw_child.getrow()=dw_child.rowcount() then parent.triggerevent("insert_childrow") end if else If key = KeyEnter! Then keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab return 1 end if end if end if end event event dw_child::itemchanged;if not dw_edit_mode then return if row <= 0 then return this.setredraw(false) this.accepttext() choose case dwo.name case 'subid' int ls_hsitem string ls_subid ls_subid = this.object.subid[row] select hsitem into :ls_hsitem from cw_subject where accsetid = :sys_accsetid and subid = :ls_subid; if sqlca.sqlcode <> 0 then ls_hsitem = 0 this.object.cw_subject_hsitem[row] = ls_hsitem case 'modetype' int ls_modetype ls_modetype = this.object.modetype[row] choose case ls_modetype case 1 this.object.ifnopost[row] = 0 this.object.autorate[row] = 100 this.object.expressions[row] = '' case 2 this.object.expressions[row] = '' case 3 this.object.autorate[row] = 100 this.object.expressions[row] = '' case 4 end choose end choose this.setredraw(true) end event type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_porfit_loss_auto boolean visible = false integer x = 2331 end type type cb_print from w_publ_1ton_share_detail`cb_print within w_porfit_loss_auto boolean visible = false integer x = 1394 integer y = 1764 end type type cb_add from w_publ_1ton_share_detail`cb_add within w_porfit_loss_auto integer x = 338 end type event cb_add::clicked;IF NOT f_power_ind(1058,sys_msg_pow) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF String arg_msg = '' Long uc_row Decimal sum_debit,sum_credit DateTime firstdate,enddate Long i IF dw_edit_mode THEN dw_uc.AcceptText() dw_child.AcceptText() uc_row = dw_uc.GetRow() IF uc_row <= 0 THEN MessageBox(publ_operator,'请选定当前目标凭证!') RETURN END IF IF Trim(dw_uc.Object.credname[uc_row]) = '' THEN MessageBox(publ_operator,'请正确填写凭证名称!') RETURN END IF //检查借贷 Int debit_cnt,credit_cnt FOR i = 1 TO dw_child.RowCount() IF dw_child.Object.dcflag[i] = 0 THEN credit_cnt++ ELSE debit_cnt++ END IF NEXT IF debit_cnt = 0 OR credit_cnt = 0 THEN MessageBox(publ_operator,'转帐凭证缺少转帐分录!') RETURN END IF IF dw_child.RowCount() > 0 THEN IF dw_child.Object.modetype[dw_child.RowCount()] <> 1 THEN MessageBox('提示','凭证最后一行必须为转入类型') RETURN END IF END IF uo_porfit_loss_auto.credname = dw_uc.Object.credname[uc_row] uo_porfit_loss_auto.credtype = dw_uc.Object.credtype[uc_row] uo_porfit_loss_auto.ifalways = dw_uc.Object.ifalways[uc_row] FOR i = 1 TO dw_child.RowCount() IF uo_porfit_loss_auto.acceptmx(dw_child.Object.subid[i],& dw_child.Object.brief[i],& dw_child.Object.dcflag[i],& dw_child.Object.modetype[i],& dw_child.Object.ifnopost[i],& dw_child.Object.autorate[i],& dw_child.Object.expressions[i],& 0,0,0,0,0,& dw_child.Object.itemid [i],& 0,'',arg_msg,dw_child.Object.prid[i]) = 0 THEN MessageBox('error!',arg_msg) RETURN END IF NEXT IF uo_porfit_loss_auto.Save(arg_msg,TRUE) = 0 THEN MessageBox('error!',arg_msg) RETURN END IF MessageBox(publ_operator,'保存操作成功!') dw_pageretr.SelectRow(0,FALSE) dw_pageretr.SelectRow(uc_row,TRUE) dw_uc.Object.credid[uc_row] = uo_porfit_loss_auto.credid ELSE IF uo_porfit_loss_auto.newbegin(1,arg_msg) = 0 THEN MessageBox('error!',arg_msg) RETURN END IF END IF CALL SUPER::Clicked IF dw_edit_mode THEN PARENT.TriggerEvent("insert_childrow") ELSE PARENT.TriggerEvent("retrieve_childdw") END IF // THIS.TriggerEvent('refresh_interface') end event type cb_edit from w_publ_1ton_share_detail`cb_edit within w_porfit_loss_auto integer x = 530 end type event cb_edit::clicked;IF NOT f_power_ind(1058,sys_msg_pow) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF String arg_msg = '' Long uc_row Long ls_credid uc_row = dw_uc.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请选定当前目标凭证!') RETURN END IF ls_credid = dw_uc.Object.credid[uc_row] IF NOT dw_edit_mode THEN IF uo_porfit_loss_auto.UPDATEbegin(ls_credid,arg_msg) = 0 THEN MessageBox(publ_operator,arg_msg) RETURN END IF END IF CALL SUPER::Clicked end event type cb_delet from w_publ_1ton_share_detail`cb_delet within w_porfit_loss_auto integer x = 722 end type event cb_delet::clicked;call super::clicked;IF NOT f_power_ind(1059,sys_msg_pow) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF IF dw_edit_mode THEN RETURN IF MessageBox ("IF","是否确定要删除当前凭证吗?",Question!,YesNo! ) = 2 THEN RETURN String arg_msg = '' Long uc_row Long ls_credid uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请选定当前目标凭证!') RETURN END IF ls_credid = dw_uc.Object.credid[uc_row] IF uo_porfit_loss_auto.del(ls_credid,arg_msg,TRUE) = 0 THEN MessageBox('Error!',arg_msg) ELSE MessageBox(publ_operator,'删除凭证'+String(dw_uc.Object.credname[uc_row])+'成功!') dw_pageretr.DeleteRow(uc_row) dw_pageretr.PostEvent(RowFocusChanged!) END IF end event type cb_auditing from w_publ_1ton_share_detail`cb_auditing within w_porfit_loss_auto integer x = 1051 integer width = 274 string text = "生成凭证" end type event cb_auditing::clicked;call super::clicked;IF NOT f_power_ind(1058,sys_msg_pow) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF IF dw_edit_mode THEN RETURN String arg_msg = '' Long pagerert_row pagerert_row = dw_uc.GetRow() IF pagerert_row <= 0 THEN MessageBox('系统提示','请选定当前目标凭证!') RETURN END IF IF uo_porfit_loss_auto.auto_createcred(dw_uc.Object.credid[pagerert_row],arg_msg) = 0 THEN MessageBox('Error!',arg_msg) ELSE MessageBox(publ_operator,'自动转帐成功!') END IF end event type cb_xm from w_publ_1ton_share_detail`cb_xm within w_porfit_loss_auto integer x = 887 end type type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_porfit_loss_auto integer x = 0 end type type cb_help from w_publ_1ton_share_detail`cb_help within w_porfit_loss_auto boolean visible = false integer x = 1888 end type type ln_bar from w_publ_1ton_share_detail`ln_bar within w_porfit_loss_auto end type type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_porfit_loss_auto end type type r_bar from w_publ_1ton_share_detail`r_bar within w_porfit_loss_auto end type type ln_1 from w_publ_1ton_share_detail`ln_1 within w_porfit_loss_auto boolean visible = false integer beginx = 2638 integer endx = 2638 end type type ln_2 from w_publ_1ton_share_detail`ln_2 within w_porfit_loss_auto boolean visible = false integer beginx = 2642 integer endx = 2642 end type type ddlb_1 from dropdownlistbox within w_porfit_loss_auto integer x = 873 integer y = 196 integer width = 334 integer height = 228 integer taborder = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "[全部]" boolean sorted = false boolean vscrollbar = true string item[] = {"[常用]","[全部]"} borderstyle borderstyle = stylelowered! end type event selectionchanged;if index = 0 then ls_ifalways = -1 else ls_ifalways = 1 end if //wf_retrieveuc(1) end event