$PBExportHeader$w_credence_edit.srw $PBExportComments$凭证录入 forward global type w_credence_edit from w_publ_pageretr end type type cb_print from uo_imflatbutton within w_credence_edit end type type cb_retrieve from uo_imflatbutton within w_credence_edit end type type cb_addzy from uo_imflatbutton within w_credence_edit end type type cb_delet from uo_imflatbutton within w_credence_edit end type type cb_edit from uo_imflatbutton within w_credence_edit end type type cb_add from uo_imflatbutton within w_credence_edit end type type cb_add_xm from uo_imflatbutton within w_credence_edit end type type cb_dele_xm from uo_imflatbutton within w_credence_edit end type type cb_auditing from uo_imflatbutton within w_credence_edit end type type dw_child from u_dw_rbtnfilter within w_credence_edit end type type cb_money from uo_imflatbutton within w_credence_edit end type type dw_child_share from datawindow within w_credence_edit end type type cb_3 from uo_imflatbutton within w_credence_edit end type type cb_print_1 from uo_imflatbutton within w_credence_edit end type type cbx_1 from checkbox within w_credence_edit end type type cb_other from uo_imflatbutton within w_credence_edit end type type cb_new from uo_imflatbutton within w_credence_edit end type type st_mxdscrp from statictext within w_credence_edit end type type ln_5 from line within w_credence_edit end type type ln_6 from line within w_credence_edit end type type ln_1 from line within w_credence_edit end type type ln_2 from line within w_credence_edit end type end forward global type w_credence_edit from w_publ_pageretr integer width = 3045 integer height = 2276 string title = "记帐凭证" boolean minbox = false windowtype windowtype = response! event retrieve_childdw ( ) event retrieve_uc ( ) event refresh_interface ( ) event ue_f7 ( ) event ue_f8 ( ) event ue_f9 ( ) event ue_f10 ( ) event ue_f6 ( ) event ue_f11 ( ) event ue_f12 ( ) event ue_print ( ) event ue_print_wb ( ) event ue_print_view ( ) event ue_print_wb_view ( ) event ue_cmpl_tax ( ) event ue_computer ( ) event ue_cash ( ) event ue_cred_mode ( ) event ue_print_list ( ) event ue_balance ( ) event ue_bill_find ( ) event ue_xls ( ) cb_print cb_print cb_retrieve cb_retrieve cb_addzy cb_addzy cb_delet cb_delet cb_edit cb_edit cb_add cb_add cb_add_xm cb_add_xm cb_dele_xm cb_dele_xm cb_auditing cb_auditing dw_child dw_child cb_money cb_money dw_child_share dw_child_share cb_3 cb_3 cb_print_1 cb_print_1 cbx_1 cbx_1 cb_other cb_other cb_new cb_new st_mxdscrp st_mxdscrp ln_5 ln_5 ln_6 ln_6 ln_1 ln_1 ln_2 ln_2 end type global w_credence_edit w_credence_edit type variables Int child_column_int = 1,uc_column_int = 1 uo_credence uo_credence_ins Long cur_id = 0 Boolean if_fcurrency = FALSE //是否核算外币 Long i_credid = 0 Long rst_credid = 0 //0:不是对应的记帐凭证 Int cur_editfoucs = 0 Boolean if_changedw Long ll_xls_billid,ll_xls_Templatesid String ls_xls_DefaultDataWindow end variables forward prototypes public function integer wf_refresh_interface () public function integer wf_lock_child () public function integer wf_no_edit () public function integer wf_lock_uc () public function integer wf_refresh_curuc (long arg_subaccsetid, long arg_credid) public function integer wf_change_childdw_face () public function integer wf_autoadd_mx (datetime arg_createdate) public subroutine wf_reshare_subid () public function integer wf_check_cash (ref string arg_msg) public function integer wf_flagstatus_rf () end prototypes event retrieve_childdw;Long row,uc_credid,uc_subaccsetid,i,li_row,cnt row = dw_pageretr.GetRow() IF row > 0 THEN uc_subaccsetid = dw_pageretr.Object.subaccsetid[row] uc_credid = dw_pageretr.Object.credid[row] dw_child.SetRedraw (FALSE) dw_child.Retrieve(sys_accsetid,uc_subaccsetid,uc_credid) dw_child.ShareData(dw_child_share) cnt = dw_child.RowCount() FOR i = 1 TO sys_credence_insertrow - cnt dw_child.InsertRow(0) NEXT dw_child.SetRedraw (TRUE) ELSE dw_child.Reset() dw_child.ShareData(dw_child_share) END IF end event event refresh_interface();//被 wf_refresh_interface() 调用,用于界面刷新 cb_addzy.Enabled = dw_edit_mode cbx_1.Enabled = dw_edit_mode IF dw_edit_mode AND cur_editfoucs = 1 THEN IF sys_option_credno_save = 1 THEN dw_pageretr.SetTabOrder('credno',0) END IF END IF IF NOT dw_edit_mode THEN if_changedw = FALSE end event event ue_print();IF NOT f_power_ind(1034,sys_msg_pow) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF //--直接打印 uo_print_preview uo_print IF MessageBox ("IF","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN S_print_MSG LS_PRMSG LONG LS_ROW LS_ROW=dw_pageretr.getrow() IF LS_ROW<=0 THEN MESSAGEBOX('NO','没有打印目标单据!') RETURN END IF LS_PRMSG.retr_pram_falg=10 LS_PRMSG.obj_dwNAME='dw_pr_credence' LS_PRMSG.TAG_TEXT='记帐凭证' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.PAGECH_FLAG=0 LS_PRMSG.retr_pramnmb=dw_pageretr.object.credid[LS_ROW] LS_PRMSG.b_long=sys_emptyrowcount LS_PRMSG.c_long=sys_accsetid //==================================================================== // Script - clicked for cb_print // Reason: //-------------------------------------------------------------------- // Modified By: yyx Date: 2004.02.18 //-------------------------------------------------------------------- long ll_rowcount=0 select count(*) into :ll_rowcount from cw_credencemx where accsetid = :sys_accsetid and credid =:LS_PRMSG.retr_pramnmb; if sqlca.sqlcode<>0 then return end if if mod(ll_rowcount + 1,sys_emptyrowcount)<>0 then ll_rowcount=sys_emptyrowcount - mod(ll_rowcount + 1,sys_emptyrowcount) else ll_rowcount=0 end if LS_PRMSG.d_long=ll_rowcount uo_print.FACT_PRINT_MSG=LS_PRMSG string arg_msg if uo_print.uof_print_begin(arg_msg)=0 then messagebox("系统提示",arg_msg) return end if uo_print.ds_print() end event event ue_print_wb();IF NOT f_power_ind(1034,sys_msg_pow) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF //--直接打印 uo_print_preview uo_print IF MessageBox ("IF","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN S_print_MSG LS_PRMSG LONG LS_ROW LS_ROW=dw_pageretr.getrow() IF LS_ROW<=0 THEN MESSAGEBOX('NO','没有打印目标单据!') RETURN END IF LS_PRMSG.retr_pram_falg=10 LS_PRMSG.obj_dwNAME='dw_pr_credence_wb' LS_PRMSG.TAG_TEXT='记帐凭证' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.PAGECH_FLAG=0 LS_PRMSG.retr_pramnmb=dw_pageretr.object.credid[LS_ROW] LS_PRMSG.b_long=sys_emptyrowcount LS_PRMSG.c_long=sys_accsetid //==================================================================== // Script - clicked for cb_print // Reason: //-------------------------------------------------------------------- // Modified By: yyx Date: 2004.02.18 //-------------------------------------------------------------------- long ll_rowcount=0 select count(*) into :ll_rowcount from cw_credencemx where accsetid = :sys_accsetid and credid =:LS_PRMSG.retr_pramnmb; if sqlca.sqlcode<>0 then return end if if mod(ll_rowcount + 1,sys_emptyrowcount)<>0 then ll_rowcount=sys_emptyrowcount - mod(ll_rowcount + 1,sys_emptyrowcount) else ll_rowcount=0 end if LS_PRMSG.d_long=ll_rowcount uo_print.FACT_PRINT_MSG=LS_PRMSG string arg_msg if uo_print.uof_print_begin(arg_msg)=0 then messagebox("系统提示",arg_msg) return end if uo_print.ds_print() end event event ue_print_view();IF Not f_power_ind(1034,sys_msg_pow) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF Long LS_ROW LS_ROW = dw_pageretr.GetRow() IF LS_ROW <= 0 THEN MessageBox('NO','没有打印目标单据!') RETURN END IF S_print_MSG LS_PRMSG LS_PRMSG.obj_dwNAME = 'dw_pr_credence' LS_PRMSG.TAG_TEXT = '记帐凭证' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.retr_pram_falg = 15 LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_pramnmb = dw_pageretr.Object.credid[LS_ROW] LS_PRMSG.printrow = sys_emptyrowcount LS_PRMSG.retr_scid = sys_accsetid //==================================================================== // Script - clicked for cb_print // Reason: //-------------------------------------------------------------------- // Modified By: yyx Date: 2004.02.18 //-------------------------------------------------------------------- Long ll_rowcount = 0 SELECT count(*) INTO :ll_rowcount FROM cw_credencemx WHERE accsetid = :sys_accsetid And credid = :LS_PRMSG.retr_pramnmb; IF sqlca.SQLCode <> 0 THEN RETURN END IF IF Mod(ll_rowcount + 1,sys_emptyrowcount) <> 0 THEN ll_rowcount = sys_emptyrowcount - Mod(ll_rowcount + 1,sys_emptyrowcount) ELSE ll_rowcount = 0 END IF LS_PRMSG.rowcnt = ll_rowcount //==================================================================== OpenWithParm(w_publ_preview,LS_PRMSG) end event event ue_print_wb_view();IF NOT f_power_ind(1034,sys_msg_pow) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF LONG LS_ROW LS_ROW=dw_pageretr.getrow() IF LS_ROW<=0 THEN MESSAGEBOX('NO','没有打印目标单据!') RETURN END IF S_print_MSG LS_PRMSG LS_PRMSG.obj_dwNAME='dw_pr_credence_wb' LS_PRMSG.TAG_TEXT='记帐凭证' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.retr_pram_falg=10 LS_PRMSG.PAGECH_FLAG=0 LS_PRMSG.retr_pramnmb=dw_pageretr.object.credid[LS_ROW] LS_PRMSG.b_long=sys_emptyrowcount LS_PRMSG.c_long=sys_accsetid //==================================================================== // Script - clicked for cb_print // Reason: //-------------------------------------------------------------------- // Modified By: yyx Date: 2004.02.18 //-------------------------------------------------------------------- long ll_rowcount=0 select count(*) into :ll_rowcount from cw_credencemx where accsetid = :sys_accsetid and credid =:LS_PRMSG.retr_pramnmb; if sqlca.sqlcode<>0 then return end if if mod(ll_rowcount + 1,sys_emptyrowcount)<>0 then ll_rowcount=sys_emptyrowcount - mod(ll_rowcount + 1,sys_emptyrowcount) else ll_rowcount=0 end if LS_PRMSG.d_long=ll_rowcount //==================================================================== Openwithparm(w_publ_preview,LS_PRMSG) end event event ue_cmpl_tax;if not dw_edit_mode then messagebox('提示','非编辑状态下不可用') return end if long childrow decimal ld_debit,ld_credit,ld_tax_debit,ld_tax_credit dw_child.accepttext() childrow = dw_child.getrow() if childrow <= 0 then return ld_debit = dw_child.object.debit[childrow] ld_credit = dw_child.object.credit[childrow] if ld_debit <> 0 then ld_tax_debit = round(ld_debit/sys_bank_taxrate,2) if ld_credit <> 0 then ld_tax_credit = round(ld_credit/sys_bank_taxrate,2) dw_child.object.debit[childrow] = ld_tax_debit dw_child.object.credit[childrow] = ld_tax_credit end event event ue_computer;run('calc.exe') end event event ue_cash;IF dw_edit_mode THEN RETURN IF dw_pageretr.GetRow() <= 0 THEN RETURN Long i,cash_cnt s_flow_cred s_flowcred dw_pageretr.AcceptText() s_flowcred.accsetid = dw_pageretr.Object.accsetid[dw_pageretr.GetRow()] s_flowcred.credid = dw_pageretr.Object.credid[dw_pageretr.GetRow()] string ls_brief,ls_brief_arr[] DECLARE cur_brief CURSOR FOR SELECT cw_credencemx.brief FROM cw_subject,cw_credencemx WHERE cw_subject.accsetid = cw_credencemx.accsetid AND cw_subject.subid = cw_credencemx.subid AND cw_credencemx.accsetid = :s_flowcred.accsetid AND cw_credencemx.credid = :s_flowcred.credid AND cw_subject.hsemp = 1; open cur_brief; fetch cur_brief into :ls_brief; do while sqlca.sqlcode = 0 cash_cnt++ ls_brief_arr[cash_cnt] = ls_brief fetch cur_brief into :ls_brief; loop close cur_brief; IF cash_cnt = 0 THEN MessageBox('系统提示','凭证明细没有科目核算现金流量') RETURN END IF SELECT sum(debit),sum(credit) INTO :s_flowcred.debit,:s_flowcred.credit FROM cw_subject,cw_credencemx WHERE cw_subject.accsetid = cw_credencemx.accsetid AND cw_subject.subid = cw_credencemx.subid AND cw_credencemx.accsetid = :s_flowcred.accsetid AND cw_credencemx.credid = :s_flowcred.credid AND cw_subject.hsemp = 1; IF sqlca.SQLCode <> 0 THEN MessageBox('系统提示','查询凭证明细科目核算现金流量金额失败') RETURN END IF s_flowcred.brief = ls_brief_arr OpenWithParm(w_flow_cred,s_flowcred) end event event ue_cred_mode;IF NOT dw_edit_mode THEN MessageBox('提示','非编辑状态下不可用') RETURN END IF Long uc_row uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN RETURN Open(w_credence_mode_choice) Long ls_credid String ls_credtype Int ls_billnumber ls_credid = Message.DoubleParm IF ls_credid <= 0 THEN RETURN SELECT credtype,billnumber INTO :ls_credtype,:ls_billnumber FROM cw_credence_auto WHERE accsetid = :sys_accsetid AND credid = :ls_credid; IF sqlca.SQLCode <> 0 THEN RETURN dw_pageretr.Object.credtype[uc_row] = ls_credtype dw_pageretr.Object.billnumber[uc_row] = ls_billnumber Long child_row String ls_subid,ls_brief,ls_billno Decimal ls_debit,ls_credit,ls_amount,ls_price Long ls_deptid,ls_itemid,ls_billid Int li_hsqty,li_hsdept,li_hsemp,li_hsitem,li_dcflag DECLARE modecred_cur CURSOR FOR SELECT cw_credencemx_auto.subid, cw_credencemx_auto.brief, cw_credencemx_auto.debit, cw_credencemx_auto.credit, cw_credencemx_auto.amount, cw_credencemx_auto.price, cw_credencemx_auto.deptid, cw_credencemx_auto.itemid, cw_credencemx_auto.billid, cw_credencemx_auto.billno, cw_subject.hsqty, cw_subject.hsdept, cw_subject.hsemp, cw_subject.hsitem, cw_subject.dcflag FROM cw_credencemx_auto,cw_subject WHERE cw_credencemx_auto.accsetid = :sys_accsetid AND cw_credencemx_auto.credid = :ls_credid AND cw_credencemx_auto.accsetid = cw_subject.accsetid AND cw_credencemx_auto.subid = cw_subject.subid Order By cw_credencemx_auto.printid; OPEN modecred_cur; FETCH modecred_cur INTO :ls_subid,:ls_brief,:ls_debit,:ls_credit, :ls_amount,:ls_price,:ls_deptid,:ls_itemid, :ls_billid,:ls_billno,:li_hsqty,:li_hsdept, :li_hsemp,:li_hsitem,:li_dcflag; DO WHILE sqlca.SQLCode = 0 dw_child.AcceptText() Long ll_i Boolean if_f FOR ll_i = 1 TO dw_child.RowCount() IF Len(Trim(dw_child.Object.subid[ll_i])) > 0 THEN CONTINUE if_f = TRUE child_row = ll_i EXIT NEXT IF NOT if_f THEN child_row = dw_child.InsertRow(0) END IF dw_child.Object.brief[child_row] = ls_brief dw_child.Object.subid[child_row] = ls_subid dw_child.Object.debit[child_row] = ls_debit dw_child.Object.credit[child_row] = ls_credit dw_child.Object.cw_credencemx_billid[child_row] = ls_billid dw_child.Object.cw_credencemx_billno[child_row] = ls_billno dw_child.Object.cw_credencemx_amount[child_row] = ls_amount dw_child.Object.cw_credencemx_price[child_row] = ls_price dw_child.Object.cw_credencemx_deptid[child_row] = ls_deptid dw_child.Object.cw_credencemx_itemid[child_row] = ls_itemid dw_child.Object.cw_subject_hsqty[child_row] = li_hsqty dw_child.Object.cw_subject_hsdept[child_row] = li_hsdept dw_child.Object.cw_subject_hsemp[child_row] = li_hsemp dw_child.Object.cw_subject_hsitem[child_row] = li_hsitem dw_child.Object.cw_subject_dcflag[child_row] = li_dcflag FETCH modecred_cur INTO :ls_subid,:ls_brief,:ls_debit,:ls_credit, :ls_amount,:ls_price,:ls_deptid,:ls_itemid, :ls_billid,:ls_billno,:li_hsqty,:li_hsdept, :li_hsemp,:li_hsitem,:li_dcflag; LOOP CLOSE modecred_cur; // brief // subid // debit // credit // cw_credencemx_billid // cw_credencemx_billno // cw_credencemx_amount // cw_credencemx_price // cw_credencemx_deptid // cw_credencemx_itemid // end event event ue_print_list();IF NOT f_power_ind(1034,sys_msg_pow) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF //--直接打印 uo_print_preview uo_print if messagebox ("if","是否确定要打印列表中凭证吗?",question!,yesno! ) = 2 then return s_print_msg ls_prmsg long ls_i if dw_pageretr.rowcount() <= 0 then messagebox('no','没有打印目标凭证!') return end if ls_prmsg.retr_pram_falg = 10 ls_prmsg.tag_text = '记帐凭证' ls_prmsg.filter_string = '' ls_prmsg.pagech_flag = 0 ls_prmsg.pagech_flag = 0 ls_prmsg.b_long = sys_emptyrowcount ls_prmsg.c_long = sys_accsetid open(w_sys_wait_jdt) //初始化进度条 w_sys_wait_jdt.show() w_sys_wait_jdt.wf_accepttol(dw_pageretr.rowcount()) for ls_i = 1 to dw_pageretr.rowcount() w_sys_wait_jdt.st_msg.text="打印凭证:"+dw_pageretr.object.credtype[ls_i]+' '+string(dw_pageretr.object.credno[ls_i]) //进度信息 ls_prmsg.retr_pramnmb = dw_pageretr.object.credid[ls_i] long ll_rowcount = 0 select count(*) into :ll_rowcount from cw_credencemx where accsetid = :sys_accsetid and credid = :ls_prmsg.retr_pramnmb; if sqlca.sqlcode <> 0 then return end if if mod(ll_rowcount + 1,sys_emptyrowcount) <> 0 then ll_rowcount = sys_emptyrowcount - mod(ll_rowcount + 1,sys_emptyrowcount) else ll_rowcount = 0 end if ls_prmsg.d_long = ll_rowcount //格式 long mx_raw_cnt select count(*) into :mx_raw_cnt from cw_credencemx,cw_subject where cw_credencemx.accsetid = :sys_accsetid and cw_credencemx.credid = :ls_prmsg.retr_pramnmb and cw_credencemx.accsetid = cw_subject.accsetid and cw_credencemx.subid = cw_subject.subid and cw_subject.hswb = 1; if sqlca.sqlcode <> 0 then return end if if mx_raw_cnt = 0 then ls_prmsg.obj_dwname = 'dw_pr_credence' else ls_prmsg.obj_dwname = 'dw_pr_credence_wb' end if // // messagebox('',ls_prmsg.obj_dwname) uo_print.fact_print_msg = ls_prmsg string arg_msg if uo_print.uof_print_begin(arg_msg) = 0 then messagebox("系统提示",arg_msg) return end if uo_print.ds_print() w_sys_wait_jdt.wf_inc(ls_i) //进度 next close(w_sys_wait_jdt) end event event ue_balance;if not dw_edit_mode then messagebox('提示','非编辑状态下不可用') return end if long childrow decimal ld_sum_debit,ld_sum_credit,ld_amt dw_child.accepttext() childrow = dw_child.getrow() if childrow <= 0 then return if dw_child.object.debit[childrow] <> 0 or dw_child.object.debit[childrow] <> 0 then return ld_sum_debit = dw_child.object.sum_debit[childrow] ld_sum_credit = dw_child.object.sum_credit[childrow] ld_amt = abs(ld_sum_debit - ld_sum_credit) if dw_child.GetColumnName() = 'debit' then dw_child.object.debit[childrow] = ld_amt dw_child.object.credit[childrow] = 0 elseif dw_child.GetColumnName() = 'credit' then dw_child.object.credit[childrow] = ld_amt dw_child.object.debit[childrow] = 0 end if end event event ue_bill_find();IF dw_edit_mode THEN RETURN IF dw_pageretr.GetRow() <= 0 THEN RETURN String ls_code ls_code = dw_pageretr.Object.reldcode[dw_pageretr.GetRow()] //f_open_win('',0,ls_code) end event public function integer wf_refresh_interface ();//wf_refresh_interface IF dw_edit_mode THEN cb_add_xm.Enabled = TRUE cb_dele_xm.Enabled = TRUE cb_retrieve.Enabled = FALSE cb_delet.Enabled = FALSE cb_print.Enabled = FALSE cb_auditing.Enabled = FALSE cb_edit.Enabled = TRUE cb_add.Enabled = TRUE cb_edit.Text = "放弃&E" cb_edit.normalpicname = 'Undo.bmp' ELSE cb_add_xm.Enabled = FALSE cb_dele_xm.Enabled = FALSE cb_retrieve.Enabled = TRUE cb_delet.Enabled = TRUE cb_print.Enabled = TRUE cb_auditing.Enabled = TRUE cb_add.Enabled = FALSE cb_edit.Enabled = TRUE cb_edit.Text = "修改&E" cb_edit.normalpicname = 'OPEN.bmp' IF dw_pageretr.GetRow() <= 0 THEN cb_edit.Enabled = FALSE cb_delet.Enabled = FALSE cb_auditing.Enabled = FALSE END IF END IF IF retrieve_all OR dw_edit_mode THEN cb_nextpage.Enabled = FALSE cb_retrieveall.Enabled = FALSE em_pagerowno.Enabled = FALSE sle_usual_query.Enabled = FALSE ELSE cb_nextpage.Enabled = TRUE cb_retrieveall.Enabled = TRUE em_pagerowno.Enabled = TRUE sle_usual_query.Enabled = TRUE END IF wf_lock_child() wf_lock_uc() cb_edit.of_init_draw() cb_edit.of_paint() cb_edit.TriggerEvent('ue_textchange') THIS.TriggerEvent('refresh_interface') RETURN 1 end function public function integer wf_lock_child ();//wf_lock_child INT LS_INT IF dw_edit_mode THEN FOR LS_INT=1 TO child_column_int dw_child.SetTabOrder (LS_INT,LS_INT*10 ) NEXT //child_share FOR LS_INT=1 TO child_column_int dw_child_share.SetTabOrder (LS_INT,LS_INT*10 ) NEXT ELSE FOR LS_INT=1 TO child_column_int dw_child.SetTabOrder (LS_INT, 0) NEXT //child_share FOR LS_INT=1 TO child_column_int dw_child_share.SetTabOrder (LS_INT, 0) NEXT END IF RETURN 1 end function public function integer wf_no_edit ();//wf_no_edit IF dw_edit_mode THEN cb_edit.Enabled = TRUE ELSE cb_edit.Enabled = FALSE END IF RETURN 1 end function public function integer wf_lock_uc ();//wf_lock_uc INT LS_INT long ls_row ls_row=dw_pageretr.getrow() IF dw_edit_mode THEN FOR LS_INT=1 TO uc_column_int dw_pageretr.SetTabOrder (LS_INT,LS_INT*10 ) NEXT ELSE FOR LS_INT=1 TO uc_column_int dw_pageretr.SetTabOrder (LS_INT, 0) NEXT END IF if ls_row>0 then dw_pageretr.setrow(ls_row) RETURN 1 end function public function integer wf_refresh_curuc (long arg_subaccsetid, long arg_credid);//wf_refresh_curuc IF arg_subaccsetid < 0 THEN RETURN 0 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 dw_pageretr.SetRedraw(FALSE) Long credno DateTime creddate Long billnumber String credtype Long cmonth String billmaker DateTime billmakerdate String billcheck DateTime billcheckdate String billpost DateTime billpostdate Int checkflag Int postflag DateTime moddate String modemp SELECT cw_credence.credno, cw_credence.creddate , cw_credence.billnumber , cw_credence.credtype , cw_credence.cmonth , cw_credence.billmaker, cw_credence.billmakerdate , cw_credence.billcheck , cw_credence.billcheckdate , cw_credence.billpost , cw_credence.billpostdate , cw_credence.checkflag , cw_credence.postflag , cw_credence.moddate , cw_credence.modemp INTO :credno , :creddate , :billnumber, :credtype , :cmonth , :billmaker, :billmakerdate , :billcheck , :billcheckdate , :billpost , :billpostdate , :checkflag , :postflag, :moddate, :modemp FROM cw_credence WHERE ( cw_credence.accsetid = :sys_accsetid ) AND ( cw_credence.subaccsetid = :arg_subaccsetid ) AND ( cw_credence.credid = :arg_credid) ; IF sqlca.SQLCode <> 0 THEN MessageBox('系统提示',"查询操作失败(错误凭证唯一码)") RETURN 0 END IF dw_pageretr.Object.accsetid[uc_row] = sys_accsetid dw_pageretr.Object.subaccsetid[uc_row] = arg_subaccsetid dw_pageretr.Object.credid[uc_row] = arg_credid dw_pageretr.Object.credno[uc_row] = credno dw_pageretr.Object.creddate[uc_row] = creddate dw_pageretr.Object.billnumber[uc_row] = billnumber dw_pageretr.Object.credtype[uc_row] = credtype dw_pageretr.Object.cmonth[uc_row] = cmonth dw_pageretr.Object.billmaker[uc_row] = billmaker dw_pageretr.Object.billmakerdate[uc_row] = billmakerdate dw_pageretr.Object.billcheck[uc_row] = billcheck dw_pageretr.Object.billcheckdate[uc_row] = billcheckdate dw_pageretr.Object.billpost[uc_row] = billpost dw_pageretr.Object.billpostdate[uc_row] = billpostdate dw_pageretr.Object.checkflag[uc_row] = checkflag dw_pageretr.Object.postflag[uc_row] = postflag dw_pageretr.Object.moddate[uc_row] = moddate dw_pageretr.Object.modemp[uc_row] = modemp wf_flagstatus_rf() dw_pageretr.SetRedraw(TRUE) RETURN 1 //credid //accsetid //subaccsetid //credno //creddate //billnumber //credtype //cmonth //billmaker //billmakerdate //billcheck //billcheckdate //billpost //billpostdate //checkflag //postflag end function public function integer wf_change_childdw_face ();Long ls_sit,ls_width IF if_fcurrency THEN IF NOT if_changedw THEN dw_child.Modify('cw_subject_moneyid_t.visible=1 ~n rate_t.visible=1 ~n cw_credencemx_rawmoney_t.visible=1 ~n') dw_child.Modify('cw_subject_moneyid.visible=1 ~n rate.visible=1 ~n cw_credencemx_rawmoney.visible=1 ~n') ls_width = Long(dw_child.Describe('subid.width')) - Long(dw_child.Describe('cw_subject_moneyid.width')) - Long(dw_child.Describe('rate.width')) dw_child.Modify('subid.width='+String(ls_width)) ls_sit = Long(dw_child.Describe('subid.x'))+Long(dw_child.Describe('subid.width')) + 2 dw_child.Modify('cw_subject_moneyid_t.x='+String(ls_sit)) dw_child.Modify('cw_subject_moneyid.x='+String(ls_sit)) ls_sit = Long(dw_child.Describe('cw_subject_moneyid.x'))+Long(dw_child.Describe('cw_subject_moneyid.width')) + 6 dw_child.Modify('rate_t.x='+String(ls_sit)) dw_child.Modify('rate.x='+String(ls_sit)) dw_child.Modify('cw_credencemx_rawmoney_t.x='+String(ls_sit)) dw_child.Modify('cw_credencemx_rawmoney.x='+String(ls_sit)) ls_sit = Long(dw_child.Describe('rate.x'))+Long(dw_child.Describe('rate.width')) + 6 dw_child.Modify('debit.x='+String(ls_sit)) dw_child.Modify('debit_t.x='+String(ls_sit)) dw_child.Modify('sum_debit.x='+String(ls_sit)) dw_child.Modify('sum_rawmoney.x='+String(ls_sit)) ls_sit = Long(dw_child.Describe('debit.x'))+Long(dw_child.Describe('debit.width')) + 6 dw_child.Modify('credit.x='+String(ls_sit)) dw_child.Modify('credit_t.x='+String(ls_sit)) dw_child.Modify('sum_credit.x='+String(ls_sit)) END IF IF NOT if_changedw THEN if_changedw = TRUE ELSE ls_width = Long(dw_child.Describe('subid.width')) + Long(dw_child.Describe('cw_subject_moneyid.width')) + Long(dw_child.Describe('rate.width')) dw_child.Modify('cw_subject_moneyid_t.visible=0 ~n rate_t.visible=0 ~n cw_credencemx_rawmoney_t.visible=0 ~n') dw_child.Modify('cw_subject_moneyid.visible=0 ~n rate.visible=0 ~n cw_credencemx_rawmoney.visible=0 ~n') dw_child.Modify('subid.width='+String(ls_width)) ls_sit = Long(dw_child.Describe('subid.x'))+Long(dw_child.Describe('subid.width')) + 4 dw_child.Modify('debit.x='+String(ls_sit)) dw_child.Modify('debit_t.x='+String(ls_sit)) dw_child.Modify('sum_debit.x='+String(ls_sit)) dw_child.Modify('sum_rawmoney.x='+String(ls_sit)) ls_sit = Long(dw_child.Describe('debit.x'))+Long(dw_child.Describe('debit.width')) + 6 dw_child.Modify('credit.x='+String(ls_sit)) dw_child.Modify('credit_t.x='+String(ls_sit)) dw_child.Modify('sum_credit.x='+String(ls_sit)) if_changedw = FALSE END IF RETURN 1 // cw_credencemx_rawmoney // cw_subject_moneyid // rate // debit // credit // cw_subject_moneyid // cw_credencemx_rawmoney end function public function integer wf_autoadd_mx (datetime arg_createdate);Long i,li_row //datastore arg_ds // //arg_ds = CREATE datastore //arg_ds.DataObject = "ds_credencemx" //arg_ds.SetTransObject(sqlca) // //arg_ds.SetFullState ( s_tran.arg_blobds ) // //cb_new.TriggerEvent(Clicked!) // // // //FOR i = 1 TO arg_ds.RowCount() // IF i <= dw_child.RowCount() THEN // dw_child.Object.brief[i] = arg_ds.Object.brief[i] // dw_child.Object.subid[i] = arg_ds.Object.subid[i] // // dw_child.Object.rate[i] = arg_ds.Object.rate[i] // dw_child.Object.debit[i] = arg_ds.Object.debit[i] // dw_child.Object.credit[i] = arg_ds.Object.credit[i] // dw_child.Object.cw_credencemx_amount[i] = arg_ds.Object.amount[i] // dw_child.Object.cw_credencemx_price[i] = arg_ds.Object.price[i] // dw_child.Object.cw_credencemx_deptid[i] = arg_ds.Object.deptid[i] // dw_child.Object.cw_credencemx_itemid[i] = arg_ds.Object.itemid[i] // dw_child.Object.cw_credencemx_billdate[i] = arg_ds.Object.billdate[i] // dw_child.Object.cw_credencemx_billid[i] = arg_ds.Object.billid[i] // dw_child.Object.cw_credencemx_billno[i] = arg_ds.Object.billno[i] // dw_child.Object.cropbillid[i] = arg_ds.Object.cropbillid[i] // dw_child.Object.cw_credencemx_readonly[i] = arg_ds.Object.READONLY[i] // END IF //NEXT // //dw_pageretr.AcceptText() //li_row = dw_pageretr.GetRow() // //dw_pageretr.SetRedraw(FALSE) //dw_pageretr.Object.creddate[li_row] = arg_createdate //dw_pageretr.Object.reldate[li_row] = arg_createdate //dw_pageretr.SetFocus() //dw_pageretr.SetColumn("reldate") //dw_pageretr.SetRedraw(TRUE) // RETURN 1 end function public subroutine wf_reshare_subid ();//1.会计科目 datawindowchild childdw_subid dw_child.GetChild("subid",childdw_subid) childdw_subid.SetTransObject (sqlca) ddd_subid_display_detail.ShareData(childdw_subid) end subroutine public function integer wf_check_cash (ref string arg_msg);Int rslt = 1 IF sys_option_use_cash = 0 THEN rslt = 1 GOTO ext END IF IF dw_edit_mode THEN rslt = 0 arg_msg = '编辑状态不可用' GOTO ext END IF IF dw_pageretr.GetRow() <= 0 THEN rslt = 0 arg_msg = '请选择凭证' GOTO ext END IF Long i,cnt Long ll_accsetid,ll_credid dw_pageretr.AcceptText() ll_accsetid = dw_pageretr.Object.accsetid[dw_pageretr.GetRow()] ll_credid = dw_pageretr.Object.credid[dw_pageretr.GetRow()] SELECT count(*) INTO :cnt FROM cw_subject,cw_credencemx WHERE cw_subject.accsetid = cw_credencemx.accsetid AND cw_subject.subid = cw_credencemx.subid AND cw_credencemx.accsetid = :ll_accsetid AND cw_credencemx.credid = :ll_credid AND cw_subject.hsemp = 1; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询分录是否有核算现金流量科目失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt = 0 THEN rslt = 1 GOTO ext END IF Decimal ld_debit,ld_credit SELECT sum(debit),sum(credit) INTO :ld_debit,:ld_credit FROM cw_subject,cw_credencemx WHERE cw_subject.accsetid = cw_credencemx.accsetid AND cw_subject.subid = cw_credencemx.subid AND cw_credencemx.accsetid = :ll_accsetid AND cw_credencemx.credid = :ll_credid AND cw_subject.hsemp = 1; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询分录核算现金流量科目金额失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF ld_debit = ld_credit THEN rslt = 1 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM cw_cashitem WHERE accsetid = :ll_accsetid AND credid = :ll_credid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询现金流量分配失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt = 0 THEN arg_msg = '现金流量未分配,请检查' rslt = 0 GOTO ext END IF ext: RETURN rslt end function public function integer wf_flagstatus_rf ();//wf_flagstatus_rf Long pagerert_row pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN cb_auditing.Enabled = FALSE cb_3.Enabled = FALSE GOTO ext END IF IF dw_edit_mode THEN cb_auditing.Enabled = FALSE cb_3.Enabled = FALSE ELSE IF dw_pageretr.Object.checkflag[pagerert_row] = 0 THEN cb_auditing.Enabled = TRUE cb_3.Enabled = FALSE ELSEIF dw_pageretr.Object.checkflag[pagerert_row] = 1 and dw_pageretr.Object.postflag[pagerert_row] = 0 THEN cb_auditing.Enabled = FALSE cb_3.Enabled = TRUE ELSEIF dw_pageretr.Object.checkflag[pagerert_row] = 1 and dw_pageretr.Object.postflag[pagerert_row] = 1 THEN cb_auditing.Enabled = FALSE cb_3.Enabled = FALSE END IF END IF ext: RETURN 0 end function on w_credence_edit.create int iCurrent call super::create this.cb_print=create cb_print this.cb_retrieve=create cb_retrieve this.cb_addzy=create cb_addzy this.cb_delet=create cb_delet this.cb_edit=create cb_edit this.cb_add=create cb_add this.cb_add_xm=create cb_add_xm this.cb_dele_xm=create cb_dele_xm this.cb_auditing=create cb_auditing this.dw_child=create dw_child this.cb_money=create cb_money this.dw_child_share=create dw_child_share this.cb_3=create cb_3 this.cb_print_1=create cb_print_1 this.cbx_1=create cbx_1 this.cb_other=create cb_other this.cb_new=create cb_new this.st_mxdscrp=create st_mxdscrp this.ln_5=create ln_5 this.ln_6=create ln_6 this.ln_1=create ln_1 this.ln_2=create ln_2 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.cb_print this.Control[iCurrent+2]=this.cb_retrieve this.Control[iCurrent+3]=this.cb_addzy this.Control[iCurrent+4]=this.cb_delet this.Control[iCurrent+5]=this.cb_edit this.Control[iCurrent+6]=this.cb_add this.Control[iCurrent+7]=this.cb_add_xm this.Control[iCurrent+8]=this.cb_dele_xm this.Control[iCurrent+9]=this.cb_auditing this.Control[iCurrent+10]=this.dw_child this.Control[iCurrent+11]=this.cb_money this.Control[iCurrent+12]=this.dw_child_share this.Control[iCurrent+13]=this.cb_3 this.Control[iCurrent+14]=this.cb_print_1 this.Control[iCurrent+15]=this.cbx_1 this.Control[iCurrent+16]=this.cb_other this.Control[iCurrent+17]=this.cb_new this.Control[iCurrent+18]=this.st_mxdscrp this.Control[iCurrent+19]=this.ln_5 this.Control[iCurrent+20]=this.ln_6 this.Control[iCurrent+21]=this.ln_1 this.Control[iCurrent+22]=this.ln_2 end on on w_credence_edit.destroy call super::destroy destroy(this.cb_print) destroy(this.cb_retrieve) destroy(this.cb_addzy) destroy(this.cb_delet) destroy(this.cb_edit) destroy(this.cb_add) destroy(this.cb_add_xm) destroy(this.cb_dele_xm) destroy(this.cb_auditing) destroy(this.dw_child) destroy(this.cb_money) destroy(this.dw_child_share) destroy(this.cb_3) destroy(this.cb_print_1) destroy(this.cbx_1) destroy(this.cb_other) destroy(this.cb_new) destroy(this.st_mxdscrp) destroy(this.ln_5) destroy(this.ln_6) destroy(this.ln_1) destroy(this.ln_2) end on event closequery;IF dw_edit_mode THEN Int ls_row = 0 dw_pageretr.AcceptText() ls_row = dw_pageretr.GetNextModified(0, Primary!)+& dw_pageretr.GetNextModified(0, Filter!)+dw_pageretr.DeletedCount() IF ls_row > 0 THEN IF MessageBox('是否保存','单据数据已经改变,是否确定要放弃保存?',Question!,YesNo!,2 ) = 2 THEN RETURN 1 END IF ELSE ls_row = dw_child.GetNextModified(0, Primary!)+& dw_child.GetNextModified(0, Filter!)+dw_child.DeletedCount() IF ls_row > 0 THEN IF MessageBox('是否保存','单据明细数据已经改变,是否确定要放弃保存?',Question!,YesNo!,2 ) = 2 THEN RETURN 1 END IF END IF END IF END IF end event event user_key;call super::user_key;IF KeyDown(KeyF6!) THEN this.TRIGGEREVENT('ue_f6') ELSEIF KeyDown(KeyF7!) THEN this.TRIGGEREVENT('ue_f7') ELSEIF KeyDown(KeyF8!) or KeyDown(KeyShift!) and KeyDown(KeyEnter!) THEN this.TRIGGEREVENT('ue_f8') ELSEIF KeyDown(KeyF9!) THEN this.TRIGGEREVENT('ue_f9') ELSEIF KeyDown(KeyF10!) THEN this.TRIGGEREVENT('ue_f10') ELSEIF KeyDown(KeyF11!) THEN this.TRIGGEREVENT('ue_f11') ELSEIF KeyDown(KeyF12!) THEN this.TRIGGEREVENT('ue_f12') ELSEIF KeyDown(KeyF4!) THEN if cb_add.enabled then cb_add.TRIGGEREVENT(CLICKED!) ELSEIF KeyDown(KeyF5!) THEN if cb_edit.enabled then cb_edit.TRIGGEREVENT(CLICKED!) end if end event event open;THIS.TriggerEvent('ue_before_open') wf_movetocenter() OLD_TITLE = THIS.Title s_tran = Message.PowerObjectParm IF NOT IsNull(s_tran) THEN retrieve_all = s_tran.if_retrieve_all mode = s_tran.work_mode arg_pkid = s_tran.arg_pkid arg_string_code = s_tran.arg_string_code if_sharedata = s_tran.if_sharedata //是否应用sharedata,当retrieve_all=true是生效 ds_share = s_tran.ds_share i_credid = s_tran.e_long END IF dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关 dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关 dw_pageretr.SetTransObject (sqlca) pkcolumndbtname = wf_get_pkcolumndbtname(dw_pageretr) //取第一列为关键字 ori_oldselect = dw_pageretr.DESCRIBE("DataWindow.Table.Select") ls_newselect = ori_oldselect ds_curquery = CREATE DATASTORE ds_curquery.DataObject = 'd_extr_find' ds_curquery.SetTransObject (sqlca) wf_editindex_lockf() sle_usual_query.Text = Trim(arg_string_code) IF NOT retrieve_all THEN THIS.TriggerEvent("ue_usual_query_RETR") //修改ls_newselect,retrieve ELSE IF if_sharedata THEN ds_share.ShareData(dw_pageretr) ELSE wf_retrieveuc(dw_pageretr,ls_newselect,1) THIS.TriggerEvent('retrieve_pageretr') END IF END IF IF retrieve_all THEN THIS.TriggerEvent("ue_usual_query_filt") END IF //wf_refresh_interface() wf_change_childdw_face() uc_column_int = 10 //uc dw前7列可以编辑 child_column_int = 21 //子dw前19列可以编辑 uo_credence_ins = CREATE uo_credence //////////////////////// IF s_tran.d_long > 0 THEN wf_autoadd_mx(s_tran.b_datetime) END IF end event event ue_before_open;dw_child_share.SetTransObject(sqlca) dw_child.SetTransObject(sqlca) dw_pageretr.SetTransObject(sqlca) //1.会计科目 wf_reshare_subid() //2.凭证字 datawindowchild childdw_credword dw_pageretr.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 //3.结算方式 //datawindowchild childdw_banktypeid //dw_child_share.GetChild("cw_credencemx_billid",childdw_banktypeid) //childdw_banktypeid.SetTransObject (sqlca) //childdw_banktypeid.Retrieve(sys_accsetid) //IF childdw_banktypeid.RowCount() <= 0 THEN // childdw_banktypeid.InsertRow(0) //END IF //5.项目 //datawindowchild childdw_itemid //dw_child_share.GetChild("cw_credencemx_itemid",childdw_itemid) //childdw_itemid.SetTransObject (sqlca) //childdw_itemid.Retrieve(sys_accsetid) //IF childdw_itemid.RowCount() <= 0 THEN // childdw_itemid.InsertRow(0) //END IF //6.外币 //datawindowchild childdw_moneyid //dw_child.GetChild("cw_subject_moneyid",childdw_moneyid) //childdw_moneyid.SetTransObject (sqlca) //childdw_moneyid.Retrieve(sys_accsetid) //IF childdw_moneyid.RowCount() <= 0 THEN // childdw_moneyid.InsertRow(0) //END IF end event 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,i_credid) IF dw_pageretr.RowCount() > 0 AND dw_pageretr.GetRow() = 0 THEN dw_pageretr.SetRow(1) wf_flagstatus_rf() THIS.TriggerEvent('retrieve_childdw') cb_nextpage.Enabled = cb_nextpage_enabled cb_retrieveall.Enabled = cb_retrieveall_enabled end event event key;THIS.TriggerEvent('user_key') end event event close;Long ll_pagerow dw_pageretr.AcceptText() ll_pagerow = dw_pageretr.GetRow() IF ll_pagerow <= 0 THEN rst_credid = 0 ELSE rst_credid = dw_pageretr.Object.credid[ll_pagerow] END IF DESTROY uo_credence_ins CloseWithReturn(THIS,rst_credid) end event event resize;call super::resize;ln_5.EndX = THIS.Width ln_6.EndX = THIS.Width ln_1.EndX = THIS.Width ln_2.EndX = THIS.Width end event type cb_func from w_publ_pageretr`cb_func within w_credence_edit boolean visible = false integer x = 1806 integer y = 176 end type type cb_exit from w_publ_pageretr`cb_exit within w_credence_edit integer x = 2537 integer y = 0 integer width = 151 integer height = 164 integer taborder = 240 integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type type sle_usual_query from w_publ_pageretr`sle_usual_query within w_credence_edit boolean visible = false integer x = 3561 integer y = 824 integer width = 224 boolean bringtotop = true end type type cb_retrieveall from w_publ_pageretr`cb_retrieveall within w_credence_edit integer x = 3886 integer y = 488 integer width = 151 integer taborder = 200 end type type em_pagerowno from w_publ_pageretr`em_pagerowno within w_credence_edit integer x = 3721 integer y = 316 integer height = 92 integer taborder = 180 boolean bringtotop = true end type type dw_pageretr from w_publ_pageretr`dw_pageretr within w_credence_edit integer y = 348 integer width = 2990 integer height = 1768 boolean titlebar = false string dataobject = "dw_credence_edit" boolean maxbox = false boolean hscrollbar = false boolean vscrollbar = false boolean resizable = false boolean hsplitscroll = false borderstyle borderstyle = stylebox! end type event dw_pageretr::rowfocuschanged;dw_pageretr.SetRow(currentrow) dw_pageretr.ScrollToRow(currentrow) IF NOT dw_edit_mode THEN PARENT.TriggerEvent('retrieve_childdw') end event event dw_pageretr::ue_after_filter;IF NOT dw_edit_mode THEN PARENT.TriggerEvent('retrieve_childdw') end event event dw_pageretr::itemchanged;if not dw_edit_mode then return if row <= 0 then return if dwo.name <> 'credtype' then return dw_pageretr.accepttext() dw_pageretr.setredraw(false) string ls_credtype,arg_msg long ls_yearmon ls_yearmon = sys_curyearmon ls_credtype = dw_pageretr.object.credtype[row] if sys_option_credno_save = 0 then dw_pageretr.object.credno[row] = uo_credence_ins.get_new_credno(0,ls_credtype,ls_yearmon,arg_msg) if trim(arg_msg)<>'' then messagebox('提示',arg_msg) end if dw_pageretr.setcolumn("creddate") dw_pageretr.setredraw(true) end event event dw_pageretr::dwnkey;PARENT.TriggerEvent('user_key') IF Key = KeyDownArrow! THEN RETURN 1 IF dw_edit_mode THEN IF dw_pageretr.GetColumnName ( ) = 'billnumber' AND Key = KeyEnter! THEN dw_child.SetFocus() dw_child.ScrollToRow(1) dw_child.SetColumn ('brief') RETURN 1 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_pageretr::constructor;// end event type st_1 from w_publ_pageretr`st_1 within w_credence_edit boolean visible = false integer x = 3561 integer y = 1000 integer width = 174 string text = "期间:" end type type cb_nextpage from w_publ_pageretr`cb_nextpage within w_credence_edit integer x = 4032 integer y = 1016 integer width = 151 integer taborder = 230 end type type cb_print from uo_imflatbutton within w_credence_edit integer x = 2153 integer width = 192 integer height = 164 integer taborder = 140 string text = "预览&P" string normalpicname = "preview.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;m_Dfc_Control_PopupMenu dmPopupMenu String menustr menustr = "Text=本位币格式~tEvent=ue_print_view" menustr = menustr + "|" + "Text=外币格式~tEvent=ue_print_wb_view" IF Len(Trim(menustr)) <> 0 THEN dmPopupMenu = CREATE m_Dfc_Control_PopupMenu dmPopupMenu.mf_BuildMenu(THIS, menustr) dmPopupMenu.mf_PopMenu() DESTROY dmPopupMenu END IF end event type cb_retrieve from uo_imflatbutton within w_credence_edit integer x = 2002 integer width = 151 integer height = 164 integer taborder = 100 string text = "刷新" string normalpicname = "refresh.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;parent.triggerevent('retrieve_pageretr') end event type cb_addzy from uo_imflatbutton within w_credence_edit integer x = 535 integer width = 192 integer height = 164 integer taborder = 160 boolean bringtotop = true boolean enabled = false string text = "获取&A" string normalpicname = "find.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;IF NOT dw_edit_mode THEN RETURN Long child_row String ls_brief,ls_subid s_subject s_rt_subject dw_child.accepttext() child_row = dw_child.GetRow() IF child_row <= 0 THEN MessageBox('系统提示','请选定当前目标凭证明细!') RETURN END IF IF dw_child.GetColumnName() = 'brief' THEN Open(w_briefdef_edit) ls_brief = Message.StringParm IF ls_brief = '' THEN RETURN dw_child.Object.brief[child_row] = ls_brief ELSEIF dw_child.GetColumnName() = 'subid' THEN IF cbx_1.Checked THEN IF NOT IsValid(w_subjectdef_edit) THEN OpenWithParm(w_subjectdef_edit,0) ELSE IF NOT IsValid(w_subjectdef_ch) then OpenWithParm(w_subjectdef_ch,Trim(dw_child.Object.subid[child_row])) END IF s_rt_subject = Message.PowerObjectParm IF s_rt_subject.subid = '' THEN RETURN wf_reshare_subid() dw_child.Object.subid[child_row] = s_rt_subject.subid dw_child.Object.cw_subject_moneyid[child_row] = s_rt_subject.moneyid dw_child.Object.cw_subject_hswb[child_row] = s_rt_subject.hswb dw_child.Object.cw_subject_hsqty[child_row] = s_rt_subject.hsqty dw_child.Object.cw_subject_hsdept[child_row] = s_rt_subject.hsdept dw_child.Object.cw_subject_hsemp[child_row] = s_rt_subject.hsemp dw_child.Object.cw_subject_hsitem[child_row] = s_rt_subject.hsitem dw_child.Object.cw_subject_dcflag[child_row] = s_rt_subject.dcflag dw_child.Object.cw_subject_hscust[child_row] = s_rt_subject.hscust dw_child.Object.cw_subject_hsspt[child_row] = s_rt_subject.hsspt dw_child.Object.cw_subject_hstrader[child_row] = s_rt_subject.hstrader IF s_rt_subject.hswb <> 0 THEN if_fcurrency = TRUE wf_change_childdw_face() IF s_rt_subject.hswb = 2 THEN Long ll_moneyid_native Decimal ld_rate SELECT moneyid,rate INTO :ll_moneyid_native,:ld_rate FROM cw_currency Where accsetid = :sys_accsetid AND native = 1; IF sqlca.SQLCode <> 0 THEN ll_moneyid_native = 0 ld_rate = 0 ELSE dw_child.Object.cw_subject_moneyid[child_row] = ll_moneyid_native dw_child.Object.rate[child_row] = ld_rate END IF END IF END IF END IF //cw_subject_hsdept //cw_subject_hsemp //cw_subject_hsitem //cw_subject_hsqty //cw_subject_hswb //cw_subject_moneyid //cw_subject_specialcode end event type cb_delet from uo_imflatbutton within w_credence_edit integer x = 384 integer width = 151 integer height = 164 integer taborder = 150 string text = "删除" string normalpicname = "delete.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;IF NOT f_power_ind(1031,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_subaccsetid,ls_credid uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请选定当前目标凭证!') RETURN END IF ls_subaccsetid = dw_pageretr.Object.subaccsetid[uc_row] ls_credid = dw_pageretr.Object.credid[uc_row] IF uo_credence_ins.del(0,ls_subaccsetid,ls_credid,arg_msg,TRUE) = 0 THEN MessageBox('Error!',arg_msg) ELSE MessageBox(publ_operator,'删除凭证'+String(dw_pageretr.Object.credno[uc_row])+'成功!') dw_pageretr.DeleteRow(uc_row) dw_pageretr.PostEvent(RowFocusChanged!) END IF end event type cb_edit from uo_imflatbutton within w_credence_edit integer x = 192 integer width = 192 integer height = 164 integer taborder = 70 string text = "修改&E" string normalpicname = "open.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;IF NOT f_power_ind(1030,sys_msg_pow) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF String arg_msg = '' Long uc_row Long ls_subaccsetid,ls_credid uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请选定当前目标凭证!') RETURN END IF ls_subaccsetid = dw_pageretr.Object.subaccsetid[uc_row] ls_credid = dw_pageretr.Object.credid[uc_row] IF NOT dw_edit_mode THEN IF uo_credence_ins.UPDATEbegin(ls_subaccsetid,ls_credid,arg_msg) = 0 THEN MessageBox(publ_operator,arg_msg) RETURN END IF END IF dw_edit_mode = NOT dw_edit_mode wf_refresh_interface() IF dw_edit_mode THEN dw_pageretr.SetFocus() cur_editfoucs = 2 ELSE PARENT.TriggerEvent('retrieve_pageretr') IF if_fcurrency THEN if_fcurrency = FALSE wf_change_childdw_face() END IF cur_editfoucs = 0 END IF end event type cb_add from uo_imflatbutton within w_credence_edit integer width = 192 integer height = 164 integer taborder = 60 boolean enabled = false string text = "保存&S" string normalpicname = "save.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;IF NOT f_power_ind(1030,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 Long ls_yearmon ls_yearmon = sys_curyearmon IF dw_edit_mode THEN dw_pageretr.AcceptText() dw_child.AcceptText() dw_child_share.AcceptText() uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox(publ_operator,'请选定当前目标凭证!') RETURN END IF IF sys_option_credno_save = 0 THEN IF dw_pageretr.Object.credno[uc_row] <= 0 THEN MessageBox(publ_operator,'请正确填写凭证编号!') RETURN END IF END IF sum_debit = dw_child.Object.sum_debit[1] sum_credit = dw_child.Object.sum_credit[1] IF sum_debit <> 0 OR sum_credit <> 0 THEN IF String(sum_debit,'###0.00') <> String(sum_credit,'###0.00') THEN IF (String(sum_debit,'###0.00') = '0.00' OR String(sum_debit,'###0.00') = '-0.00') AND & (String(sum_credit,'###0.00') = '0.00' OR String(sum_credit,'###0.00') = '-0.00') THEN ELSE MessageBox(publ_operator,'借、贷方金额不等!') RETURN END IF END IF END IF //==================================================================== // script - clicked for cb_add // reason:检查数量是否已录入 //-------------------------------------------------------------------- // modified by: yyx date: 2004.02.17 //-------------------------------------------------------------------- FOR i = 1 TO dw_child.RowCount() String is_subid,is_brief Int is_hsqty Decimal is_amount,is_price is_brief = dw_child.Object.brief[i] is_subid = dw_child.Object.subid[i] is_hsqty = dw_child.Object.cw_subject_hsqty[i] is_amount = dw_child.Object.cw_credencemx_amount[i] is_price = dw_child.Object.cw_credencemx_price[i] IF IsNull(is_hsqty) THEN is_hsqty = 0 IF IsNull(is_amount) THEN is_amount = 0 IF IsNull(is_price) THEN is_price = 0 IF is_hsqty = 1 AND is_amount = 0 AND is_price = 0 THEN IF MessageBox ("询问","摘要:"+is_brief+",科目:"+is_subid+"没有录入数量,是否确定要保存当前凭证吗?",question!,yesno! ) = 2 THEN RETURN END IF Int li_hsdept,li_hsitem,li_hscust,li_hsspt Long ll_itemid,ll_deptid,ll_cusid,ll_sptid li_hsdept = dw_child.Object.cw_subject_hsdept[i] ll_deptid = dw_child.Object.cw_credencemx_deptid[i] li_hsitem = dw_child.Object.cw_subject_hsitem[i] ll_itemid = dw_child.Object.cw_credencemx_itemid[i] li_hscust = dw_child.Object.cw_subject_hscust[i] ll_cusid = dw_child.Object.cw_credencemx_cusid[i] li_hsspt = dw_child.Object.cw_subject_hsspt[i] ll_sptid = dw_child.Object.cw_credencemx_sptid[i] IF IsNull(li_hsdept) THEN li_hsdept = 0 IF IsNull(ll_deptid) THEN ll_deptid = 0 IF IsNull(li_hsitem) THEN li_hsitem = 0 IF IsNull(ll_itemid) THEN ll_itemid = 0 IF IsNull(li_hscust) THEN li_hscust = 0 IF IsNull(ll_cusid) THEN ll_cusid = 0 IF IsNull(li_hsspt) THEN li_hsspt = 0 IF IsNull(ll_sptid) THEN ll_sptid = 0 IF li_hsdept = 1 AND ll_deptid = 0 THEN IF sys_option_cred_dics_limit = 0 THEN IF MessageBox ("询问","摘要:"+is_brief+",科目:"+is_subid+"核算部门,分录没有选择部门,是否确定要保存当前凭证吗?",question!,yesno! ) = 2 THEN RETURN ELSE MessageBox ("询问","摘要:"+is_brief+",科目:"+is_subid+"核算部门,分录没有选择部门,不能保存当前凭证,请检查") END IF END IF IF li_hsitem = 1 AND ll_itemid = 0 THEN IF sys_option_cred_dics_limit = 0 THEN IF MessageBox ("询问","摘要:"+is_brief+",科目:"+is_subid+"核算项目,分录没有选择项目,是否确定要保存当前凭证吗?",question!,yesno! ) = 2 THEN RETURN ELSE MessageBox ("询问","摘要:"+is_brief+",科目:"+is_subid+"核算项目,分录没有选择项目,不能保存当前凭证,请检查") END IF END IF IF li_hscust = 1 AND ll_cusid = 0 THEN IF sys_option_cred_dics_limit = 0 THEN IF MessageBox ("询问","摘要:"+is_brief+",科目:"+is_subid+"核算客户,分录没有选择客户,是否确定要保存当前凭证吗?",question!,yesno! ) = 2 THEN RETURN ELSE MessageBox ("询问","摘要:"+is_brief+",科目:"+is_subid+"核算客户,分录没有选择客户,不能保存当前凭证,请检查") END IF END IF IF li_hsspt = 1 AND ll_sptid = 0 THEN IF sys_option_cred_dics_limit = 0 THEN IF MessageBox ("询问","摘要:"+is_brief+",科目:"+is_subid+"核算供应商,分录没有选择供应商,是否确定要保存当前凭证吗?",question!,yesno! ) = 2 THEN RETURN ELSE MessageBox ("询问","摘要:"+is_brief+",科目:"+is_subid+"核算供应商,分录没有选择供应商,不能保存当前凭证,请检查") END IF END IF NEXT //==================================================================== //==================================================================== // script - clicked for cb_add // reason:检查贷方是否录入现金银行 //-------------------------------------------------------------------- // modified by: yyx date: 2004.02.17 //-------------------------------------------------------------------- IF sys_bank_awoke = 1 THEN FOR i = 1 TO dw_child.RowCount() Dec arg_rawdebit,arg_rawcredit IF dw_child.Object.debit[i] <> 0 THEN arg_rawdebit = dw_child.Object.cw_credencemx_rawmoney[i] arg_rawcredit = 0 ELSEIF dw_child.Object.credit[i] <> 0 THEN arg_rawdebit = 0 arg_rawcredit = dw_child.Object.cw_credencemx_rawmoney[i] END IF IF f_check_credit(dw_pageretr.Object.credid[uc_row],dw_child.Object.subid[i],& dw_child.Object.debit[i],dw_child.Object.credit[i],& arg_rawdebit,arg_rawcredit,arg_msg) = 0 THEN IF MessageBox ("询问","科目:"+String(dw_child.Object.subid[i])+" 为现金或银行余额贷方分录,是否确定要保存当前凭证吗? ~n" + arg_msg,question!,yesno! ) = 2 THEN RETURN END IF NEXT END IF //==================================================================== uo_credence_ins.subaccsetid = dw_pageretr.Object.subaccsetid[uc_row] //子帐id uo_credence_ins.credno = dw_pageretr.Object.credno[uc_row] // 编号 uo_credence_ins.creddate = dw_pageretr.Object.creddate[uc_row] // 日期 uo_credence_ins.billnumber = dw_pageretr.Object.billnumber[uc_row] //附件 uo_credence_ins.credtype = dw_pageretr.Object.credtype[uc_row] //凭证字 uo_credence_ins.reldcode = dw_pageretr.Object.reldcode[uc_row] //凭证字 uo_credence_ins.reldate = dw_pageretr.Object.reldate[uc_row] //凭证字 uo_credence_ins.ifauto = 0 IF s_tran.c_long > 0 THEN uo_credence_ins.readtype = s_tran.c_long ELSE uo_credence_ins.readtype = dw_pageretr.Object.readtype[uc_row] END IF uo_credence_ins.relevantbillid = s_tran.d_long uo_credence_ins.cmonth = ls_yearmon // 日期 FOR i = 1 TO dw_child.RowCount() Dec ls_rawdebit,ls_rawcredit,ls_price,ls_amount IF dw_child.Object.debit[i] <> 0 THEN ls_rawdebit = dw_child.Object.cw_credencemx_rawmoney[i] ls_rawcredit = 0 ELSEIF dw_child.Object.credit[i] <> 0 THEN ls_rawdebit = 0 ls_rawcredit = dw_child.Object.cw_credencemx_rawmoney[i] END IF ls_amount = dw_child.Object.cw_credencemx_amount[i] IF ls_amount = 0 THEN ls_price = 0 ELSE ls_price = Round((dw_child.Object.debit[i] + dw_child.Object.credit[i])/ls_amount ,4) END IF IF uo_credence_ins.acceptmx(dw_child.Object.no[i],dw_child.Object.subid[i],& dw_child.Object.brief[i],dw_child.Object.rate[i],ls_rawdebit,& ls_rawcredit,dw_child.Object.debit[i],dw_child.Object.credit[i],& ls_amount,ls_price,& dw_child.Object.cw_credencemx_deptid[i],dw_child.Object.cw_credencemx_itemid[i],& dw_child.Object.cw_credencemx_billdate[i],dw_child.Object.cw_credencemx_billid[i],& dw_child.Object.cw_credencemx_billno[i],dw_child.Object.cropbillid[i],& dw_child.Object.cw_credencemx_readonly[i],& dw_child.Object.cw_credencemx_cusid[i],& dw_child.Object.cw_credencemx_sptid[i],& dw_child.Object.cw_credencemx_empid[i],& arg_msg) = 0 THEN MessageBox('error!',arg_msg) RETURN END IF NEXT IF uo_credence_ins.Save(publ_operator,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) wf_refresh_curuc(uo_credence_ins.subaccsetid,uo_credence_ins.credid) //刷新uc IF if_fcurrency THEN if_fcurrency = FALSE wf_change_childdw_face() END IF END IF dw_edit_mode = NOT dw_edit_mode wf_refresh_interface() IF NOT dw_edit_mode THEN cur_editfoucs = 0 PARENT.TriggerEvent("retrieve_childdw") CLOSE(PARENT) END IF end event type cb_add_xm from uo_imflatbutton within w_credence_edit integer x = 1070 integer width = 283 integer height = 164 integer taborder = 80 boolean enabled = false string text = "插明细F8" string normalpicname = "mx.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event 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_dele_xm from uo_imflatbutton within w_credence_edit integer x = 1353 integer width = 224 integer height = 164 integer taborder = 90 boolean enabled = false string text = "删明细" string normalpicname = "mx1.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;IF MessageBox ("IF","是否确定要删除当前细目记录?",Question!,YesNo! ) = 2 THEN RETURN IF dw_child.GETROW()=0 THEN MESSAGEBOX('NO','请选择删除的行对象!') RETURN END IF dw_child.DeleteRow (0) dw_child.TriggerEvent (rowfocuschanged!) end event type cb_auditing from uo_imflatbutton within w_credence_edit integer x = 727 integer width = 192 integer height = 164 integer taborder = 190 boolean bringtotop = true string text = "审核&F" string normalpicname = "audit.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;IF NOT f_power_ind(1032,sys_msg_pow) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF IF dw_edit_mode THEN RETURN String arg_msg = '' Long pagerert_row Long ls_subaccsetid,ls_credid pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('系统提示','请选定当前目标凭证!') RETURN END IF IF MessageBox ("IF","是否确定要"+THIS.Text+"当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN ls_subaccsetid = dw_pageretr.Object.subaccsetid[pagerert_row] ls_credid = dw_pageretr.Object.credid[pagerert_row] IF wf_check_cash(arg_msg) = 0 THEN MessageBox('提示',arg_msg) RETURN END IF IF uo_credence_ins.Check(ls_subaccsetid,ls_credid,arg_msg,TRUE) = 0 THEN MessageBox('Error!',arg_msg) ELSE MessageBox(publ_operator,'审核成功!') wf_refresh_curuc(ls_subaccsetid,ls_credid) END IF end event type dw_child from u_dw_rbtnfilter within w_credence_edit event dwnkey pbm_dwnkey integer y = 628 integer width = 2990 integer height = 1296 integer taborder = 30 boolean bringtotop = true string dataobject = "dw_credencemx_index" boolean vscrollbar = true borderstyle borderstyle = stylebox! end type event dwnkey;PARENT.TriggerEvent('user_key') String ls_subid,ls_briefcode,ls_briefname,ls_dftsubid,ls_subid_find Long ls_moneyid Int ls_hswb,ls_hsqty,ls_hsdept,ls_hsemp,ls_hsitem,ls_dcflag,ls_hscust,ls_hsspt,ls_hstrader Dec ls_rawmoney Double ls_rawrate Long child_row IF dw_edit_mode THEN child_row = dw_child.GetRow() IF child_row <= 0 THEN RETURN IF (KeyDown(keyenter!) OR KeyDown(keytab!)) AND NOT KeyDown(keycontrol!) AND NOT KeyDown(keyshift!) THEN IF dw_child.GetColumnName() = 'brief' THEN dw_child.AcceptText() ls_briefcode = dw_child.Object.brief[child_row] IF ls_briefcode <> '' THEN SELECT top 1 briefname,dftsubid INTO :ls_briefname,:ls_dftsubid FROM cw_brief Where (briefcode = :ls_briefcode OR briefname = :ls_briefcode) AND accsetid = :sys_accsetid; IF sqlca.SQLCode <> 0 OR IsNull(ls_briefname) THEN ls_briefname = '' IF ls_briefname <> '' THEN dw_child.Object.brief[child_row] = ls_briefname IF dw_child.Object.subid[child_row] = '' THEN dw_child.Object.subid[child_row] = ls_dftsubid END IF END IF END IF IF Key = keyenter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF ELSEIF dw_child.GetColumnName() = 'subid' THEN dw_child.AcceptText() ls_subid = dw_child.Object.subid[child_row] SELECT cw_subject.moneyid,hswb,hsqty,hsdept,hsemp,hsitem,dcflag,cw_currency.rate, hscust,hsspt,cw_subject.subid,cw_subject.hstrader INTO :ls_moneyid,:ls_hswb,:ls_hsqty,:ls_hsdept, :ls_hsemp,:ls_hsitem,:ls_dcflag,:ls_rawrate,:ls_hscust,:ls_hsspt,:ls_subid_find,:ls_hstrader FROM cw_subject left OUTER join cw_currency on cw_subject.accsetid = cw_currency.accsetid AND cw_subject.moneyid = cw_currency.moneyid Where subid = :ls_subid AND cw_subject.accsetid = :sys_accsetid; IF sqlca.SQLCode <> 0 THEN cb_addzy.TriggerEvent(Clicked!) RETURN 1 END IF dw_child.Object.cw_subject_moneyid[child_row] = ls_moneyid dw_child.Object.cw_subject_hswb[child_row] = ls_hswb dw_child.Object.cw_subject_hsqty[child_row] = ls_hsqty dw_child.Object.cw_subject_hsdept[child_row] = ls_hsdept dw_child.Object.cw_subject_hsemp[child_row] = ls_hsemp dw_child.Object.cw_subject_hsitem[child_row] = ls_hsitem dw_child.Object.cw_subject_dcflag[child_row] = ls_dcflag dw_child.Object.cw_subject_hscust[child_row] = ls_hscust dw_child.Object.cw_subject_hsspt[child_row] = ls_hsspt dw_child.Object.cw_subject_hstrader[child_row] = ls_hstrader dw_child.Object.subid[child_row] = ls_subid_find IF ls_hswb <> 0 THEN if_fcurrency = TRUE dw_child.Object.rate[child_row] = ls_rawrate wf_change_childdw_face() IF ls_hswb = 2 THEN Long ll_moneyid_native Decimal ld_rate SELECT moneyid,rate INTO :ll_moneyid_native,:ld_rate FROM cw_currency Where accsetid = :sys_accsetid AND native = 1; IF sqlca.SQLCode <> 0 THEN ll_moneyid_native = 0 ld_rate = 0 ELSE dw_child.Object.cw_subject_moneyid[child_row] = ll_moneyid_native dw_child.Object.rate[child_row] = ld_rate END IF END IF ELSE dw_child.Object.rate[child_row] = 0 END IF IF Key = keyenter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF ELSEIF dw_child.GetColumnName() = 'cw_credencemx_rawmoney' THEN dw_child.AcceptText() IF dw_child.Object.cw_subject_moneyid[child_row] > 0 THEN ls_rawrate = dw_child.Object.rate[child_row] ls_rawmoney = dw_child.Object.cw_credencemx_rawmoney[child_row] IF dw_child.Object.cw_subject_dcflag[child_row] = 1 THEN dw_child.Object.debit[child_row] = Round(ls_rawmoney * ls_rawrate,2) ELSE dw_child.Object.credit[child_row] = Round(ls_rawmoney * ls_rawrate,2) END IF IF Key = keyenter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF END IF ELSEIF dw_child.GetColumnName() = 'debit' THEN dw_child.AcceptText() IF dw_child.Object.debit[child_row] <> 0 THEN dw_child.Object.credit[child_row] = 0 IF Key = keyenter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 ELSEIF Key = KeySpaceBar! THEN dw_child.SetRedraw(FALSE) dw_child.SetColumn('credit') dw_child.Object.credit[child_row] = dw_child.Object.debit[child_row] dw_child.Object.debit[child_row] = 0 dw_child.SetRedraw(TRUE) RETURN 1 END IF ELSEIF dw_child.GetColumnName() = 'credit' THEN dw_child.AcceptText() IF Key = keyenter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 ELSEIF Key = KeySpaceBar! THEN dw_child.SetRedraw(FALSE) dw_child.SetColumn('debit') dw_child.Object.debit[child_row] = dw_child.Object.credit[child_row] dw_child.Object.credit[child_row] = 0 dw_child.SetRedraw(TRUE) RETURN 1 END IF IF dw_child.Object.credit[child_row] <> 0 THEN dw_child.Object.debit[child_row] = 0 dw_child.AcceptText() 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 ELSE IF KeyDown( KeyF12!) AND dw_child.GetColumnName() = 'brief' THEN dw_child.AcceptText() dw_child.SetRedraw(FALSE) IF child_row > 1 THEN dw_child.Object.brief[child_row] = dw_child.Object.brief[child_row - 1] END IF dw_child.SetRedraw(TRUE) END IF END IF END IF end event event constructor;call super::constructor;titleclick_sort_use=true end event event doubleclicked;IF NOT dw_edit_mode THEN RETURN dw_child.AcceptText() IF dwo.Name = 'cw_subject_moneyid' THEN IF dw_child.Object.cw_subject_hswb[row] = 2 THEN IF NOT IsValid(w_currency_ch) THEN OPEN(w_currency_ch) s_currency s_ch_rst s_ch_rst = Message.PowerObjectParm IF s_ch_rst.moneyid = 0 THEN RETURN dw_child.Object.cw_subject_moneyid[row] = s_ch_rst.moneyid dw_child.Object.rate[row] = s_ch_rst.rate dw_child.SetColumn('cw_credencemx_rawmoney') END IF END IF ELSE cb_addzy.TriggerEvent(Clicked!) END IF end event event rowfocuschanged;Long ll_getrow ll_getrow = THIS.GetRow() IF ll_getrow <= 0 THEN st_mxdscrp.Text = '' ELSE THIS.SelectRow(0,FALSE) THIS.SetRow(ll_getrow) THIS.ScrollToRow (ll_getrow) THIS.SelectRow(ll_getrow,TRUE) THIS.AcceptText() st_mxdscrp.Text = '分录:'+String(ll_getrow)+',搞要:'+THIS.Object.brief[ll_getrow] dw_child_share.SetRow(ll_getrow) dw_child_share.ScrollToRow (ll_getrow) END IF IF dw_edit_mode THEN IF sys_option_lbrief = 1 AND ll_getrow > 1 AND cur_editfoucs = 1 THEN dw_child.Object.brief[ll_getrow] = dw_child.Object.brief[ll_getrow - 1 ] END IF END IF end event event itemchanged;IF NOT dw_edit_mode THEN RETURN String ls_subid long ll_moneyid int li_hswb,li_hsqty,li_hsdept,li_hsemp,li_hsitem,li_dcflag dw_child.accepttext() IF row <= 0 THEN RETURN if dwo.name = 'subid' THEN ls_subid = dw_child.object.subid[row] select moneyid,hswb,hsqty,hsdept,hsemp,hsitem,dcflag into :ll_moneyid,:li_hswb,:li_hsqty,:li_hsdept,:li_hsemp,:li_hsitem,:li_dcflag from cw_subject where accsetid = :sys_accsetid and subid = :ls_subid; if sqlca.sqlcode <> 0 then return wf_reshare_subid() dw_child.Object.cw_subject_moneyid[row] = ll_moneyid dw_child.Object.cw_subject_hswb[row] = li_hswb dw_child.Object.cw_subject_hsqty[row] = li_hsqty dw_child.Object.cw_subject_hsdept[row] = li_hsdept dw_child.Object.cw_subject_hsemp[row] = li_hsemp dw_child.Object.cw_subject_hsitem[row] = li_hsitem dw_child.Object.cw_subject_dcflag[row] = li_dcflag IF li_hswb <> 0 THEN if_fcurrency = TRUE wf_change_childdw_face() IF li_hswb = 2 THEN Long ll_moneyid_native Decimal ld_rate SELECT moneyid,rate INTO :ll_moneyid_native,:ld_rate FROM cw_currency Where accsetid = :sys_accsetid AND native = 1; IF sqlca.SQLCode <> 0 THEN ll_moneyid_native = 0 ld_rate = 0 ELSE dw_child.Object.cw_subject_moneyid[row] = ll_moneyid_native dw_child.Object.rate[row] = ld_rate END IF END IF END IF END IF //cw_subject_hsdept //cw_subject_hsemp //cw_subject_hsitem //cw_subject_hsqty //cw_subject_hswb //cw_subject_moneyid //cw_subject_specialcode end event type cb_money from uo_imflatbutton within w_credence_edit integer x = 1577 integer width = 151 integer height = 164 integer taborder = 120 boolean bringtotop = true string text = "外币" string normalpicname = "p2.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;if_fcurrency = NOT if_fcurrency wf_change_childdw_face() end event type dw_child_share from datawindow within w_credence_edit event key pbm_dwnkey integer x = 46 integer y = 1400 integer width = 1774 integer height = 512 integer taborder = 50 boolean bringtotop = true string dataobject = "dw_credencemx_index2" boolean border = false boolean livescroll = true end type event key;PARENT.TriggerEvent('user_key') IF Key = keyenter! THEN RETURN 1 end event event itemchanged;if not dw_edit_mode then return dec ls_amount,ls_price,ls_amt long child_row,uc_row dw_child_share.accepttext() dw_child.accepttext() child_row = dw_child_share.getrow() uc_row = dw_child.getrow() if child_row <= 0 then return if uc_row <= 0 then return ls_amt = dw_child.object.debit[uc_row] + dw_child.object.credit[uc_row] if string(dwo.name) = 'cw_credencemx_amount' then if dw_child_share.object.cw_subject_hsqty[child_row] > 0 or dw_child.object.cw_subject_hsqty[child_row] > 0 then ls_amount = dw_child_share.object.cw_credencemx_amount[child_row] if ls_amount > 0 then ls_price = round(ls_amt/ls_amount,4) end if dw_child_share.object.cw_credencemx_price[child_row] = ls_price end if elseif string(dwo.name) = 'cw_credencemx_price' then if dw_child_share.object.cw_subject_hsqty[child_row] > 0 or dw_child.object.cw_subject_hsqty[child_row] > 0 then ls_amount = dw_child_share.object.cw_credencemx_amount[child_row] if ls_amount > 0 then ls_price = round(ls_amt/ls_amount,4) end if dw_child_share.object.cw_credencemx_price[child_row] = ls_price end if end if //cw_credencemx_amount end event event buttonclicked;IF row <= 0 THEN RETURN //IF dw_edit_mode THEN // s_edit_index_tran s_ch_tran //传递参数使用 // s_ch_tran.if_retrieve_all = FALSE //是否一次RETRIEVE所有行 // s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式 // s_ch_tran.arg_pkid = 0 //目标定位PKID (备用) // s_ch_tran.arg_string_code = ''//查询列(物料编码)部分内容,用于初步筛选 // // IF dwo.Name = 'b_dept' THEN // IF THIS.Object.cw_subject_hsdept[row] = 0 THEN // MessageBox('提示','科目不是核算部门,不能选择部门') // RETURN // END IF // // IF NOT IsValid(w_department_ch) THEN // OPEN(w_department_ch) // // Long ll_deptid // ll_deptid = Message.DoubleParm // // IF ll_deptid > 0 THEN // THIS.Object.cw_credencemx_deptid[row] = ll_deptid // END IF // END IF // ELSEIF dwo.Name = 'b_item' THEN // // IF THIS.Object.cw_subject_hsitem[row] = 0 THEN // MessageBox('提示','科目不是核算银行,不能选择银行') // RETURN // END IF // // IF NOT IsValid(w_hsaccount_ch) THEN // OPEN(w_hsaccount_ch) // // s_accounts s_account // s_account = Message.PowerObjectParm // // IF s_account.accountsid > 0 THEN // THIS.Object.cw_credencemx_itemid[row] = s_account.accountsid // END IF // END IF // ELSEIF dwo.Name = 'b_emp' THEN // // IF THIS.Object.cw_subject_hstrader[row] = 0 THEN // MessageBox('提示','科目不是核算个人,不能选择个人') // RETURN // END IF // IF NOT IsValid(w_empinfo_choice) THEN // OPEN(w_empinfo_choice) // // s_empselect s_select // s_select = Message.PowerObjectParm // // IF s_select.empid > 0 THEN // THIS.Object.cw_credencemx_empid[row] = s_select.empid // END IF // END IF // ELSEIF dwo.Name = 'b_cust' THEN // // IF THIS.Object.cw_subject_hscust[row] = 0 THEN // MessageBox('提示','科目不是核算客户,不能选择客户') // RETURN // END IF // // IF NOT IsValid(W_cust_edit) THEN // OpenWithParm(W_cust_edit,s_ch_tran) //调用 // // s_custom S_INSCUST_cust // S_INSCUST_cust = Message.PowerObjectParm //接受返回结构 // // IF S_INSCUST_cust.cusid > 0 THEN //正常返回值则可以取以下值 // THIS.SetRedraw(FALSE) // THIS.Object.cw_credencemx_cusid[row] = S_INSCUST_cust.cusid // THIS.SetRedraw(TRUE) // END IF // END IF // ELSEIF dwo.Name = 'b_spt' THEN // // IF THIS.Object.cw_subject_hsspt[row] = 0 THEN // MessageBox('提示','科目不是核算供应商,不能选择供应商') // RETURN // END IF // // IF NOT IsValid(W_spt_edit) THEN // OpenWithParm(W_spt_edit,s_ch_tran) //调用 // // S_spt S_INSCUST_spt // S_INSCUST_spt = Message.PowerObjectParm //接受返回结构 // // IF S_INSCUST_spt.sptid > 0 THEN //正常返回值则可以取以下值 // THIS.SetRedraw(FALSE) // THIS.Object.cw_credencemx_sptid[row] = S_INSCUST_spt.sptid // THIS.SetRedraw(TRUE) // END IF // END IF // END IF //END IF end event type cb_3 from uo_imflatbutton within w_credence_edit integer x = 919 integer width = 151 integer height = 164 integer taborder = 170 boolean bringtotop = true string text = "撤审" string normalpicname = "caudit.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;IF NOT f_power_ind(1033,sys_msg_pow) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF IF dw_edit_mode THEN RETURN String arg_msg = '' Long pagerert_row Long ls_subaccsetid,ls_credid pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('系统提示','请选定当前目标凭证!') RETURN END IF IF MessageBox ("IF","是否确定要"+THIS.Text+"当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN ls_subaccsetid = dw_pageretr.Object.subaccsetid[pagerert_row] ls_credid = dw_pageretr.Object.credid[pagerert_row] IF uo_credence_ins.cancel_check_1(ls_subaccsetid,ls_credid,1,arg_msg,TRUE) = 0 THEN MessageBox('Error!',arg_msg) ELSE MessageBox(publ_operator,'撤审成功!') wf_refresh_curuc(ls_subaccsetid,ls_credid) END IF end event type cb_print_1 from uo_imflatbutton within w_credence_edit integer x = 2345 integer width = 192 integer height = 164 integer taborder = 110 boolean bringtotop = true string text = "打印&O" string normalpicname = "print.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;m_Dfc_Control_PopupMenu dmPopupMenu string menustr menustr="Text=本位币格式~tEvent=ue_print" menustr=menustr + "|" + "Text=外币格式~tEvent=ue_print_wb" if len(trim(menustr))<>0 then dmPopupMenu = Create m_Dfc_Control_PopupMenu dmPopupMenu.mf_BuildMenu(This, menustr) dmPopupMenu.mf_PopMenu() Destroy dmPopupMenu end if end event type cbx_1 from checkbox within w_credence_edit integer x = 558 integer y = 192 integer width = 357 integer height = 52 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 string text = "获取选定义" boolean checked = true end type event clicked;Int li_ifdy IF THIS.Checked THEN li_ifdy = 1 ELSE li_ifdy = 0 END IF SetProfileString (sys_inifilename,dw_pageretr.DataObject, "ifdy", String(li_ifdy)) end event event constructor;Int li_ifdy li_ifdy = Integer(ProfileString (sys_inifilename,dw_pageretr.DataObject, "ifdy", '1')) IF li_ifdy = 0 THEN THIS.Checked = FALSE ELSE THIS.Checked = TRUE END IF end event type cb_other from uo_imflatbutton within w_credence_edit integer x = 1728 integer width = 274 integer height = 164 integer taborder = 130 boolean bringtotop = true string text = "其它功能" string normalpicname = "other.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;m_Dfc_Control_PopupMenu dmPopupMenu string menustr menustr="Text=找平~tEvent=ue_balance" menustr=menustr + "|" + "Text=-" menustr=menustr + "|" + "Text=计税~tEvent=ue_cmpl_tax" menustr=menustr + "|" + "Text=-" menustr=menustr + "|" + "Text=计算器~tEvent=ue_computer" menustr=menustr + "|" + "Text=-" menustr=menustr + "|" + "Text=现金流量分配~tEvent=ue_cash" menustr=menustr + "|" + "Text=-" menustr=menustr + "|" + "Text=调入模式凭证~tEvent=ue_cred_mode" menustr=menustr + "|" + "Text=-" menustr=menustr + "|" + "Text=查看相关单据~tEvent=ue_bill_find" if len(trim(menustr))<>0 then dmPopupMenu = Create m_Dfc_Control_PopupMenu dmPopupMenu.mf_BuildMenu(This, menustr) dmPopupMenu.mf_PopMenu() Destroy dmPopupMenu end if end event type cb_new from uo_imflatbutton within w_credence_edit boolean visible = false integer x = 2857 integer y = 168 integer width = 151 integer height = 132 integer taborder = 250 boolean bringtotop = true boolean enabled = false string text = "新建" end type event clicked;String arg_msg = '' Long uc_row Long i Long ls_yearmon ls_yearmon = sys_curyearmon IF not dw_edit_mode THEN IF uo_credence_ins.newbegin() = 0 THEN MessageBox('error!',arg_msg) RETURN END IF END IF dw_edit_mode = NOT dw_edit_mode wf_refresh_interface() IF dw_edit_mode THEN Int li_row, li_cur_row li_cur_row = dw_pageretr.GetRow() li_row = dw_pageretr.InsertRow (li_cur_row) dw_pageretr.ScrollToRow (li_row) dw_child.Reset() FOR i = 1 TO sys_credence_insertrow dw_child.InsertRow(0) NEXT // dw_pageretr.SetRedraw(FALSE) String ls_credtype DateTime ls_creddate ls_credtype = Trim(dw_pageretr.Object.credtype[li_row]) IF sys_option_credno_save = 0 THEN dw_pageretr.Object.credno[li_row] = uo_credence_ins.get_new_credno(0,ls_credtype,ls_yearmon,arg_msg) IF Trim(arg_msg) <> '' THEN MessageBox('提示',arg_msg) END IF ls_creddate = f_rst_mon_1st(3,ls_yearmon) dw_pageretr.Object.creddate[li_row] = ls_creddate dw_pageretr.Object.reldate[li_row] = ls_creddate dw_pageretr.SetColumn("reldate") // dw_pageretr.SetRedraw(TRUE) dw_pageretr.SetFocus() cur_editfoucs = 1 END IF end event type st_mxdscrp from statictext within w_credence_edit integer x = 14 integer y = 264 integer width = 2962 integer height = 52 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 boolean enabled = false boolean focusrectangle = false end type type ln_5 from line within w_credence_edit long linecolor = 33554432 integer linethickness = 4 integer beginy = 332 integer endx = 1001 integer endy = 332 end type type ln_6 from line within w_credence_edit long linecolor = 16777215 integer linethickness = 4 integer beginy = 336 integer endx = 1001 integer endy = 336 end type type ln_1 from line within w_credence_edit long linecolor = 33554432 integer linethickness = 4 integer beginy = 168 integer endx = 1001 integer endy = 168 end type type ln_2 from line within w_credence_edit long linecolor = 16777215 integer linethickness = 4 integer beginy = 172 integer endx = 1001 integer endy = 172 end type