$PBExportHeader$w_taskdamt_buy.srw forward global type w_taskdamt_buy from w_publ_1ton_share_detail end type type ddlb_scid from uo_ddlb_scid within w_taskdamt_buy end type type ddlb_status from dropdownlistbox within w_taskdamt_buy end type type st_2 from statictext within w_taskdamt_buy end type type st_3 from statictext within w_taskdamt_buy end type type cbx_1 from checkbox within w_taskdamt_buy end type end forward global type w_taskdamt_buy from w_publ_1ton_share_detail integer height = 2576 string title = "采购订单付款单" boolean maxbox = true windowstate windowstate = maximized! event insert_childrow ( ) event ue_fj_edit ( ) event ue_fj_view ( ) ddlb_scid ddlb_scid ddlb_status ddlb_status st_2 st_2 st_3 st_3 cbx_1 cbx_1 end type global w_taskdamt_buy w_taskdamt_buy type variables Long cur_scid = 0 //分店ID Long cur_flag = -1 //-1:全部,0未审,1已审核 Int cur_editfocus = 0 //1:新建2:修改 Long il_moneyid_native uo_giveback uo_giveback_mtrl uo_taskdamt uo_ware long ins_accountsid_last long ins_realmoneyid_last,ins_accounts_moneyid long ins_itemid_last long ins_banktypeid_last decimal ins_realrate_last end variables forward prototypes public function integer wf_addmx (long arg_cusid, datetime arg_startdate, datetime arg_enddate, ref string arg_msg) public function integer wf_flagstatus_rf () public function integer wf_xls_retrievedata (long arg_ationid, ref s_xls_billlist arg_str_billlist, ref uo_sendtoexcel arg_obj_st, ref string arg_msg) public function integer wf_refresh_curuc (long arg_billid) public function integer wf_check_taskamt (ref string arg_msg) public function integer wf_adduc_buytask (long arg_scid, long arg_taskid, ref string arg_msg) end prototypes event insert_childrow();Long li_row li_row = dw_child.InsertRow(0) dw_child.ScrollToRow(li_row) dw_child.Object.moneyid_native[li_row] = il_moneyid_native dw_child.Object.u_taskdamt_mx_accountsid[li_row] = ins_accountsid_last dw_child.Object.u_taskdamt_mx_realrate[li_row] = ins_realrate_last dw_child.Object.u_taskdamt_mx_realmoneyid[li_row] = ins_realmoneyid_last dw_child.Object.u_accounts_moneyid[li_row] = ins_accounts_moneyid dw_child.Object.u_taskdamt_mx_itemid[li_row] = ins_itemid_last dw_child.Object.u_taskdamt_mx_banktypeid[li_row] = ins_banktypeid_last dw_child.SetColumn ('u_taskdamt_mx_reltaskcode') end event event ue_fj_edit();IF dw_edit_mode THEN MessageBox('提示','编辑状态下不可用',information!,OK!) RETURN END IF //IF NOT f_power_ind(1098) THEN // MessageBox(publ_operator,sys_msg_pow) // RETURN //END IF s_edit_index_tran s_pic Long ll_ConnectionID String arg_msg Long ls_row ls_row = dw_pageretr.GetRow() IF ls_row <= 0 THEN RETURN END IF IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN MessageBox('提示','没有指定附件数据库连接'+arg_msg,information!,OK!) RETURN END IF s_pic.f_long = 574 // s_pic.f_string = dw_pageretr.Object.u_taskdamt_billcode[ls_row] s_pic.g_long = dw_pageretr.Object.u_taskdamt_billid[ls_row] s_pic.e_long = dw_pageretr.Object.u_taskdamt_scid[ls_row] s_pic.sqltransaction = sys_filedb_sqlca OpenWithParm(w_fj_bill_mng,s_pic) end event event ue_fj_view();IF dw_edit_mode THEN MessageBox('提示','编辑状态下不可用',information!,OK!) RETURN END IF s_edit_index_tran s_pic Long ll_ConnectionID String arg_msg Long ls_row ls_row = dw_pageretr.GetRow() IF ls_row <= 0 THEN RETURN END IF IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN MessageBox('提示','没有指定附件数据库连接'+arg_msg,information!,OK!) RETURN END IF s_pic.f_long = 574 // s_pic.f_string = dw_pageretr.Object.u_taskdamt_billcode[ls_row] s_pic.g_long = dw_pageretr.Object.u_taskdamt_billid[ls_row] s_pic.e_long = dw_pageretr.Object.u_taskdamt_scid[ls_row] s_pic.sqltransaction = sys_filedb_sqlca OpenWithParm(w_fj_bill_view,s_pic) end event public function integer wf_addmx (long arg_cusid, datetime arg_startdate, datetime arg_enddate, ref string arg_msg);Int rslt = 1 Int ll_rowcount Int ls_i,ls_currow Long ll_scid Long ll_outwareid String ls_relcode datetime ld_outdate Decimal {5} ls_sumamt,ls_noreabteamt arg_msg = '' IF Year(Date(arg_startdate)) < 2000 OR IsNull(arg_startdate) THEN rslt = 0 arg_msg = "缺少开始时间或不合理" GOTO EXT END IF IF Year(Date(arg_enddate)) < 2000 OR IsNull(arg_enddate) THEN rslt = 0 arg_msg = '缺少结束时间或不合理' GOTO EXT END IF arg_startdate = DateTime(Date(arg_startdate),Time(0)) arg_enddate = DateTime(Date(arg_enddate),Time(23:59:59)) dw_child.Reset() datastore ds_outware_sumamt ds_outware_sumamt = CREATE datastore ds_outware_sumamt.DataObject = "dw_outware_addmx" ds_outware_sumamt.SetTransObject(sqlca) ds_outware_sumamt.Retrieve(arg_cusid,arg_startdate,arg_enddate) ll_rowcount = ds_outware_sumamt.RowCount() IF ll_rowcount <= 0 THEN rslt = 0 arg_msg = '该供应商在这段时间内没有交易单据' GOTO EXT END IF FOR ls_i = 1 TO ll_rowcount ll_scid = ds_outware_sumamt.Object.scid[ls_i] ll_outwareid = ds_outware_sumamt.Object.outwareid[ls_i] ls_relcode = ds_outware_sumamt.Object.outwarecode[ls_i] ld_outdate = ds_outware_sumamt.Object.outdate[ls_i] //读该采购单的总金额 SELECT SUM(round(fprice * qty * rebate,2)) AS amt INTO :ls_sumamt FROM u_outwaremx WHERE u_outwaremx.scid = :ll_scid AND u_outwaremx.outwareid = :ll_outwareid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '计算采购单的总金额失败!' GOTO EXT END IF IF ls_sumamt < 0 THEN rslt = 0 arg_msg = '采购单的总金额错误!' GOTO EXT END IF //读该采购单的非折扣金额 SELECT SUM(round(fprice * rebate * qty,2) ) AS amt INTO :ls_noreabteamt FROM u_outwaremx WHERE u_outwaremx.scid = :ll_scid AND u_outwaremx.outwareid = :ll_outwareid AND u_outwaremx.rebate >= :sys_option_cust_rate; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '计算采购单的非折扣金额失败!' GOTO EXT END IF IF ls_noreabteamt < 0 THEN rslt = 0 arg_msg = '采购单的非折扣金额错误!' GOTO EXT END IF ls_currow = dw_child.InsertRow(0) dw_child.Object.scid[ls_currow] = ll_scid dw_child.Object.outwareid[ls_currow] = ll_outwareid dw_child.Object.relcode[ls_currow] = ls_relcode dw_child.Object.childsumamt[ls_currow] = ls_sumamt dw_child.Object.norebateamt[ls_currow] = ls_noreabteamt dw_child.Object.givebackdate[ls_currow] = ld_outdate NEXT EXT: RETURN rslt end function public function integer wf_flagstatus_rf ();Long pagerert_row pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN cb_auditing.Enabled = FALSE cb_auditing_cancel.Enabled = FALSE GOTO ext END IF IF dw_edit_mode THEN cb_auditing.Enabled = FALSE cb_auditing_cancel.Enabled = FALSE ELSE IF dw_pageretr.Object.u_taskdamt_flag[pagerert_row] = 0 THEN cb_auditing.Enabled = TRUE cb_auditing_cancel.Enabled = FALSE ELSEIF dw_pageretr.Object.u_taskdamt_flag[pagerert_row] = 1 THEN cb_auditing.Enabled = FALSE cb_auditing_cancel.Enabled = TRUE END IF END IF ext: RETURN 0 end function public function integer wf_xls_retrievedata (long arg_ationid, ref s_xls_billlist arg_str_billlist, ref uo_sendtoexcel arg_obj_st, ref string arg_msg);//============================================================================== // 函数: w_publ_1ton_share_detail::wf_xls_retrievedata() //------------------------------------------------------------------------------ // 描述: 此函数需要 重载,复制祖先范例代码,然后修改retrieve参数部分两处即可 //------------------------------------------------------------------------------ Long LS_ROW,ll_id,i,ll_scid LS_ROW = dw_pageretr.GetRow() IF LS_ROW <= 0 THEN arg_msg = '没有目标单据!' RETURN 0 END IF //修改点:获取 指定retriev参数 ll_id = dw_pageretr.Object.#1[LS_ROW] ll_scid = dw_pageretr.Object.u_giveback_scid[LS_ROW] ////可选设置/// arg_obj_st.uo_const.create_new_pwd( ) //创建随机密码 if sys_option_xls_ifuse_passwd = 1 then arg_obj_st.uo_const.pwd = trim(sys_option_xls_user_passwd) //默认加密密码 默认为随即密码 boolean xls_locked xls_locked = not (sys_option_xls_lock = 1) /// Excel 的可选设置 if arg_obj_st.of_setoption(arg_ationid, xls_locked,true,arg_msg) <> 1 then return 0 end if for i = 1 to arg_str_billlist.count ////可选操作/// arg_str_billlist.bill[i].ds_data = create datastore // arg_str_billlist.bill[i].ds_data.dataobject = arg_str_billlist.bill[i].datawindow // arg_str_billlist.bill[i].ds_data.settransobject(sqlca) //修改点:注意retrieve 参数与上文对应 arg_str_billlist.bill[i].ds_data.retrieve(ll_scid,ll_id) next return 1 end function public function integer wf_refresh_curuc (long arg_billid);IF arg_billid <= 0 OR IsNull(arg_billid) THEN RETURN 0 Long uc_row uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN RETURN 0 DateTime billdate String cuscode String assign_emp String part String dscrp String billcode Long billtype Long cussptid DateTime opdate String opemp String modemp DateTime moddate String permit_emp DateTime permit_date Long li_flag String Name String custype Long scid string simplename string dscrp_yt string dscrp_sm string dscrp_yq SELECT u_taskdamt.scid, u_taskdamt.billdate, u_spt.sptcode, u_taskdamt.assign_emp, u_taskdamt.part, u_taskdamt.dscrp, u_taskdamt.billcode, u_taskdamt.cussptid, u_taskdamt.opdate, u_taskdamt.opemp, u_taskdamt.modemp, u_taskdamt.moddate, u_taskdamt.permit_emp, u_taskdamt.permit_date, u_taskdamt.flag, u_spt.name, u_spt.rep, u_taskdamt.dscrp_yt, u_taskdamt.dscrp_sm, u_taskdamt.dscrp_yq INTO :scid, :billdate, :cuscode, :assign_emp, :part, :dscrp, :billcode, :cussptid, :opdate, :opemp, :modemp, :moddate, :permit_emp, :permit_date, :li_flag, :Name, :custype, :dscrp_yt, :dscrp_sm, :dscrp_yq FROM u_taskdamt INNER JOIN u_spt ON u_taskdamt.cussptid = u_spt.sptid WHERE ( u_taskdamt.billid = :arg_billid ) and u_taskdamt.billtype = 1 ; IF sqlca.SQLCode <> 0 THEN MessageBox('系统提示',"查询操作失败(错误单据唯一码)") RETURN 0 END IF dw_pageretr.Object.u_taskdamt_scid[uc_row] = scid dw_pageretr.Object.u_taskdamt_billid[uc_row] = arg_billid dw_pageretr.Object.u_taskdamt_billdate[uc_row] = billdate dw_pageretr.Object.u_spt_code[uc_row] = cuscode dw_pageretr.Object.u_taskdamt_assign_emp[uc_row] = assign_emp dw_pageretr.Object.u_taskdamt_part[uc_row] = part dw_pageretr.Object.u_taskdamt_dscrp[uc_row] = dscrp dw_pageretr.Object.u_taskdamt_billcode[uc_row] = billcode dw_pageretr.Object.u_taskdamt_cussptid[uc_row] = cussptid dw_pageretr.Object.u_taskdamt_opdate[uc_row] = opdate dw_pageretr.Object.u_taskdamt_opemp[uc_row] = opemp dw_pageretr.Object.u_taskdamt_modemp[uc_row] = modemp dw_pageretr.Object.u_taskdamt_moddate[uc_row] = moddate dw_pageretr.Object.u_taskdamt_permit_emp[uc_row] = permit_emp dw_pageretr.Object.u_taskdamt_permit_date[uc_row] = permit_date dw_pageretr.Object.u_taskdamt_flag[uc_row] = li_flag dw_pageretr.Object.u_spt_name[uc_row] = Name dw_pageretr.Object.u_spt_rep[uc_row] = custype dw_pageretr.Object.u_taskdamt_dscrp_yt[uc_row] = dscrp_yt dw_pageretr.Object.u_taskdamt_dscrp_sm[uc_row] = dscrp_sm dw_pageretr.Object.u_taskdamt_dscrp_yq[uc_row] = dscrp_yq dw_uc.Reset() dw_pageretr.RowsCopy(dw_pageretr.GetRow(), dw_pageretr.GetRow(), Primary!, dw_uc, 1, Primary!) dw_uc.ResetUpdate() dw_uc.SetRedraw(TRUE) wf_flagstatus_rf() RETURN 1 end function public function integer wf_check_taskamt (ref string arg_msg);long i,j,rslt=1,n = 1 long ll_taskid,ll_scid dec dec_takeamt dec lde_mstpayamt,lde_payamt long ll_row,ll_rowc ll_row = dw_child.rowcount() - 1 ll_rowc = dw_child.rowcount() dw_child.accepttext() IF ll_rowc = 1 THEN ll_row = 1 END IF for i=1 to ll_rowc ll_taskid = dw_child.Object. u_taskdamt_mx_relid [i] dec_takeamt = dw_child.Object.u_taskdamt_mx_takeamt[i] ll_scid = cur_scid IF ll_rowc >1 and i<> ll_rowc THEN for j=i to ll_row IF ll_taskid = dw_child.Object.u_taskdamt_mx_relid[J+1] Then dec_takeamt = dec_takeamt + dw_child.Object.u_taskdamt_mx_takeamt[J+1] END IF next END IF SELECT mstpayamt,payamt INTO :lde_mstpayamt,:lde_payamt FROM u_buytask WHERE scid = :ll_scid AND taskid = :ll_taskid Using SQLCA; IF SQLCA.SQLCode <> 0 THEN arg_msg = '查询订单信息失败!'+SQLCA.SQLErrText rslt = 0 messagebox('',arg_msg) END IF IF lde_mstpayamt - lde_payamt <= 0 THEN arg_msg = '第['+string(i) +']行,该订单号已经全部付款完毕请检查' rslt = 0 return rslt END IF IF lde_mstpayamt - lde_payamt < dec_takeamt THEN arg_msg = '第['+string(i) +']行,该订单号出纳付款额大于最大付款额' rslt = 0 return rslt END IF next return rslt end function public function integer wf_adduc_buytask (long arg_scid, long arg_taskid, ref string arg_msg);//wf_saletaskmtrltoarr(long arg_taskid,ref s_saletask_mtrl arg_s_rqmtrl[],ref long arg_p_rqmtrl,ref string arg_msg) //查询合同物料资料 //把物料资料写入数组 Long rslt = 1 Long child_row Long ll_cusid String ls_cuscode,ls_cusname,ls_taskcode Long ll_moneyid, ll_banktypeid String ls_assign_emp, ls_simplename Long ll_scid, ll_taskid Dec lde_damt, lde_msttakeamt, lde_takeamt, lde_noamt SELECT u_spt.sptid, u_spt.sptcode, u_spt.name,u_buyTask.taskcode,u_buyTask.moneyid,u_buyTask.assign_emp, u_buyTask.scid, u_buyTask.taskid, u_buyTask.mstpayamt, u_buyTask.payamt,u_buyTask.banktypeid, u_buyTask.mstpayamt - u_buyTask.payamt as noamt INTO :ll_cusid,:ls_cuscode,:ls_cusname,:ls_taskcode,:ll_moneyid, :ls_assign_emp, :ll_scid, :ll_taskid, :lde_msttakeamt, :lde_takeamt, :ll_banktypeid,:lde_noamt FROM u_buyTask INNER JOIN u_spt ON u_buyTask.sptID = u_spt.sptid WHERE u_buyTask.taskid = :arg_taskid AND u_buyTask.scid = :arg_scid Using sqlca; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "查询操作失败,采购单供应商" GOTO ext END IF dw_uc.Object.u_taskdamt_cussptid[dw_uc.GetRow()] = ll_cusid dw_uc.Object.u_spt_code[dw_uc.GetRow()] = ls_cuscode dw_uc.Object.u_spt_name[dw_uc.GetRow()] = ls_cusname dw_uc.Object.u_spt_rep[dw_uc.GetRow()] = ls_assign_emp dw_uc.AcceptText() //wf_addmx_saletask(arg_scid,arg_taskid,arg_msg) child_row = dw_child.GetRow() dw_child.SetRedraw(False) IF dw_child.GetRow() > 0 THEN IF dw_child.Object.u_taskdamt_mx_relid[child_row] <> 0 THEN child_row = dw_child.InsertRow (0) ELSE child_row = dw_child.GetRow() END IF ELSE child_row = dw_child.InsertRow (0) END IF dw_child.Object.u_taskdamt_mx_scid[child_row] = ll_scid dw_child.Object.u_taskdamt_mx_reltaskcode[child_row] = ls_taskcode ///dw_child.Object.u_taskdamt_mx_damt[child_row] =0// lde_damt dw_child.Object.u_taskdamt_mx_relid[child_row] = ll_taskid dw_child.Object.u_taskdamt_mx_billamt[child_row] = lde_msttakeamt dw_child.Object.u_taskdamt_mx_reltakeamt[child_row] = lde_takeamt dw_child.Object.u_taskdamt_mx_takeamt[child_row] = lde_noamt // IF sys_option_m_msttake = 1 THEN dw_child.Object.u_taskdamt_mx_realmoneyid[child_row] = ll_moneyid // ELSE // dw_child.Object.u_taskdamt_mx_realmoneyid[child_row] = il_moneyid_native // END IF dw_child.Object.u_taskdamt_mx_banktypeid[child_row] = ll_banktypeid ///dw_child.Object.u_taskdamt_mx_reldamt[child_row] =0/// lde_takeamt dw_child.Object.moneyid_native[child_row] = il_moneyid_native dw_child.SetRedraw(True) dw_child.SetColumn("u_taskdamt_mx_accountsid") ext: RETURN rslt end function on w_taskdamt_buy.create int iCurrent call super::create this.ddlb_scid=create ddlb_scid this.ddlb_status=create ddlb_status this.st_2=create st_2 this.st_3=create st_3 this.cbx_1=create cbx_1 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.ddlb_scid this.Control[iCurrent+2]=this.ddlb_status this.Control[iCurrent+3]=this.st_2 this.Control[iCurrent+4]=this.st_3 this.Control[iCurrent+5]=this.cbx_1 end on on w_taskdamt_buy.destroy call super::destroy destroy(this.ddlb_scid) destroy(this.ddlb_status) destroy(this.st_2) destroy(this.st_3) destroy(this.cbx_1) end on event open;call super::open;uc_column_int =9 //uc dw前6列可以编辑 child_column_int = 8 //子dw前3列可以编辑 uo_ware = CREATE uo_taskdamt end event event close;call super::close;DESTROY uo_giveback_mtrl Int li_auto IF cbx_1.Checked THEN li_auto = 1 ELSE li_auto = 0 END IF f_SetProfileString(sys_empid, this.title, "auto_add", String(li_auto)) end event event retrieve_childdw;Long row,uc_relid row = dw_pageretr.GetRow() IF row > 0 THEN uc_relid = dw_pageretr.Object.u_taskdamt_billid[row] dw_child.SetRedraw (FALSE) dw_child.Retrieve(uc_relid,il_moneyid_native) dw_child.SetRedraw (TRUE) IF dw_child.RowCount() > 0 THEN dw_child.SelectRow(0,FALSE) dw_child.SelectRow(1,TRUE) dw_child.SetRow(1) END IF ELSE dw_child.Reset() END IF end event event retrieve_pageretr;Boolean cb_nextpage_enabled,cb_retrieveall_enabled Boolean cb_func_enabled,cb_retrieve_enabled cb_nextpage_enabled = cb_nextpage.Enabled cb_retrieveall_enabled = cb_retrieveall.Enabled cb_func_enabled = cb_func.Enabled cb_nextpage.Enabled = FALSE cb_retrieveall.Enabled = FALSE cb_func.Enabled = FALSE Int li_option_outrep //业务员权限 IF sys_power_issuper THEN li_option_outrep = 0 ELSE li_option_outrep = sys_option_outrep END IF dw_uc.Retrieve() dw_pageretr.Retrieve(cur_scid,cur_flag,sys_user_spttype) IF dw_pageretr.RowCount() > 0 THEN dw_pageretr.SetRow(1) dw_pageretr.TriggerEvent(RowFocusChanged!) END IF wf_flagstatus_rf() THIS.TriggerEvent('retrieve_childdw') cb_nextpage.Enabled = cb_nextpage_enabled cb_retrieveall.Enabled = cb_retrieveall_enabled cb_func.Enabled = cb_func_enabled end event event 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+'( u_taskdamt_billcode LIKE "%'+Trim(sle_usual_query.Text)+'%" )' ELSE obj_expr = obj_expr+'( u_taskdamt_billcode 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 ue_usual_query_retr;string ls_querystrpart='' ls_newselect=lower(ori_oldselect) if trim(sle_usual_query.text)<>'' then if pos(trim(sle_usual_query.text),'%')=0 then ls_querystrpart="( u_taskdamt.billcode like '%"+trim(sle_usual_query.text)+"%')" else ls_querystrpart="( u_taskdamt.billcode like '"+trim(sle_usual_query.text)+"')" end if if Pos(ls_newselect," where ") <> 0 then ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')' else ls_newselect=ls_newselect+" where ("+ls_querystrpart+')' end if end if wf_retrieveuc(dw_pageretr,ls_newselect,1) this.triggerevent('retrieve_pageretr') end event event ue_f9;call super::ue_f9; IF NOT dw_edit_mode THEN RETURN Long child_row String ls_msg = '' Int rslt child_row = dw_uc.GetRow() IF child_row = 0 THEN MessageBox('系统提示','请选定单据!') RETURN END IF dw_uc.AcceptText() IF NOT IsValid(w_spt_edit) 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 (备用) //查询列(物料编码)部分内容,用于初步筛选 dw_uc.AcceptText() s_ch_tran.arg_string_code = Upper(Trim(dw_uc.Object.u_spt_code[dw_uc.GetRow()])) OpenWithParm(w_spt_edit,s_ch_tran) //调用 s_spt S_INSCUST S_INSCUST = Message.PowerObjectParm //接受返回结构 IF S_INSCUST.sptid > 0 THEN //正常返回值则可以取以下值 dw_uc.SetRedraw(False) dw_uc.Object.u_taskdamt_cussptid[child_row] = S_INSCUST.sptid dw_uc.Object.u_spt_code[child_row] = S_INSCUST.sptcode dw_uc.Object.u_spt_name[child_row] = S_INSCUST.Name dw_uc.Object.u_spt_rep[child_row] = S_INSCUST.rep dw_uc.SetRedraw(True) dw_uc.SetColumn("u_taskdamt_assign_emp") dw_uc.setfocus() END IF END IF end event event ue_viewprint;call super::ue_viewprint;IF NOT f_power_ind(1544,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF Long LS_ROW,ll_scid LS_ROW = dw_pageretr.GetRow() IF LS_ROW <= 0 THEN MessageBox('NO','没有打印目标单据!') RETURN END IF S_print_MSG LS_PRMSG if ls_powerid = 0 then ls_powerid = 1693 end if IF ls_newname <> '' THEN IF NOT f_power_ind(ls_powerid,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF IF li_auditprint = 1 THEN IF dw_pageretr.Object.u_taskdamt_flag[dw_pageretr.GetRow()] = 0 THEN MessageBox('NO','目标单据还未审核,不能打印!') RETURN END IF END IF LS_PRMSG.obj_dwNAME = ls_newname ELSE IF NOT f_power_ind(1693,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF LS_PRMSG.obj_dwNAME ='dw_rp_spt_taskamt_edit' END IF IF LS_PRMSG.obj_dwNAME = '' THEN RETURN LS_PRMSG.printrow = ll_prownum LS_PRMSG.TAG_TEXT = '订单付款单' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.retr_pram_falg = 15 LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_scid = dw_pageretr.Object.u_taskdamt_scid[LS_ROW] LS_PRMSG.retr_pramnmb = dw_pageretr.Object.u_taskdamt_billid[LS_ROW] OpenWithParm(w_publ_preview,LS_PRMSG) //**更新打印次料 String arg_msg printnum = Message.DoubleParm String ls_code ll_scid = dw_pageretr.Object.u_taskdamt_scid[LS_ROW] ls_code = dw_pageretr.Object.u_taskdamt_billcode[LS_ROW] f_update_printnum2(ll_scid,ls_code,TRUE,printnum,arg_msg,TRUE) end event event ue_print;call super::ue_print;//--直接打印 uo_print_preview uo_print IF MessageBox ("IF","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN S_print_MSG LS_PRMSG IF dw_pageretr.RowCount() = 0 THEN MessageBox('系统信息','没有可打印的单据!') RETURN END IF if ls_powerid = 0 then ls_powerid = 1693 end if IF ls_newname <> '' THEN IF NOT f_power_ind(ls_powerid,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF IF li_auditprint = 1 THEN IF dw_pageretr.Object.u_taskdamt_flag[dw_pageretr.GetRow()] = 0 THEN MessageBox('NO','目标单据还未审核,不能打印!') RETURN END IF END IF LS_PRMSG.obj_dwNAME = ls_newname ELSE IF NOT f_power_ind(1693,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF LS_PRMSG.obj_dwNAME = 'dw_rp_cus_taskamt_edit' END IF IF LS_PRMSG.obj_dwNAME = '' THEN RETURN LS_PRMSG.printrow = ll_prownum LS_PRMSG.retr_pram_falg = 15 LS_PRMSG.TAG_TEXT = '订单付款单' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_scid = dw_pageretr.Object.u_taskdamt_scid[dw_pageretr.GetRow()] LS_PRMSG.retr_pramnmb = dw_pageretr.Object.u_taskdamt_billid[dw_pageretr.GetRow()] 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() //**更新打印次料 printnum = Message.DoubleParm String ls_code long ll_scid ll_scid = dw_pageretr.Object.u_taskdamt_scid[dw_pageretr.GetRow()] ls_code = dw_pageretr.Object.u_taskdamt_billcode[dw_pageretr.GetRow()] f_update_printnum2(ll_scid,ls_code,TRUE,printnum,arg_msg,TRUE) end event event ue_addzy;call super::ue_addzy;IF NOT f_power_ind(1692,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF IF dw_edit_mode THEN RETURN String arg_msg = '' String ls_str Long uc_row s_inputbox s_sreu uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请选定当前目标单据!') RETURN END IF s_sreu.Title = '请输入要补充到备注的内容' s_sreu.old_text = '' OpenWithParm(w_inputbox,s_sreu) ls_str = Message.StringParm IF Trim(ls_str) = '' OR IsNull(ls_str) THEN RETURN IF uo_ware.add_dscrp(dw_pageretr.Object.u_taskdamt_billid[uc_row],ls_str,arg_msg,TRUE) = 0 THEN MessageBox('error!',arg_msg) RETURN ELSE MessageBox(publ_operator,'添加备注操作成功!') wf_refresh_curuc(dw_pageretr.Object.u_taskdamt_billid[uc_row]) END IF end event event ue_f8;call super::ue_f8;//用于选择明细内容,被F9[默认] IF NOT dw_edit_mode THEN RETURN Long child_row child_row = dw_child.GetRow() IF child_row = 0 THEN RETURN dw_child.AcceptText() Long ll_cusid,ll_billtype Long ls_taskid,ls_j String ls_taskcode Long ll_scid ll_cusid = dw_uc.Object.u_taskdamt_cussptid[dw_uc.GetRow()] IF IsNull(ll_cusid) OR ll_cusid = 0 THEN MessageBox(publ_operator,'请先选择供应商') RETURN END IF IF dw_uc.Object.u_taskdamt_billid[dw_uc.GetRow()] = 0 THEN ll_scid = cur_scid ELSE ll_scid = dw_uc.Object.u_taskdamt_scid[dw_uc.GetRow()] END IF IF NOT IsValid(w_taskamt_ch) 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.b_long = ll_scid s_ch_tran.c_long = ll_cusid //查询列(物料编码)部分内容,用于初步筛选 s_ch_tran.arg_string_code = Upper(Trim(dw_child.Object.u_taskdamt_mx_reltaskcode[dw_child.GetRow()])) s_ch_tran.b_string = 'buy' OpenWithParm(w_taskamt_ch,s_ch_tran) //调用 s_saletask_ch_arr S_INSCUST S_INSCUST = Message.PowerObjectParm //接受返回结构 IF UpperBound(S_INSCUST.taskid) = 0 THEN RETURN IF S_INSCUST.taskid[1] > 0 THEN //正常返回值则可以取以下值 dw_child.SetRedraw(FALSE) IF dw_child.GetRow() > 0 THEN IF dw_child.Object.u_taskdamt_mx_relid[child_row] <> 0 THEN child_row = dw_child.InsertRow (0) ELSE child_row = dw_child.GetRow() END IF ELSE child_row = dw_child.InsertRow (0) END IF dw_child.Object.u_taskdamt_mx_scid[child_row] = ll_scid dw_child.Object.u_taskdamt_mx_reltaskcode[child_row] = S_INSCUST.taskcode[1] dw_child.Object.u_saletask_relcode[child_row] = S_INSCUST.relcode[1] /// dw_child.Object.u_taskdamt_mx_damt[child_row] = S_INSCUST.damt[1] dw_child.Object.u_taskdamt_mx_relid[child_row] = S_INSCUST.taskid[1] dw_child.Object.u_taskdamt_mx_billamt[child_row] = S_INSCUST.billamt[1] dw_child.Object.u_taskdamt_mx_reltakeamt[child_row] = S_INSCUST.takeamt[1] dw_child.Object.u_taskdamt_mx_takeamt[child_row] = S_INSCUST.noamt[1] // IF sys_option_m_msttake = 1 THEN dw_child.Object.u_taskdamt_mx_realmoneyid[child_row] = S_INSCUST.moneyid[1] // ELSE // dw_child.Object.u_taskdamt_mx_realmoneyid[child_row] = il_moneyid_native // END IF dw_child.Object.u_taskdamt_mx_banktypeid[child_row] = S_INSCUST.banktypeid[1] ///dw_child.Object.u_taskdamt_mx_reldamt[child_row] = S_INSCUST.takedamt[1] dw_child.Object.moneyid_native[child_row] = il_moneyid_native dw_child.SetRedraw(TRUE) dw_child.SetColumn("u_taskdamt_mx_accountsid") END IF END IF end event event ue_rpt_viewprint;call super::ue_rpt_viewprint; Long row,uc_relid,ll_scid row = dw_pageretr.GetRow() IF row = 0 THEN RETURN IF ls_rpname = '' THEN RETURN IF li_auditprint = 1 THEN IF dw_pageretr.Object.u_taskdamt_flag[row] = 0 THEN MessageBox('NO','目标单据还未审核,不能打印!') RETURN END IF END IF s_rpt_print_msg s_print s_print.retr_pram_falg = 15 s_print.rpid = ls_msgprintid_rpt s_print.retr_flag = TRUE s_print.tag_text = THIS.Title s_print.rpname = ls_rpname s_print.retr_scid = dw_pageretr.Object.u_taskdamt_scid[row] s_print.retr_pramnmb = dw_pageretr.Object.u_taskdamt_billid[row] s_print.rowcnt = dw_child.RowCount() OpenWithParm(w_rpt_preview,s_print) //**更新打印次料 String arg_msg printnum = Message.DoubleParm String ls_code ll_scid = dw_pageretr.Object.u_taskdamt_scid[row] ls_code = dw_pageretr.Object.u_taskdamt_billcode[row] f_update_printnum2(ll_scid,ls_code,TRUE,printnum,arg_msg,TRUE) end event event ue_rpt_print;call super::ue_rpt_print;Long row,uc_relid,ll_scid row = dw_pageretr.GetRow() IF row = 0 THEN RETURN uo_rpt_print_preview uo_print S_rpt_print_MSG LS_PRMSG IF dw_pageretr.RowCount() = 0 THEN MessageBox('系统信息','没有可打印的单据!') RETURN END IF IF ls_rpname = '' THEN RETURN IF li_auditprint = 1 THEN IF dw_pageretr.Object.u_taskdamt_flag[row] = 0 THEN MessageBox('NO','目标单据还未审核,不能打印!') RETURN END IF END IF IF MessageBox ("IF","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN LS_PRMSG.retr_pram_falg = 15 LS_PRMSG.TAG_TEXT = THIS.Title LS_PRMSG.rpname = ls_rpname LS_PRMSG.FILTER_STRING = '' LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.rpid = ls_msgprintid_rpt LS_PRMSG.retr_scid = dw_pageretr.Object.u_taskdamt_scid[row] LS_PRMSG.retr_pramnmb = dw_pageretr.Object.u_taskdamt_billid[row] LS_PRMSG.rowcnt = dw_child.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() //**更新打印次料 printnum = Message.DoubleParm String ls_code ll_scid = dw_pageretr.Object.u_taskdamt_scid[row] ls_code = dw_pageretr.Object.u_taskdamt_billcode[row] f_update_printnum2(ll_scid,ls_code,TRUE,printnum,arg_msg,TRUE) end event event refresh_interface;call super::refresh_interface;ddlb_status.Enabled = NOT dw_edit_mode ddlb_scid.Enabled = NOT dw_edit_mode wf_flagstatus_rf() end event event ue_before_open;call super::ue_before_open;SELECT moneyid INTO :il_moneyid_native FROM cw_currency Where native = 1; IF sqlca.SQLCode <> 0 THEN il_moneyid_native = 0 MessageBox('提示','查询本位币资料失败,请检查币种资料') END IF end event event ue_f10;call super::ue_f10;//用于选择明细内容,被F10[默认] If Not dw_edit_mode Then Return Long child_row Long ll_rst_accountsid,ll_accountid,ll_moneyid,ll_moneyid_account String ls_accountrep,ls_bankstr,ls_idcode,ls_dscrp child_row = dw_child.GetRow() If child_row = 0 Then MessageBox('系统提示','请选定单据!') Return End If dw_child.AcceptText() If Not IsValid(w_accounts_ch) Then s_edit_index_tran s_ch_tran //传递参数使用 s_ch_tran.if_retrieve_all = True //是否一次retrieve所有行 s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式 s_ch_tran.arg_pkid = 0 //目标定位pkid (备用) s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选 OpenWithParm(w_accounts_ch,s_ch_tran) //调用 ll_rst_accountsid = Message.DoubleParm //接受返回结构 If ll_rst_accountsid > 0 Then //正常返回值则可以取以下值 dw_child.SetRedraw(False) ll_moneyid = dw_child.Object.u_taskdamt_mx_realmoneyid[child_row] dw_child.Object.u_taskdamt_mx_accountsid[child_row] = ll_rst_accountsid Select moneyid, accountrep, bankstr, idcode, dscrp Into :ll_moneyid_account, :ls_accountrep, :ls_bankstr, :ls_idcode, :ls_dscrp From u_accounts Where accountsid = :ll_rst_accountsid; If sqlca.SQLCode <> 0 Then ll_moneyid_account = 0 Return End If dw_child.Object.u_accounts_moneyid[child_row] = ll_moneyid_account dw_child.Object.u_accounts_accountrep[child_row] = ls_accountrep dw_child.Object.u_accounts_bankstr[child_row] = ls_bankstr dw_child.Object.u_accounts_idcode[child_row] = ls_idcode dw_child.Object.u_accounts_dscrp[child_row] = ls_dscrp If ll_moneyid = ll_moneyid_account Then dw_child.Object.u_taskdamt_mx_realrate[child_row] = 1 Else dw_child.Object.u_taskdamt_mx_realrate[dw_child.GetRow()] = f_get_mrate(ll_moneyid) End If dw_child.SetColumn("u_taskdamt_mx_accountsid") dw_child.SetRedraw(True) End If End If end event type cb_func from w_publ_1ton_share_detail`cb_func within w_taskdamt_buy end type type cb_exit from w_publ_1ton_share_detail`cb_exit within w_taskdamt_buy end type type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_taskdamt_buy integer x = 187 integer width = 549 end type type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_taskdamt_buy end type type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_taskdamt_buy end type type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_taskdamt_buy integer x = 1861 integer width = 1687 integer height = 1284 string dataobject = "dw_taskdamt_index_buy" end type event dw_pageretr::rowfocuschanged;call super::rowfocuschanged;wf_flagstatus_rf() end event type st_1 from w_publ_1ton_share_detail`st_1 within w_taskdamt_buy integer x = 14 end type type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_taskdamt_buy end type type dw_uc from w_publ_1ton_share_detail`dw_uc within w_taskdamt_buy integer width = 1856 integer height = 1284 string dataobject = "dw_taskdamt_edit_buy" end type event dw_uc::dwnkey;PARENT.TriggerEvent('user_key') IF Key = KeyDownArrow! THEN RETURN 1 INT RSLT=1 STRING LS_MSG='' IF dw_edit_mode THEN IF dw_uc.GetColumnName ( ) = 'u_taskdamt_dscrp' AND Key = KeyEnter! THEN dw_child.ScrollToRow(1) dw_child.SetFocus() dw_child.SetColumn ('u_taskdamt_mx_billtype') RETURN 1 ELSEIF dw_uc.GetColumnName ( ) = 'u_cust_cuscode' AND Key = KeyEnter! THEN String ls_code dw_uc.AcceptText() ls_code = Trim(dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()]) s_custom arg_s_cust IF f_find_cust(ls_code,arg_s_cust) = 0 THEN PARENT.TriggerEvent('ue_f9') RETURN 1 ELSE dw_uc.SetRedraw(FALSE) dw_uc.Object.u_taskdamt_cussptid[dw_uc.GetRow()] = arg_s_cust.cusid dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()] = arg_s_cust.cuscode dw_uc.Object.u_cust_name[dw_uc.GetRow()] = arg_s_cust.Name dw_uc.Object.u_cust_custype[dw_uc.GetRow()] =arg_s_cust.bsntype dw_uc.Object.u_cust_simplename[dw_uc.GetRow()] =arg_s_cust.simplename dw_uc.SetRedraw(TRUE) dw_uc.SetColumn("u_taskdamt_assign_emp") 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_uc::buttonclicked;call super::buttonclicked;if not dw_edit_mode then return if row <= 0 then return if dwo.name='b_spt' then parent.TRIGGEREVENT('ue_f9') end if end event type gb_2 from w_publ_1ton_share_detail`gb_2 within w_taskdamt_buy integer x = 105 integer y = 536 integer width = 338 integer height = 228 end type type dw_child from w_publ_1ton_share_detail`dw_child within w_taskdamt_buy integer y = 1584 integer width = 3547 integer height = 884 string dataobject = "dw_taskdamtmx_edit_buy" end type event dw_child::dwnkey;call super::dwnkey;PARENT.TriggerEvent('user_key') IF dw_edit_mode THEN dw_child.AcceptText() IF KeyDown(keydownarrow!) THEN Long li_row IF dw_child.GetRow() = dw_child.RowCount() THEN PARENT.TriggerEvent("insert_childrow") END IF ELSE IF KeyDown(keyenter!) AND NOT KeyDown(keycontrol!) AND NOT KeyDown(keyshift!) THEN IF dw_child.GetColumnName() = 'u_taskdamt_mx_reltaskcode' THEN Long ll_scid,ll_cusid Long ll_taskid,ll_banktypeid,ll_moneyid String ls_taskcode Decimal ld_damt,ld_billamt,ld_takeamt,ld_takedamt,ld_noamt Long child_row child_row = dw_child.GetRow() ll_cusid = dw_uc.Object.u_taskdamt_cussptid[dw_uc.GetRow()] ls_taskcode = dw_child.Object.u_taskdamt_mx_reltaskcode[child_row] SELECT u_SaleTask.TaskID, u_SaleTask.TaskCode, u_SaleTask.banktypeid, u_SaleTask.moneyid, u_SaleTask.damt, u_SaleTask.msttakeamt, u_SaleTask.takeamt, u_saletask.takedamt, u_SaleTask.msttakeamt - u_SaleTask.takeamt - u_saletask.takedamt INTO :ll_taskid, :ls_taskcode, :ll_banktypeid, :ll_moneyid, :ld_damt, :ld_billamt, :ld_takeamt, :ld_takedamt, :ld_noamt FROM u_SaleTask WHERE ( u_SaleTask.scid = :cur_scid OR :cur_scid = -1) AND ( u_SaleTask.cusid = :ll_cusid) AND ( u_SaleTask.TaskCode = :ls_taskcode) AND ( u_SaleTask.Kind <> 0 ) ; IF sqlca.SQLCode <> 0 THEN PARENT.TriggerEvent('ue_f8') ELSE dw_child.Object.u_taskdamt_mx_reltaskcode[child_row] = ls_taskcode dw_child.Object.u_taskdamt_mx_damt[child_row] = ld_damt dw_child.Object.u_taskdamt_mx_relid[child_row] = ll_taskid dw_child.Object.u_taskdamt_mx_billamt[child_row] = ld_billamt dw_child.Object.u_taskdamt_mx_reltakeamt[child_row] = ld_takeamt dw_child.Object.u_taskdamt_mx_takeamt[child_row] = ld_noamt // IF sys_option_m_msttake = 1 THEN // dw_child.Object.u_taskdamt_mx_realmoneyid[child_row] = ll_moneyid // else // dw_child.Object.u_taskdamt_mx_realmoneyid[child_row] = il_moneyid_native // end if dw_child.Object.u_taskdamt_mx_banktypeid[child_row] = ll_banktypeid dw_child.Object.u_taskdamt_mx_reldamt[child_row] = ld_takedamt END IF dw_child.Object.moneyid_native[child_row] = il_moneyid_native dw_child.AcceptText() ELSEIF dw_child.GetColumnName( ) = 'u_taskdamt_mx_dscrp' AND dw_child.GetRow() = dw_child.RowCount() THEN PARENT.TriggerEvent("insert_childrow") 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 IF END IF end event event dw_child::itemchanged;call super::itemchanged;IF NOT dw_edit_mode THEN RETURN dw_child.AcceptText() IF dw_child.GetRow() <= 0 THEN RETURN Long ll_moneyid,ll_accountsid,ll_moneyid_account IF dwo.Name = 'u_taskdamt_mx_realmoneyid' THEN ll_moneyid = dw_child.Object.u_taskdamt_mx_realmoneyid[dw_child.GetRow()] dw_child.SetRedraw(FALSE) dw_child.Object.u_taskdamt_mx_realrate[dw_child.GetRow()] = f_get_mrate(ll_moneyid) ll_moneyid_account = dw_child.Object.u_accounts_moneyid[row] IF ll_moneyid = ll_moneyid_account THEN dw_child.Object.u_taskdamt_mx_realrate[row] = 1 END IF dw_child.SetRedraw(TRUE) ELSEIF dwo.Name = 'u_taskdamt_mx_accountsid' THEN ll_moneyid = dw_child.Object.u_taskdamt_mx_realmoneyid[dw_child.GetRow()] ll_accountsid = dw_child.Object.u_taskdamt_mx_accountsid[dw_child.GetRow()] SELECT moneyid INTO :ll_moneyid_account FROM u_accounts Where accountsid = :ll_accountsid; IF sqlca.SQLCode <> 0 THEN ll_moneyid_account = 0 END IF dw_child.Object.u_accounts_moneyid[row] = ll_moneyid_account IF ll_moneyid = ll_moneyid_account THEN dw_child.Object.u_taskdamt_mx_realrate[row] = 1 else dw_child.Object.u_taskdamt_mx_realrate[row] = f_get_mrate(ll_moneyid_account) END IF END IF end event event dw_child::doubleclicked;If dw_edit_mode Then If dwo.Name = 'u_taskdamt_mx_accountsid' Then Parent.TriggerEvent('ue_f10') Else Parent.TriggerEvent('ue_f8') End If End If end event type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_taskdamt_buy end type type cb_print from w_publ_1ton_share_detail`cb_print within w_taskdamt_buy end type type cb_add from w_publ_1ton_share_detail`cb_add within w_taskdamt_buy end type event cb_add::clicked;IF Not f_power_ind(1883,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF String arg_msg = '' Long uc_row,pagerert_row,i,count Long relid_pageretr,reld_uc,j s_taskdamt arg_s_bd IF cur_scid < 0 THEN MessageBox('提示','请选择分部') RETURN END IF IF dw_edit_mode THEN dw_uc.AcceptText() dw_child.AcceptText() uc_row = dw_uc.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请选定当前目标单据!') RETURN END IF IF Not dw_uc.Object.u_taskdamt_billdate[uc_row] > DateTime(2000-01-01,Now()) THEN MessageBox('系统提示','不合理单据时间!') dw_uc.SetFocus() dw_uc.SetColumn("u_taskdamt_billdate") RETURN END IF IF Not Len(String(dw_uc.Object.u_taskdamt_assign_emp[uc_row])) > 0 THEN MessageBox('系统提示','请填写经手人!') dw_uc.SetFocus() dw_uc.SetColumn("u_taskdamt_assign_emp") RETURN END IF IF dw_uc.Object.u_taskdamt_billid[uc_row] = 0 THEN arg_s_bd.scid = cur_scid ELSE arg_s_bd.scid = dw_uc.Object.u_taskdamt_scid[uc_row] END IF IF wf_check_taskamt(arg_msg) = 0 then MessageBox('提示',arg_msg + ',不能保存!',information!,OK!) RETURN END IF arg_s_bd.billid = dw_uc.Object.u_taskdamt_billid[uc_row] arg_s_bd.cussptid = dw_uc.Object.u_taskdamt_cussptid[uc_row] arg_s_bd.part = dw_uc.Object.u_taskdamt_part[uc_row] arg_s_bd.billdate = dw_uc.Object.u_taskdamt_billdate[uc_row] arg_s_bd.assign_emp = dw_uc.Object.u_taskdamt_assign_emp[uc_row] arg_s_bd.dscrp = dw_uc.Object.u_taskdamt_dscrp[uc_row] arg_s_bd.ifauto = dw_uc.Object.u_taskdamt_ifauto[uc_row] arg_s_bd.dscrp_yt = dw_uc.Object.u_taskdamt_dscrp_yt[uc_row] arg_s_bd.dscrp_sm = dw_uc.Object.u_taskdamt_dscrp_sm[uc_row] arg_s_bd.dscrp_yq = dw_uc.Object.u_taskdamt_dscrp_yq[uc_row] arg_s_bd.billtype = 1 count = 0 FOR i = 1 To dw_child.RowCount() IF dw_child.Object.u_taskdamt_mx_relid[i] > 0 And (dw_child.Object.u_taskdamt_mx_takeamt[i] > 0 )THEN//Or dw_child.Object.u_taskdamt_mx_damt[i] > 0) THEN count++ arg_s_bd.arg_s_mx[count].scid = dw_child.Object.u_taskdamt_mx_scid[i] arg_s_bd.arg_s_mx[count].billid = dw_child.Object.u_taskdamt_mx_billid[i] arg_s_bd.arg_s_mx[count].printid = count arg_s_bd.arg_s_mx[count].relid = dw_child.Object.u_taskdamt_mx_relid[i] arg_s_bd.arg_s_mx[count].reltaskcode = dw_child.Object.u_taskdamt_mx_reltaskcode[i] arg_s_bd.arg_s_mx[count].damt = 0//dw_child.Object.u_taskdamt_mx_damt[i] arg_s_bd.arg_s_mx[count].dscrp = dw_child.Object.u_taskdamt_mx_dscrp[i] arg_s_bd.arg_s_mx[count].accountsid = dw_child.Object.u_taskdamt_mx_accountsid[i] arg_s_bd.arg_s_mx[count].billamt = dw_child.Object.u_taskdamt_mx_billamt[i] arg_s_bd.arg_s_mx[count].itemid = dw_child.Object.u_taskdamt_mx_itemid[i] arg_s_bd.arg_s_mx[count].takeamt = dw_child.Object.u_taskdamt_mx_takeamt[i] arg_s_bd.arg_s_mx[count].reltakeamt = dw_child.Object.u_taskdamt_mx_reltakeamt[i] arg_s_bd.arg_s_mx[count].realmoneyid = dw_child.Object.u_taskdamt_mx_realmoneyid[i] arg_s_bd.arg_s_mx[count].realrate = dw_child.Object.u_taskdamt_mx_realrate[i] arg_s_bd.arg_s_mx[count].billtype =0//dw_child.Object.u_taskdamt_mx_billtype[i] arg_s_bd.arg_s_mx[count].banktypeid = dw_child.Object.u_taskdamt_mx_banktypeid[i] arg_s_bd.arg_s_mx[count].reldamt = 0//dw_child.Object.u_taskdamt_mx_reldamt[i] END IF NEXT IF uo_ware.Save(arg_s_bd,arg_msg,True) = 0 THEN MessageBox('error!',arg_msg) RETURN END IF MessageBox(publ_operator,'保存操作成功!') Long ll_row ll_row = dw_pageretr.GetRow() dw_pageretr.SelectRow(0,False) dw_pageretr.SelectRow(ll_row,True) wf_refresh_curuc(uo_ware.uo_billid) //刷新uc END IF CALL Super::Clicked //read ini IF dw_edit_mode THEN SELECT top 1 u_taskdamt_mx.accountsid, u_taskdamt_mx.realmoneyid, u_taskdamt_mx.itemid, u_taskdamt_mx.banktypeid, u_accounts.moneyid INTO :ins_accountsid_last, :ins_realmoneyid_last, :ins_itemid_last, :ins_banktypeid_last, :ins_accounts_moneyid FROM u_taskdamt_mx LEFT OUTER JOIN u_accounts ON u_taskdamt_mx.accountsid = u_accounts.accountsid Order By u_taskdamt_mx.billid Desc; IF sqlca.SQLCode = 0 THEN IF ins_realmoneyid_last = ins_accounts_moneyid THEN ins_realrate_last = 1 ELSE ins_realrate_last = f_get_mrate(ins_accounts_moneyid) END IF END IF Parent.TriggerEvent("insert_childrow") dw_uc.SetRedraw(False) dw_uc.Object.u_taskdamt_assign_emp[dw_uc.GetRow()] = publ_operator dw_uc.Object.u_taskdamt_billtype[dw_uc.GetRow()] =1 dw_uc.SetColumn("u_taskdamt_billdate") dw_uc.SetRedraw(True) ELSE Parent.TriggerEvent("retrieve_childdw") IF cbx_1.Checked THEN cb_add.PostEvent(Clicked!) END IF end event type cb_edit from w_publ_1ton_share_detail`cb_edit within w_taskdamt_buy end type event cb_edit::clicked;IF Not f_power_ind(1883,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF String arg_msg = '' Long uc_row uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请选定当前目标单据!') RETURN END IF IF NOT dw_edit_mode THEN IF uo_ware.updatebegin(dw_pageretr.Object.u_taskdamt_scid[uc_row],dw_pageretr.Object.u_taskdamt_billid[uc_row],arg_msg) = 0 THEN MessageBox('Error!',arg_msg) RETURN END IF wf_refresh_curuc(dw_pageretr.Object.u_taskdamt_billid[uc_row]) //刷新uc PARENT.TriggerEvent("retrieve_childdw") END IF CALL SUPER::Clicked end event type cb_delet from w_publ_1ton_share_detail`cb_delet within w_taskdamt_buy end type event cb_delet::clicked;call super::clicked;IF Not f_power_ind(1884,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF String arg_msg = '' IF dw_edit_mode THEN RETURN IF MessageBox ("if","是否确定要删除当前单据?",question!,yesno! ) = 2 THEN RETURN Long uc_row uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请选定当前目标单据!') RETURN END IF IF uo_ware.Cancel(dw_pageretr.Object.u_taskdamt_billid[uc_row],arg_msg,TRUE) = 0 THEN MessageBox('error!',arg_msg) ELSE //日志 Long ls_id String ls_code ls_id = dw_pageretr.Object.u_taskdamt_billid[uc_row] ls_code = dw_pageretr.Object.u_taskdamt_billcode[uc_row] f_setsysoplog('订单付款单','订单付款单删除,id:'+String(ls_id)+',code:'+ls_code,arg_msg,TRUE) //-- MessageBox(publ_operator,'删除单据'+String(dw_pageretr.Object.u_taskdamt_billcode[uc_row])+'成功!') dw_pageretr.DeleteRow(uc_row) dw_pageretr.Triggerevent(rowfocuschanged!) END IF end event type cb_addzy from w_publ_1ton_share_detail`cb_addzy within w_taskdamt_buy end type event cb_addzy::clicked;m_Dfc_Control_PopupMenu dmPopupMenu String menustr IF NOT dw_edit_mode THEN menustr = "Text=增加备注~tEvent=ue_addzy" menustr += "|" + "Text=-" menustr += "|" + "Text=查看附件~tEvent=ue_fj_view" menustr += "|" + "Text=添加附件~tEvent=ue_fj_edit" END IF 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_auditing from w_publ_1ton_share_detail`cb_auditing within w_taskdamt_buy end type event cb_auditing::clicked;call super::clicked;IF NOT f_power_ind(1885,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF IF dw_edit_mode THEN RETURN String arg_msg = '' Long pagerert_row,ll_scid,ll_taskdamtid pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('系统提示','请选定当前目标单据!') RETURN END IF IF MessageBox ("if","是否确定要审核当前单据?",question!,yesno! ) = 2 THEN RETURN ll_taskdamtid = dw_pageretr.Object.u_taskdamt_billid[pagerert_row] IF uo_ware.audit(ll_taskdamtid,arg_msg,TRUE) = 0 THEN MessageBox('error!',arg_msg) ELSE MessageBox(publ_operator,'审核成功!') wf_refresh_curuc(ll_taskdamtid) END IF end event type cb_xm from w_publ_1ton_share_detail`cb_xm within w_taskdamt_buy end type type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_taskdamt_buy end type type cb_xls from w_publ_1ton_share_detail`cb_xls within w_taskdamt_buy end type type cb_help from w_publ_1ton_share_detail`cb_help within w_taskdamt_buy end type type cb_auditing_cancel from w_publ_1ton_share_detail`cb_auditing_cancel within w_taskdamt_buy end type event cb_auditing_cancel::clicked;call super::clicked;IF NOT f_power_ind(1886,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF IF dw_edit_mode THEN RETURN String arg_msg = '' Long pagerert_row,ls_id pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('系统提示','请选定当前目标单据!') RETURN END IF IF MessageBox ("IF","是否确定要撤审当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN ls_id = dw_pageretr.Object.u_taskdamt_billid[pagerert_row] IF uo_ware.caudit(0,ls_id,arg_msg,TRUE) = 0 THEN MessageBox('Error!',arg_msg) ELSE MessageBox(publ_operator,'撤审成功!') //日志 String ls_code,ls_opemp,ls_outpart ls_code = dw_pageretr.Object.u_taskdamt_billcode[pagerert_row] ls_opemp = dw_pageretr.Object.u_taskdamt_opemp[pagerert_row] ls_outpart = dw_pageretr.Object.u_taskdamt_part[pagerert_row] f_setsysoplog('订金付款单','撤审'+',code:'+ls_code+',相关号码:'+ls_outpart+',建立人:'+ls_opemp,arg_msg,TRUE) //-- wf_refresh_curuc(ls_id) END IF end event type p_msg from w_publ_1ton_share_detail`p_msg within w_taskdamt_buy end type type p_help from w_publ_1ton_share_detail`p_help within w_taskdamt_buy end type type p_encl from w_publ_1ton_share_detail`p_encl within w_taskdamt_buy end type type p_other from w_publ_1ton_share_detail`p_other within w_taskdamt_buy end type type gb_3 from w_publ_1ton_share_detail`gb_3 within w_taskdamt_buy end type type ln_bar from w_publ_1ton_share_detail`ln_bar within w_taskdamt_buy end type type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_taskdamt_buy end type type r_bar from w_publ_1ton_share_detail`r_bar within w_taskdamt_buy end type type ln_1 from w_publ_1ton_share_detail`ln_1 within w_taskdamt_buy end type type ln_2 from w_publ_1ton_share_detail`ln_2 within w_taskdamt_buy end type type ddlb_scid from uo_ddlb_scid within w_taskdamt_buy integer x = 887 integer y = 188 integer width = 549 integer height = 468 boolean bringtotop = true end type event constructor;call super::constructor;cur_scid=this.uo_scid //cur_scid_arr = THIS.uo_scid_arr end event event selectionchanged;call super::selectionchanged;cur_scid=this.uo_scid //cur_scid_arr = THIS.uo_scid_arr parent.triggerevent("retrieve_pageretr") end event type ddlb_status from dropdownlistbox within w_taskdamt_buy integer x = 1586 integer y = 188 integer width = 357 integer height = 468 integer taborder = 40 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 string item[] = {"[全部]","待审核","已审核"} borderstyle borderstyle = stylelowered! end type event selectionchanged;if index=1 then cur_flag=-1 elseif index=2 then cur_flag= 0 elseif index=3 then cur_flag= 1 end if parent.triggerevent('retrieve_pageretr') end event type st_2 from statictext within w_taskdamt_buy integer x = 713 integer y = 200 integer width = 160 integer height = 60 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "分部" alignment alignment = right! boolean focusrectangle = false end type type st_3 from statictext within w_taskdamt_buy integer x = 1413 integer y = 196 integer width = 160 integer height = 48 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "状态" alignment alignment = right! boolean focusrectangle = false end type type cbx_1 from checkbox within w_taskdamt_buy integer x = 1993 integer y = 196 integer width = 411 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "保存自动新建" end type event constructor;int li_auto li_auto =long(f_profilestring(sys_empid, parent.title, "auto_add", string(0))) if li_auto = 1 then cbx_1.checked = true else cbx_1.checked = false end if end event