$PBExportHeader$w_credence_mode_edit.srw $PBExportComments$模式凭证 forward global type w_credence_mode_edit from w_publ_1ton_share_detail end type type ddlb_1 from dropdownlistbox within w_credence_mode_edit end type type cb_paste from uo_imflatbutton within w_credence_mode_edit end type type cb_copy from uo_imflatbutton within w_credence_mode_edit end type end forward global type w_credence_mode_edit from w_publ_1ton_share_detail integer x = 0 integer y = 0 string title = "模式凭证" boolean maxbox = true windowstate windowstate = maximized! event insert_childrow ( ) ddlb_1 ddlb_1 cb_paste cb_paste cb_copy cb_copy end type global w_credence_mode_edit w_credence_mode_edit type variables int ls_ifalways = -1 uo_credence_mode uo_porfit_loss_auto end variables forward prototypes public function integer wf_refresh_curuc (long arg_credid) end prototypes event insert_childrow;long li_row li_row=dw_child.insertrow(0) dw_child.scrolltorow(li_row) dw_child.SetColumn ('brief') end event public function integer wf_refresh_curuc (long arg_credid);//wf_refresh_curuc IF arg_credid <= 0 Or IsNull(arg_credid) THEN RETURN 0 Long uc_row uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN RETURN 0 String Credname String credtype Long billnumber Int ifalways Long accsetid Int Credkind String monthdscrp datetime moddate String modemp datetime opdate String opemp SELECT cw_credence_auto.Credname, cw_credence_auto.credtype, cw_credence_auto.billnumber, cw_credence_auto.ifalways, cw_credence_auto.accsetid, cw_credence_auto.Credkind, cw_credence_auto.monthdscrp, cw_credence_auto.moddate, cw_credence_auto.modemp, cw_credence_auto.opdate, cw_credence_auto.opemp INTO :Credname, :credtype, :billnumber, :ifalways, :accsetid, :Credkind, :monthdscrp, :moddate, :modemp, :opdate, :opemp FROM cw_credence_auto WHERE ( cw_credence_auto.Credkind = 0 ) AND ( cw_credence_auto.accsetid = :sys_accsetid ) AND (cw_credence_auto.credid = :arg_credid ) ; IF sqlca.SQLCode <> 0 THEN MessageBox('系统提示',"查询操作失败(错误单据唯一码)") RETURN 0 END IF dw_pageretr.Object.accsetid[uc_row] = sys_accsetid dw_pageretr.Object.credid[uc_row] = arg_credid dw_pageretr.Object.credname[uc_row] = credname dw_pageretr.Object.credtype[uc_row] = credtype dw_pageretr.Object.billnumber[uc_row] = billnumber dw_pageretr.Object.ifalways[uc_row] = ifalways dw_pageretr.Object.credkind[uc_row] = credkind dw_pageretr.Object.monthdscrp[uc_row] = monthdscrp dw_pageretr.Object.moddate[uc_row] = moddate dw_pageretr.Object.modemp[uc_row] = modemp dw_pageretr.Object.opdate[uc_row] = opdate dw_pageretr.Object.opemp[uc_row] = opemp dw_uc.Reset() dw_pageretr.RowsCopy(dw_pageretr.GetRow(), dw_pageretr.GetRow(), Primary!, dw_uc, 1, Primary!) dw_uc.ResetUpdate() dw_uc.SetRedraw(True) RETURN 1 end function on w_credence_mode_edit.create int iCurrent call super::create this.ddlb_1=create ddlb_1 this.cb_paste=create cb_paste this.cb_copy=create cb_copy iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.ddlb_1 this.Control[iCurrent+2]=this.cb_paste this.Control[iCurrent+3]=this.cb_copy end on on w_credence_mode_edit.destroy call super::destroy destroy(this.ddlb_1) destroy(this.cb_paste) destroy(this.cb_copy) 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_uc.Retrieve() dw_pageretr.Retrieve(sys_accsetid,ls_ifalways) IF dw_pageretr.RowCount() > 0 THEN dw_pageretr.SetRow(1) dw_pageretr.TriggerEvent(RowFocusChanged!) END IF 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 //4.部门 datawindowchild childdw_deptid dw_child.getchild("deptid",childdw_deptid) childdw_deptid.SetTransObject (sqlca) childdw_deptid.retrieve(sys_accsetid) if childdw_deptid.rowcount()<=0 then childdw_deptid.insertrow(0) end if //3.结算方式 datawindowchild childdw_banktypeid dw_child.getchild("billid",childdw_banktypeid) childdw_banktypeid.SetTransObject (sqlca) childdw_banktypeid.retrieve(sys_accsetid) if childdw_banktypeid.rowcount()<=0 then childdw_banktypeid.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 cb_copy.Enabled = NOT dw_edit_mode cb_paste.Enabled = 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 = 10 //子dw前10列可以编辑 uo_porfit_loss_auto = CREATE uo_credence_mode ds_copy_bill = CREATE datastore ds_copy_bill.DataObject = dw_child.dataobject ds_copy_bill.SetTransObject(sqlca) end event type cb_func from w_publ_1ton_share_detail`cb_func within w_credence_mode_edit end type type cb_exit from w_publ_1ton_share_detail`cb_exit within w_credence_mode_edit integer x = 1646 integer taborder = 260 end type type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_credence_mode_edit integer x = 224 integer width = 640 end type type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_credence_mode_edit boolean visible = false integer x = 2633 integer y = 492 integer taborder = 220 end type type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_credence_mode_edit boolean visible = false integer x = 1760 integer y = 424 integer taborder = 200 end type type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_credence_mode_edit integer x = 1531 integer y = 296 integer width = 2016 integer height = 828 string title = "凭证摘要内容" string dataobject = "dw_credence_mode_index" boolean hscrollbar = false boolean hsplitscroll = false end type type st_1 from w_publ_1ton_share_detail`st_1 within w_credence_mode_edit integer x = 27 integer width = 215 string text = "名称含:" end type type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_credence_mode_edit boolean visible = false integer x = 2784 integer y = 492 integer taborder = 250 end type type dw_uc from w_publ_1ton_share_detail`dw_uc within w_credence_mode_edit integer y = 296 integer width = 1536 integer height = 828 string dataobject = "dw_credence_mode_edit" boolean border = false borderstyle borderstyle = stylebox! end type type gb_2 from w_publ_1ton_share_detail`gb_2 within w_credence_mode_edit end type type dw_child from w_publ_1ton_share_detail`dw_child within w_credence_mode_edit integer y = 1128 integer width = 3547 integer height = 1040 string title = "模式凭证明细" string dataobject = "dw_credencemx_mode_index" end type event dw_child::rowfocuschanged;int i = 0 end event event dw_child::doubleclicked; //cb_otherfunc.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,ls_hsdept,ls_hsqty string ls_subid ls_subid = this.object.subid[row] select hsitem,hsdept,hsqty into :ls_hsitem,:ls_hsdept,:ls_hsqty from cw_subject where accsetid = :sys_accsetid and subid = :ls_subid; if sqlca.sqlcode <> 0 then ls_hsitem = 0 ls_hsdept = 0 ls_hsqty = 0 end if this.object.cw_subject_hsitem[row] = ls_hsitem this.object.cw_subject_hsdept[row] = ls_hsdept this.object.cw_subject_hsqty[row] = ls_hsqty end choose this.setredraw(true) end event type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_credence_mode_edit boolean visible = false integer x = 1669 integer y = 388 boolean enabled = false end type type cb_print from w_publ_1ton_share_detail`cb_print within w_credence_mode_edit boolean visible = false integer x = 1550 integer y = 392 integer taborder = 170 end type type cb_add from w_publ_1ton_share_detail`cb_add within w_credence_mode_edit end type event cb_add::clicked;IF NOT f_power_ind(1983,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 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.billnumber = dw_uc.object.billnumber[uc_row] uo_porfit_loss_auto.ifalways = dw_uc.object.ifalways[uc_row] // debit // credit // amount // price // billid // billno // deptid // itemid for i = 1 to dw_child.rowcount() if uo_porfit_loss_auto.acceptmx(dw_child.object.subid[i],& dw_child.object.brief[i],& 0,& 0,& 0,& 0,& '',& dw_child.object.debit[i],& dw_child.object.credit[i],& dw_child.object.amount[i],& dw_child.object.price[i],& dw_child.object.deptid[i],& dw_child.object.itemid[i],& dw_child.object.billid[i],& dw_child.object.billno[i],& 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 wf_refresh_curuc(uo_porfit_loss_auto.credid) else if uo_porfit_loss_auto.newbegin(0,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_credence_mode_edit integer taborder = 70 end type event cb_edit::clicked;IF NOT f_power_ind(1983,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_credence_mode_edit integer taborder = 180 end type event cb_delet::clicked;call super::clicked;IF NOT f_power_ind(1984,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_addzy from w_publ_1ton_share_detail`cb_addzy within w_credence_mode_edit end type type cb_auditing from w_publ_1ton_share_detail`cb_auditing within w_credence_mode_edit boolean visible = false integer x = 2331 integer y = 412 integer width = 274 integer taborder = 210 string text = "生成凭证" end type type cb_xm from w_publ_1ton_share_detail`cb_xm within w_credence_mode_edit integer x = 837 end type event cb_xm::clicked;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_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_credence_mode_edit integer taborder = 150 end type type cb_xls from w_publ_1ton_share_detail`cb_xls within w_credence_mode_edit boolean visible = false integer x = 2021 integer y = 544 end type type cb_help from w_publ_1ton_share_detail`cb_help within w_credence_mode_edit boolean visible = false integer x = 2034 integer y = 468 end type type cb_auditing_cancel from w_publ_1ton_share_detail`cb_auditing_cancel within w_credence_mode_edit boolean visible = false integer x = 2578 integer y = 640 end type type p_msg from w_publ_1ton_share_detail`p_msg within w_credence_mode_edit end type type p_help from w_publ_1ton_share_detail`p_help within w_credence_mode_edit end type type p_encl from w_publ_1ton_share_detail`p_encl within w_credence_mode_edit end type type p_other from w_publ_1ton_share_detail`p_other within w_credence_mode_edit end type type gb_3 from w_publ_1ton_share_detail`gb_3 within w_credence_mode_edit end type type ln_bar from w_publ_1ton_share_detail`ln_bar within w_credence_mode_edit end type type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_credence_mode_edit end type type r_bar from w_publ_1ton_share_detail`r_bar within w_credence_mode_edit end type type ln_1 from w_publ_1ton_share_detail`ln_1 within w_credence_mode_edit boolean visible = false end type type ln_2 from w_publ_1ton_share_detail`ln_2 within w_credence_mode_edit boolean visible = false end type type ddlb_1 from dropdownlistbox within w_credence_mode_edit integer x = 869 integer y = 188 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 type cb_paste from uo_imflatbutton within w_credence_mode_edit integer x = 1367 integer width = 279 integer height = 164 integer taborder = 270 boolean bringtotop = true boolean enabled = false string text = "粘贴单据" string normalpicname = "paste.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;Long rslt = 1 String arg_msg = '' IF NOT dw_edit_mode THEN rslt = 0 arg_msg = '非编辑状态下不可粘贴' GOTO ext END IF Long ll_rowcount dw_child.AcceptText( ) ll_rowcount = ds_copy_bill.RowCount() IF ll_rowcount <= 0 THEN rslt = 0 arg_msg = '没有可粘贴的明细内容' GOTO ext END IF dw_child.Reset() Long ll_child_rowcount ll_child_rowcount = dw_child.RowCount() IF ds_copy_bill.RowsCopy(1, ll_rowcount, Primary!, dw_child, 1, Primary!) = - 1 THEN rslt = 0 arg_msg = '粘贴明细内容失败' GOTO ext END IF dw_child.AcceptText() ext: IF rslt = 1 THEN ELSE MessageBox('系统提示',arg_msg) END IF end event type cb_copy from uo_imflatbutton within w_credence_mode_edit integer x = 1088 integer width = 279 integer height = 164 integer taborder = 280 boolean bringtotop = true string text = "复制单据" string normalpicname = "copy.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;IF NOT f_power_ind(1983,sys_msg_pow) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF Long rslt = 1 Long ll_rowcount String arg_msg dw_child.AcceptText( ) ll_rowcount = dw_child.RowCount() IF ll_rowcount <= 0 THEN rslt = 0 arg_msg = '没有可复制的明细内容' GOTO ext END IF ds_copy_bill.Reset() IF dw_child.RowsCopy(1, ll_rowcount, Primary!, ds_copy_bill, 1, Primary!) = - 1 THEN rslt = 0 arg_msg = '复制明细内容失败' GOTO ext END IF ds_copy_bill.AcceptText() ext: IF rslt = 1 THEN MessageBox('系统提示','复制成功') ELSE MessageBox('系统提示',arg_msg) END IF end event