$PBExportHeader$w_eb_cusamt.srw forward global type w_eb_cusamt from w_publ_base end type type cb_reflash from uo_imflatbutton within w_eb_cusamt end type type cb_edit from uo_imflatbutton within w_eb_cusamt end type type cb_del from uo_imflatbutton within w_eb_cusamt end type type cbx_1 from checkbox within w_eb_cusamt end type type cb_addmx from uo_imflatbutton within w_eb_cusamt end type type ddlb_scid from uo_ddlb_scid within w_eb_cusamt end type type cb_import from uo_imflatbutton within w_eb_cusamt end type type r_bar from rectangle within w_eb_cusamt end type type ln_bar from line within w_eb_cusamt end type type ln_bar2 from line within w_eb_cusamt end type type ln_1 from line within w_eb_cusamt end type type ln_2 from line within w_eb_cusamt end type type dw_1 from u_dw_rbtnfilter within w_eb_cusamt end type type cb_accept from uo_imflatbutton within w_eb_cusamt end type type cb_match from uo_imflatbutton within w_eb_cusamt end type end forward global type w_eb_cusamt from w_publ_base integer width = 3113 integer height = 2124 string title = "网店订单收款" boolean maxbox = true boolean resizable = true event ue_f9 ( ) event ue_f8 ( ) event ue_xls_import ( ) event ue_accept ( ) event ue_taobao_import ( ) event ue_match ( ) cb_reflash cb_reflash cb_edit cb_edit cb_del cb_del cbx_1 cbx_1 cb_addmx cb_addmx ddlb_scid ddlb_scid cb_import cb_import r_bar r_bar ln_bar ln_bar ln_bar2 ln_bar2 ln_1 ln_1 ln_2 ln_2 dw_1 dw_1 cb_accept cb_accept cb_match cb_match end type global w_eb_cusamt w_eb_cusamt type variables long ins_child = 21 long ins_child_min = 2 uo_eb_cusamt ins_import end variables forward prototypes public function integer wf_save (ref string arg_msg) public subroutine wf_selectall () public subroutine wf_face () public function integer wf_del (ref string arg_msg) end prototypes event ue_f9();IF Not dw_edit_mode THEN RETURN Long ll_row ll_row = dw_1.GetRow() IF ll_row <= 0 THEN RETURN 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 = dw_1.Object.cuscode[ll_row] OpenWithParm(W_cust_edit,s_ch_tran) //调用 s_custom S_INSCUST S_INSCUST = Message.PowerObjectParm //接受返回结构 IF S_INSCUST.cusid <= 0 THEN RETURN dw_1.Object.cusid[ll_row] = S_INSCUST.cusid dw_1.Object.cuscode[ll_row] = S_INSCUST.cuscode dw_1.Object.name[ll_row] = S_INSCUST.Name end event event ue_f8();//用于选择明细内容,被F9[默认] IF Not dw_edit_mode THEN RETURN Long child_row child_row = dw_1.GetRow() IF child_row <= 0 THEN RETURN dw_1.AcceptText() Long ll_cusid,ll_billtype Long ls_taskid,ls_j String ls_taskcode Long ll_scid ll_cusid = dw_1.Object.cusid[child_row] IF IsNull(ll_cusid) Or ll_cusid = 0 THEN MessageBox(publ_operator,'请先选择客户') RETURN END IF IF dw_1.Object.scid[child_row] = 0 THEN ll_scid = ddlb_scid.uo_scid ELSE ll_scid = dw_1.Object.scid[child_row] END IF s_taobao_saletask_ch s_task s_task.scid = ll_scid s_task.cusid = ll_cusid s_task.taskcode = Upper(Trim(dw_1.Object.reltaskcode[child_row])) String arg_msg = '' IF uo_saletask_spi.uf_saletask_ch(Ref s_task, Ref arg_msg) <> 1 THEN MessageBox('ERROR', arg_msg) RETURN END IF IF s_task.taskid <= 0 THEN RETURN dw_1.SetRedraw(False) dw_1.Object.reltaskcode[child_row] = s_task.taskcode dw_1.Object.damt[child_row] = s_task.damt dw_1.Object.relid[child_row] = s_task.taskid dw_1.Object.billamt[child_row] = s_task.billamt dw_1.Object.reltakeamt[child_row] = s_task.takeamt dw_1.Object.takeamt[child_row] = s_task.noamt dw_1.Object.realmoneyid[child_row] = s_task.moneyid dw_1.Object.banktypeid[child_row] = s_task.banktypeid dw_1.Object.reldamt[child_row] = s_task.takedamt dw_1.SetRedraw(True) dw_1.SetColumn("accountsid") end event event ue_xls_import();// 从xls导入 Int rslt = 1 String arg_msg = '' String ls_path, ls_files[] IF GetFileOpenName("选择文件", ls_path,ls_files,"xls","Excel文件(*.xls),*.xls") <> 1 THEN RETURN END IF datastore ds_col30 ds_col30 = Create datastore ds_col30.DataObject = 'dw_col100' Long ll_rt String ls_filename Long i, j IF UpperBound(ls_files) = 1 THEN ls_path = Left(ls_path, Len(ls_path) - Len(ls_files[1])) END IF IF Right(ls_path, 1) <> "\" THEN ls_path = ls_path + "\" END IF String ls_title, ls_value Long arr_map[] s_eb_cusamt s_import[] Long k = 0 FOR i = 1 To UpperBound(ls_files) ds_col30.Reset() ls_filename = ls_path + ls_files[i] IF f_xls_to_dwcol100(ls_filename, ds_col30, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF FOR i = 1 To 30 ls_title = ds_col30.GetItemString(1, 'col' + String(i)) IF IsNull(ls_title) THEN ls_title = '' ls_title = Trim(ls_title) IF ls_title = '单据日期' THEN arr_map[1] = i ELSEIF ls_title = '客户编码' THEN arr_map[2] = i ELSEIF ls_title = '客户名称' THEN arr_map[3] = i ELSEIF ls_title = '业务员' THEN arr_map[4] = i ELSEIF ls_title = '经手人' THEN arr_map[5] = i ELSEIF ls_title = '相关号码' THEN arr_map[6] = i ELSEIF ls_title = '备注' THEN arr_map[7] = i ELSEIF ls_title = '类型' THEN arr_map[8] = i ELSEIF ls_title = '订单号' THEN arr_map[9] = i ELSEIF ls_title = '单据金额' THEN arr_map[10] = i ELSEIF ls_title = '订金金额' THEN arr_map[11] = i ELSEIF ls_title = '已收订金' THEN arr_map[12] = i ELSEIF ls_title = '已收金额' THEN arr_map[13] = i ELSEIF ls_title = '本次出纳收款额' THEN arr_map[14] = i ELSEIF ls_title = '帐号' THEN arr_map[15] = i ELSEIF ls_title = '汇率' THEN arr_map[16] = i ELSEIF ls_title = '应收帐币种' THEN arr_map[17] = i ELSEIF ls_title = '收支项目' THEN arr_map[18] = i ELSEIF ls_title = '结算方式' THEN arr_map[19] = i ELSEIF ls_title = '明细备注' THEN arr_map[20] = i ELSEIF ls_title = '到帐日期' THEN arr_map[21] = i END IF NEXT FOR j = 2 To ds_col30.RowCount() k++ s_import[k].id = 0 IF arr_map[1] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[1])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) s_import[k].billdate = DateTime(Date(Left(ls_value, 10)), Time(Mid(ls_value, 11))) END IF IF arr_map[2] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[2])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) SELECT top 1 cusid INTO :s_import[k].cusid FROM u_cust Where cuscode = :ls_value; IF sqlca.SQLCode <> 0 THEN s_import[k].cusid = 0 END IF END IF IF arr_map[4] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[4])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) s_import[k].custype = ls_value END IF IF arr_map[5] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[5])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) s_import[k].assign_emp = ls_value END IF IF arr_map[6] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[6])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) s_import[k].part = ls_value END IF IF arr_map[7] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[7])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) s_import[k].dscrp = ls_value END IF IF arr_map[8] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[8])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) IF ls_value = '订金收款' Or ls_value = '0' THEN s_import[k].billtype = 0 ELSEIF ls_value = '余额收款' Or ls_value = '1' THEN s_import[k].billtype = 1 ELSEIF ls_value = '自动对帐' Or ls_value = '2' THEN s_import[k].billtype = 2 END IF END IF IF arr_map[9] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[9])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) s_import[k].reltaskcode = ls_value END IF IF arr_map[10] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[10])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) s_import[k].billamt = Dec(ls_value) END IF IF arr_map[11] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[11])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) s_import[k].damt = Dec(ls_value) END IF IF arr_map[12] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[12])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) s_import[k].reldamt = Dec(ls_value) END IF IF arr_map[13] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[13])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) s_import[k].reltakeamt = Dec(ls_value) END IF IF arr_map[14] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[14])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) s_import[k].takeamt = Dec(ls_value) END IF IF arr_map[15] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[15])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) SELECT TOP 1 accountsid INTO :s_import[k].accountsid FROM u_accounts Where accountsname = :ls_value; IF sqlca.SQLCode <> 0 THEN s_import[k].accountsid = 0 END IF END IF IF arr_map[16] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[16])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) s_import[k].realrate = Dec(ls_value) END IF IF arr_map[17] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[17])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) SELECT top 1 moneyid INTO :s_import[k].realmoneyid FROM cw_currency Where Name = :ls_value; IF sqlca.SQLCode <> 0 THEN s_import[k].realmoneyid = 0 END IF END IF IF arr_map[18] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[18])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) SELECT top 1 itemid INTO :s_import[k].itemid FROM u_itemdef Where itemname = :ls_value; IF sqlca.SQLCode <> 0 THEN s_import[k].itemid = 0 END IF END IF IF arr_map[19] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[19])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) SELECT TOP 1 banktypeid INTO :s_import[k].banktypeid FROM cw_banktype Where banktypename = :ls_value; IF sqlca.SQLCode <> 0 THEN s_import[k].banktypeid = 0 END IF END IF IF arr_map[20] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[20])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) s_import[k].mxdscrp = ls_value END IF IF arr_map[21] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[21])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value) s_import[k].viewdate = DateTime(Date(Left(ls_value, 10)), Time(Mid(ls_value, 11))) END IF NEXT NEXT FOR i = 1 To UpperBound(s_import) IF ins_import.uf_save(s_import[i], arg_msg, False) <> 1 THEN rslt = 0 GOTO ext END IF NEXT ext: Destroy ds_col30 IF rslt = 1 THEN COMMIT; MessageBox('OK', '导入成功') cb_reflash.TriggerEvent(Clicked!) ELSE ROLLBACK; MessageBox('错误', arg_msg) END IF end event event ue_accept();// 接受选中的为订单收款单 Int rslt = 1 String arg_msg = '' Long i, arg_ids[] Long j = 0 FOR i = 1 To dw_1.RowCount() IF Not dw_1.Object.ch[i] = 1 THEN CONTINUE j++ arg_ids[j] = dw_1.Object.id[i] NEXT IF ins_import.uf_accepts(arg_ids, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF ext: IF rslt = 1 THEN MessageBox('OK', '接受成功') cb_reflash.TriggerEvent(Clicked!) ELSE MessageBox('错误', arg_msg) END IF end event event ue_taobao_import();// 从xls导入 Int rslt = 1 String arg_msg = '' String ls_path, ls_files[] IF GetFileOpenName("选择文件", ls_path,ls_files,"xls","Excel文件(*.xls;*.csv),*.xls;*.csv") <> 1 THEN RETURN END IF oleobject excelserver excelserver = Create oleobject datastore ds_col30 ds_col30 = Create datastore ds_col30.DataObject = 'dw_col30' Long ll_rt ll_rt = excelserver.ConnectToNewObject("excel.application") IF ll_rt <> 0 THEN rslt = 0 arg_msg = '连接EXCEL失败,请检查计算机中是否安装了EXCEL!' GOTO ext END IF String ls_filename Long i, j IF UpperBound(ls_files) = 1 THEN ls_path = Left(ls_path, Len(ls_path) - Len(ls_files[1])) END IF IF Right(ls_path, 1) <> "\" THEN ls_path = ls_path + "\" END IF String ls_title, ls_value Long arr_map[] s_eb_cusamt s_import[] Long k = 0 FOR i = 1 To UpperBound(ls_files) ds_col30.Reset() ls_filename = ls_path + ls_files[i] excelserver.workbooks.Open(ls_filename) excelserver.activesheet.cells.Copy ds_col30.ImportClipboard(5) FOR i = 1 To 30 ls_title = ds_col30.GetItemString(1, 'col' + String(i)) IF IsNull(ls_title) THEN ls_title = '' ls_title = Trim(ls_title, true) IF ls_title = '账务流水号' THEN arr_map[22] = i ELSEIF ls_title = '业务流水号' THEN arr_map[23] = i ELSEIF ls_title = '商户订单号' THEN arr_map[24] = i // ELSEIF ls_title = '商品名称' THEN // arr_map[7] = i ELSEIF ls_title = '发生时间' THEN arr_map[1] = i // ELSEIF ls_title = '对方账号' THEN // arr_map[20] = i ELSEIF ls_title = '收入金额(+元)' THEN arr_map[14] = i ELSEIF ls_title = '支出金额(-元)' THEN arr_map[13] = i END IF NEXT FOR j = 2 To ds_col30.RowCount() IF Len(ds_col30.GetItemString(j, 'col' + String(1))) > 50 THEN EXIT END IF k++ s_import[k].id = 0 IF arr_map[1] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[1])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) s_import[k].billdate = DateTime(Date(Left(ls_value, 10)), Time(Mid(ls_value, 11))) END IF IF arr_map[2] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[2])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) SELECT top 1 cusid INTO :s_import[k].cusid FROM u_cust Where cuscode = :ls_value; IF sqlca.SQLCode <> 0 THEN s_import[k].cusid = 0 END IF END IF IF arr_map[4] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[4])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) s_import[k].custype = ls_value END IF IF arr_map[5] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[5])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) s_import[k].assign_emp = ls_value END IF IF arr_map[6] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[6])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) s_import[k].part = ls_value END IF IF arr_map[7] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[7])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) s_import[k].dscrp = ls_value END IF IF arr_map[8] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[8])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) IF ls_value = '订金收款' Or ls_value = '0' THEN s_import[k].billtype = 0 ELSEIF ls_value = '余额收款' Or ls_value = '1' THEN s_import[k].billtype = 1 ELSEIF ls_value = '自动对帐' Or ls_value = '2' THEN s_import[k].billtype = 2 END IF END IF IF arr_map[9] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[9])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) s_import[k].reltaskcode = ls_value END IF IF arr_map[10] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[10])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) s_import[k].billamt = Dec(ls_value) END IF IF arr_map[11] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[11])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) s_import[k].damt = Dec(ls_value) END IF IF arr_map[12] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[12])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) s_import[k].reldamt = Dec(ls_value) END IF IF arr_map[13] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[13])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) s_import[k].reltakeamt = Dec(ls_value) END IF IF arr_map[14] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[14])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) s_import[k].takeamt = Dec(ls_value) END IF IF arr_map[15] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[15])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) SELECT TOP 1 accountsid INTO :s_import[k].accountsid FROM u_accounts Where accountsname = :ls_value; IF sqlca.SQLCode <> 0 THEN s_import[k].accountsid = 0 END IF END IF IF arr_map[16] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[16])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) s_import[k].realrate = Dec(ls_value) END IF IF arr_map[17] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[17])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) SELECT top 1 moneyid INTO :s_import[k].realmoneyid FROM cw_currency Where Name = :ls_value; IF sqlca.SQLCode <> 0 THEN s_import[k].realmoneyid = 0 END IF END IF IF arr_map[18] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[18])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) SELECT top 1 itemid INTO :s_import[k].itemid FROM u_itemdef Where itemname = :ls_value; IF sqlca.SQLCode <> 0 THEN s_import[k].itemid = 0 END IF END IF IF arr_map[19] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[19])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) SELECT TOP 1 banktypeid INTO :s_import[k].banktypeid FROM cw_banktype Where banktypename = :ls_value; IF sqlca.SQLCode <> 0 THEN s_import[k].banktypeid = 0 END IF END IF IF arr_map[20] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[20])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) s_import[k].mxdscrp = ls_value END IF IF arr_map[21] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[21])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) s_import[k].viewdate = DateTime(Date(Left(ls_value, 10)), Time(Mid(ls_value, 11))) END IF IF arr_map[22] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[22])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) s_import[k].trade_id = ls_value END IF IF arr_map[23] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[23])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) s_import[k].trade_no = ls_value END IF IF arr_map[24] > 0 THEN ls_value = ds_col30.GetItemString(j, 'col' + String(arr_map[24])) IF IsNull(ls_value) THEN ls_value = '' ls_value = Trim(ls_value, true) s_import[k].tid = ls_value END IF s_import[k].takeamt = s_import[k].takeamt + s_import[k].reltakeamt s_import[k].reltakeamt = 0 s_import[k].im_type = 5 NEXT NEXT FOR i = 1 To UpperBound(s_import) IF ins_import.uf_save(s_import[i], arg_msg, False) <> 1 THEN rslt = 0 GOTO ext END IF NEXT ext: IF ll_rt = 0 THEN excelserver.DisconnectObject() END IF Destroy excelserver Destroy ds_col30 IF rslt = 1 THEN COMMIT; MessageBox('OK', '导入成功') cb_reflash.TriggerEvent(Clicked!) ELSE ROLLBACK; MessageBox('错误', arg_msg) END IF end event event ue_match();IF Not dw_edit_mode THEN RETURN Long i String ls_msg = '' String ls_taskcode String ls_trade_no Long cnt Long ll_scid, ll_taskid, ll_cusid Decimal ld_billamt, ld_damt, ld_reldamt, ld_reltakeamt String ls_cuscode, ls_cusname FOR i = 1 To dw_1.RowCount() IF dw_1.Object.ch[i] <> 1 THEN CONTINUE IF dw_1.Object.im_type[i] = 5 THEN ls_trade_no = trim(dw_1.Object.trade_no[i], true) SELECT COUNT(distinct taskcode) INTO :cnt FROM eb_saletask_import WHERE im_type = 5 And trade_no = :ls_trade_no; IF sqlca.SQLCode <> 0 THEN ls_msg += '第' + String(i) + '行,查询对应订单数失败,' + sqlca.SQLErrText + '~r~n' CONTINUE END IF IF cnt > 1 THEN ls_msg += '第' + String(i) + '行,查询对应订单数多于一个~r~n' CONTINUE END IF IF cnt = 0 THEN ls_msg += '第' + String(i) + '行,没有查到对应订单~r~n' CONTINUE END IF SELECT distinct taskcode INTO :ls_taskcode FROM eb_saletask_import WHERE im_type = 5 And trade_no = :ls_trade_no; IF sqlca.SQLCode <> 0 THEN ls_msg += '第' + String(i) + '行,查询对应订单编号失败,' + sqlca.SQLErrText + '~r~n' CONTINUE END IF IF ls_taskcode = '' THEN ls_msg += '第' + String(i) + '行,对应的电商临时订单未被接受~r~n' CONTINUE END IF SELECT u_SaleTask.scid, u_SaleTask.TaskID, u_SaleTask.CusID, u_SaleTask.msttakeamt, u_SaleTask.damt, u_SaleTask.takedamt, u_SaleTask.takeamt, isnull(u_cust.cuscode,''), isnull(u_cust.name,'') INTO :ll_scid, :ll_taskid, :ll_cusid, :ld_billamt, :ld_damt, :ld_reldamt, :ld_reltakeamt, :ls_cuscode, :ls_cusname FROM u_SaleTask LEFT OUTER JOIN u_cust ON u_SaleTask.CusID = u_cust.cusid Where (u_SaleTask.taskcode = :ls_taskcode); IF sqlca.SQLCode <> 0 THEN ls_msg += '第' + String(i) + '行,查询对应订单失败,' + sqlca.SQLErrText + '~r~n' CONTINUE END IF dw_1.Object.scid[i] = ll_scid dw_1.Object.relid[i] = ll_taskid dw_1.Object.CusID[i] = ll_cusid dw_1.Object.billamt[i] = ld_billamt dw_1.Object.damt[i] = ld_damt dw_1.Object.reldamt[i] = ld_reldamt dw_1.Object.reltakeamt[i] = ld_reltakeamt dw_1.Object.cuscode[i] = ls_cuscode dw_1.Object.Name[i] = ls_cusname END IF NEXT IF ls_msg <> '' THEN OpenWithParm(w_message_err, ls_msg) END IF end event public function integer wf_save (ref string arg_msg);Int rslt = 1 Long i s_eb_cusamt s_import, s_empty FOR i = 1 To dw_1.RowCount() IF dw_1.Object.ch[i] <> 1 THEN CONTINUE s_import = s_empty s_import.id = dw_1.Object.id[i] s_import.billdate = dw_1.Object.billdate[i] s_import.cusid = dw_1.Object.cusid[i] s_import.custype = dw_1.Object.custype[i] s_import.assign_emp = dw_1.Object.assign_emp[i] s_import.part = dw_1.Object.part[i] s_import.dscrp = dw_1.Object.dscrp[i] s_import.billtype = dw_1.Object.billtype[i] s_import.reltaskcode = dw_1.Object.reltaskcode[i] s_import.billamt = dw_1.Object.billamt[i] s_import.damt = dw_1.Object.damt[i] s_import.reldamt = dw_1.Object.reldamt[i] s_import.reltakeamt = dw_1.Object.reltakeamt[i] s_import.takeamt = dw_1.Object.takeamt[i] s_import.accountsid = dw_1.Object.accountsid[i] s_import.realrate = dw_1.Object.realrate[i] s_import.realmoneyid = dw_1.Object.realmoneyid[i] s_import.itemid = dw_1.Object.itemid[i] s_import.banktypeid = dw_1.Object.banktypeid[i] s_import.mxdscrp = dw_1.Object.mxdscrp[i] s_import.viewdate = dw_1.Object.viewdate[i] s_import.scid = dw_1.Object.scid[i] s_import.relid = dw_1.Object.relid[i] s_import.trade_id = dw_1.Object.trade_id[i] s_import.trade_no = dw_1.Object.trade_no[i] s_import.tid = dw_1.Object.tid[i] IF ins_import.uf_save(s_import, arg_msg, False) <> 1 THEN rslt = 0 GOTO ext END IF NEXT ext: IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public subroutine wf_selectall ();Long ll_check IF cbx_1.Checked THEN ll_check = 1 ELSE ll_check = 0 END IF Long i FOR i = 1 To dw_1.RowCount() dw_1.Object.ch[i] = ll_check NEXT end subroutine public subroutine wf_face ();Long i cb_reflash.Enabled = Not dw_edit_mode cb_addmx.Enabled = dw_edit_mode cb_import.Enabled = Not dw_edit_mode cb_accept.Enabled = Not dw_edit_mode cb_match.Enabled = dw_edit_mode IF dw_edit_mode THEN FOR i = 1 To ins_child dw_1.SetTabOrder(i, i * 10) NEXT cb_edit.Text = '保存' cb_edit.normalpicname = 'Save.bmp' cb_del.Text = '放弃' cb_del.normalpicname = 'Undo.bmp' ELSE FOR i = 1 To ins_child_min - 1 dw_1.SetTabOrder(i, i * 10) NEXT FOR i = ins_child_min To ins_child dw_1.SetTabOrder(i, 0) NEXT cb_edit.Text = '修改' cb_edit.normalpicname = 'OPEN.bmp' cb_del.Text = '删除' cb_del.normalpicname = 'delete.bmp' END IF cb_edit.of_init_draw() cb_edit.of_paint() cb_edit.TriggerEvent('ue_textchange') cb_del.of_init_draw() cb_del.of_paint() cb_del.TriggerEvent('ue_textchange') end subroutine public function integer wf_del (ref string arg_msg);Int rslt = 1 Long i FOR i = 1 To dw_1.RowCount() IF dw_1.Object.ch[i] <> 1 THEN CONTINUE IF ins_import.uf_del(dw_1.Object.id[i], arg_msg, False) <> 1 THEN rslt = 0 arg_msg = '第' + String(i) + '行,' + arg_msg GOTO ext END IF NEXT GOTO ext ext: IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function on w_eb_cusamt.create int iCurrent call super::create this.cb_reflash=create cb_reflash this.cb_edit=create cb_edit this.cb_del=create cb_del this.cbx_1=create cbx_1 this.cb_addmx=create cb_addmx this.ddlb_scid=create ddlb_scid this.cb_import=create cb_import this.r_bar=create r_bar this.ln_bar=create ln_bar this.ln_bar2=create ln_bar2 this.ln_1=create ln_1 this.ln_2=create ln_2 this.dw_1=create dw_1 this.cb_accept=create cb_accept this.cb_match=create cb_match iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.cb_reflash this.Control[iCurrent+2]=this.cb_edit this.Control[iCurrent+3]=this.cb_del this.Control[iCurrent+4]=this.cbx_1 this.Control[iCurrent+5]=this.cb_addmx this.Control[iCurrent+6]=this.ddlb_scid this.Control[iCurrent+7]=this.cb_import this.Control[iCurrent+8]=this.r_bar this.Control[iCurrent+9]=this.ln_bar this.Control[iCurrent+10]=this.ln_bar2 this.Control[iCurrent+11]=this.ln_1 this.Control[iCurrent+12]=this.ln_2 this.Control[iCurrent+13]=this.dw_1 this.Control[iCurrent+14]=this.cb_accept this.Control[iCurrent+15]=this.cb_match end on on w_eb_cusamt.destroy call super::destroy destroy(this.cb_reflash) destroy(this.cb_edit) destroy(this.cb_del) destroy(this.cbx_1) destroy(this.cb_addmx) destroy(this.ddlb_scid) destroy(this.cb_import) destroy(this.r_bar) destroy(this.ln_bar) destroy(this.ln_bar2) destroy(this.ln_1) destroy(this.ln_2) destroy(this.dw_1) destroy(this.cb_accept) destroy(this.cb_match) end on event ue_before_open;call super::ue_before_open;ins_import = create uo_eb_cusamt dw_1.SetTransObject(sqlca) cb_reflash.TriggerEvent(clicked!) end event event open;call super::open;wf_face() end event event close;call super::close;destroy ins_import end event event resize;call super::resize;r_bar.Width = this.width ln_bar.endx = this.width ln_bar2.endx = this.width ln_1.endx = this.width ln_2.endx = this.width dw_1.height = this.WorkSpaceHeight() - dw_1.Y dw_1.Width = this.WorkSpaceWidth() - dw_1.X end event type cb_func from w_publ_base`cb_func within w_eb_cusamt boolean visible = false integer width = 165 integer height = 152 string text = "查询" string normalpicname = "setting.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type type cb_exit from w_publ_base`cb_exit within w_eb_cusamt integer x = 1211 integer y = 4 integer width = 142 integer height = 164 integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type type cb_reflash from uo_imflatbutton within w_eb_cusamt integer width = 151 integer height = 164 integer taborder = 50 boolean bringtotop = true string text = "刷新" string normalpicname = "refresh.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;dw_1.Retrieve(ddlb_scid.uo_scid) end event type cb_edit from uo_imflatbutton within w_eb_cusamt integer x = 155 integer width = 151 integer height = 164 integer taborder = 60 boolean bringtotop = true string text = "修改" string normalpicname = "OPEN.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;String arg_msg IF dw_edit_mode THEN IF dw_1.AcceptText() <> 1 THEN RETURN IF wf_save(arg_msg) <> 1 THEN MessageBox('错误', arg_msg) RETURN END IF END IF dw_edit_mode = Not dw_edit_mode IF dw_edit_mode THEN cbx_1.Checked = True wf_selectall() ELSE cb_reflash.TriggerEvent(Clicked!) END IF wf_face() end event type cb_del from uo_imflatbutton within w_eb_cusamt integer x = 311 integer width = 151 integer height = 164 integer taborder = 70 boolean bringtotop = true string text = "删除" string normalpicname = "delete.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;String ls_msg IF dw_edit_mode THEN dw_edit_mode = Not dw_edit_mode cb_reflash.TriggerEvent(Clicked!) wf_face() ELSE IF MessageBox('提问', '是否要删除选中的记录?', Question!, YesNo!) <> 1 THEN RETURN END IF IF wf_del(ls_msg) <> 1 THEN MessageBox('错误', ls_msg) RETURN END IF cb_reflash.TriggerEvent(Clicked!) END IF end event type cbx_1 from checkbox within w_eb_cusamt integer x = 14 integer y = 200 integer width = 274 integer height = 56 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 = "全选" end type event clicked;wf_selectall() end event event constructor;this.backcolor = 14215660 end event type cb_addmx from uo_imflatbutton within w_eb_cusamt integer x = 466 integer width = 151 integer height = 164 integer taborder = 80 boolean bringtotop = true string text = "增行" string normalpicname = "new.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF Not dw_edit_mode THEN RETURN long ll_row ll_row = dw_1.ScrollToRow(dw_1.InsertRow(0)) dw_1.Object.scid[ll_row] = ddlb_scid.uo_scid end event type ddlb_scid from uo_ddlb_scid within w_eb_cusamt integer x = 325 integer y = 188 integer width = 549 integer height = 620 integer taborder = 50 boolean bringtotop = true end type event constructor;Long ls_scid Long cnt,cnt_user String ls_scname long ll_i string ls_space int li_spacenum for ll_i =1 to upperbound(sys_user_scid) ls_scid = sys_user_scid[ll_i] SELECT scname INTO :ls_scname FROM u_scdef Where scid = :ls_scid; if sqlca.sqlcode <> 0 or isnull(ls_scname) then ls_scname = '' li_spacenum = 50 - len(trim(ls_scname)) - 2 - len(string(ls_scid)) ls_space = fill(' ',li_spacenum) THIS.AddItem (ls_scname+ls_space+'['+String(ls_scid)+']') next THIS.uo_scid = ls_scid uo_scid_arr[1] = ls_scid THIS.Text = ls_scname+ls_space+'['+String(ls_scid)+']' end event event selectionchanged;call super::selectionchanged;cb_reflash.triggerevent(clicked!) end event type cb_import from uo_imflatbutton within w_eb_cusamt integer x = 622 integer width = 151 integer height = 164 integer taborder = 20 boolean bringtotop = true string text = "导入" string normalpicname = "imexport.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu String menustr menustr = "Text=xml~tEvent=ue_xml_import" menustr = menustr + "|" + "Text=xls~tEvent=ue_xls_import" menustr = menustr + "|" + "Text=淘宝~tEvent=ue_taobao_import" menustr = menustr + "|" + "Text=京东~tEvent=ue_jindong_import" 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 r_bar from rectangle within w_eb_cusamt long linecolor = 16777215 integer linethickness = 4 long fillcolor = 1073741824 integer x = 1422 integer width = 146 integer height = 68 end type event constructor;this.fillcolor = 14215660 this.linecolor = 14215660 this.x = -1 this.y = -1 this.height = ln_bar.beginy - 5 end event type ln_bar from line within w_eb_cusamt long linecolor = 268435456 integer linethickness = 4 integer beginy = 280 integer endx = 2007 integer endy = 280 end type type ln_bar2 from line within w_eb_cusamt long linecolor = 16777215 integer linethickness = 4 integer beginy = 284 integer endx = 2039 integer endy = 284 end type type ln_1 from line within w_eb_cusamt long linecolor = 268435456 integer linethickness = 4 integer beginy = 168 integer endx = 2007 integer endy = 168 end type type ln_2 from line within w_eb_cusamt long linecolor = 16777215 integer linethickness = 4 integer beginy = 172 integer endx = 2039 integer endy = 172 end type type dw_1 from u_dw_rbtnfilter within w_eb_cusamt integer y = 288 integer width = 2798 integer height = 1076 integer taborder = 50 string dataobject = "dw_eb_cusamt" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean rbutton_filter_use = true boolean rbutton_setposition_use = true boolean titleclick_sort_use = true end type event clicked;call super::clicked;IF row > 0 THEN dw_1.SetRow(row) END IF end event event rowfocuschanged;call super::rowfocuschanged;This.SelectRow(0, False) IF currentrow > 0 THEN This.SelectRow(currentrow, True) END IF end event event doubleclicked;call super::doubleclicked;IF Not dw_edit_mode THEN RETURN IF dw_1.AcceptText() <> 1 THEN RETURN String ls_name ls_name = dwo.Name IF ls_name = 'cuscode' THEN Parent.TriggerEvent('ue_f9') ELSEIF ls_name = 'reltaskcode' THEN Parent.TriggerEvent('ue_f8') END IF end event type cb_accept from uo_imflatbutton within w_eb_cusamt integer x = 1056 integer width = 151 integer height = 164 integer taborder = 30 boolean bringtotop = true string text = "接受" string normalpicname = "ok.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;parent.triggerevent('ue_accept') end event type cb_match from uo_imflatbutton within w_eb_cusamt integer x = 777 integer width = 274 integer height = 164 integer taborder = 30 boolean bringtotop = true string text = "自动对单" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;parent.triggerevent('ue_match') end event