$PBExportHeader$w_fj_fileadd_p.srw forward global type w_fj_fileadd_p from window end type type dw_fileedit from u_dw_rbtnfilter within w_fj_fileadd_p end type type cb_3 from uo_imflatbutton within w_fj_fileadd_p end type type cb_2 from uo_imflatbutton within w_fj_fileadd_p end type type cb_1 from uo_imflatbutton within w_fj_fileadd_p end type type cb_read from uo_imflatbutton within w_fj_fileadd_p end type type r_bar from rectangle within w_fj_fileadd_p end type type ln_bar from line within w_fj_fileadd_p end type end forward global type w_fj_fileadd_p from window integer width = 3355 integer height = 1288 boolean titlebar = true string title = "Untitled" boolean controlmenu = true windowtype windowtype = response! long backcolor = 134217739 string icon = "AppIcon!" boolean center = true event ue_selectfile ( ) dw_fileedit dw_fileedit cb_3 cb_3 cb_2 cb_2 cb_1 cb_1 cb_read cb_read r_bar r_bar ln_bar ln_bar end type global w_fj_fileadd_p w_fj_fileadd_p type variables s_fileinfo s_file boolean import = false boolean success = false long originallyheight,originallywidth end variables forward prototypes public function integer wf_getfiledata (string arg_filepath, ref blob arg_filedata, ref string arg_msg) end prototypes event ue_selectfile();// //ue_selectfile String Pathname,Filename[],FileType, ls_Pathname Integer i, li_cnt, poi, li_failcnt Long row String arg_msg long ll_FileLength row = 1 //dw_fileedit.getrow( ) FileType = '' FileType = '所有文件(*.*),*.*,' // FileType += "配置文件(*.ini), *.ini," FileType += "Zip压缩文件(*.Zip),*.Zip," FileType += "RAR压缩文件(*.rar),*.rar," // FileType += "XML文件(*.xml),*.xml," FileType += "文本文件(*.txt),*.txt," FileType += "Excel模版(*.xlt),*.xlt," // FileType += "Excel文档(*.xls),*.xls," // FileType += "Word模版(*.dot),*.dot," FileType += "Word文档(*.doc),*.doc," FileType += "JPG(*.JPG),*.JPG," FileType += "位图文件(*.bmp),*.bmp," FileType += "GIF文件(*.GIF),*.GIF" i = GetFileOpenName("请选择文件", Pathname,Filename, "All", FileType) IF i < 1 THEN RETURN li_cnt = UpperBound(Filename) IF li_cnt = 1 THEN ls_Pathname = Pathname ll_FileLength = FileLength(ls_Pathname)/1024 IF ll_FileLength > 10240 THEN MessageBox('限制','附件文件大小不得大于10M') RETURN END IF IF dw_fileedit.GetRow() > 0 THEN IF dw_fileedit.Object.filepath[dw_fileedit.GetRow()] = '' THEN row = dw_fileedit.GetRow() ELSE row = dw_fileedit.InsertRow(0) END IF ELSE row = dw_fileedit.InsertRow(0) END IF dw_fileedit.Object.filepath[row] = ls_Pathname dw_fileedit.Object.filesize[row] = ll_FileLength poi = lastpos(Filename[1], '.') IF poi > 0 THEN dw_fileedit.Object.Filename[row] = Mid(Filename[1],1,poi -1) dw_fileedit.Object.DisplayName[row] = Mid(Filename[1],1,poi -1) dw_fileedit.Object.FileType[row] = Mid(Filename[1],poi +1,Len(Filename[1]) - poi) ELSE dw_fileedit.Object.Filename[row] = Filename[1] dw_fileedit.Object.DisplayName[row] = Filename[1] dw_fileedit.Object.FileType[row] = '' END IF ELSE FOR i = 1 To li_cnt ls_Pathname = String(Pathname) + "\" +(String(Filename[i])) ll_FileLength = FileLength(ls_Pathname)/1024 IF ll_FileLength > 10240 THEN arg_msg = '附件文件大小不得大于10M' li_failcnt ++ continue END IF IF dw_fileedit.GetRow() > 0 THEN IF dw_fileedit.Object.filepath[dw_fileedit.GetRow()] = '' THEN row = dw_fileedit.GetRow() ELSE row = dw_fileedit.InsertRow(0) END IF ELSE row = dw_fileedit.InsertRow(0) END IF dw_fileedit.Object.filepath[row] = ls_Pathname dw_fileedit.Object.filesize[row] = ll_FileLength poi = lastpos(Filename[i], '.') IF poi > 0 THEN dw_fileedit.Object.Filename[row] = Mid(Filename[i],1,poi -1) dw_fileedit.Object.DisplayName[row] = Mid(Filename[i],1,poi -1) dw_fileedit.Object.FileType[row] = Mid(Filename[i],poi +1,Len(Filename[i]) - poi) ELSE dw_fileedit.Object.Filename[row] = Filename[i] dw_fileedit.Object.DisplayName[row] = Filename[i] dw_fileedit.Object.FileType[row] = '' END IF NEXT IF li_failcnt > 0 THEN MessageBox('限制','附件文件大小不得大于10M,'+String(li_failcnt)+'个文件导入失败!') END IF END IF end event public function integer wf_getfiledata (string arg_filepath, ref blob arg_filedata, ref string arg_msg); Long rslt = 1,i Long ll_fileLength,li_FileNum,loops,bytes_read Blob b,temp IF arg_filepath = '' Or Not FileExists(arg_filepath) THEN rslt = 0 arg_msg = '文件'+arg_filepath+'不存在' GOTO ext END IF ll_fileLength = FileLength(arg_filepath) IF ll_fileLength = 0 THEN rslt = 0 arg_msg = '文件'+arg_filepath+'没有内容' GOTO ext END IF li_FileNum = FileOpen(arg_filepath, StreamMode!, Read!, LockRead!) IF ll_fileLength > 32765 THEN IF Mod(ll_fileLength, 32765) = 0 THEN loops = ll_fileLength/32765 ELSE loops = (ll_fileLength/32765) + 1 END IF ELSE loops = 1 END IF IF li_FileNum = -1 THEN rslt = 0 arg_msg = '读取文件'+arg_filepath+'出错,文件可能正在被使用' GOTO ext END IF FOR i = 1 To loops bytes_read = FileRead(li_FileNum, b) IF bytes_read < 0 THEN rslt = 0 arg_msg = '读取文件'+arg_filepath+'出错' GOTO ext END IF temp = temp + b NEXT FileClose(li_FileNum) arg_filedata = temp rslt=ll_fileLength ext: RETURN rslt end function on w_fj_fileadd_p.create this.dw_fileedit=create dw_fileedit this.cb_3=create cb_3 this.cb_2=create cb_2 this.cb_1=create cb_1 this.cb_read=create cb_read this.r_bar=create r_bar this.ln_bar=create ln_bar this.Control[]={this.dw_fileedit,& this.cb_3,& this.cb_2,& this.cb_1,& this.cb_read,& this.r_bar,& this.ln_bar} end on on w_fj_fileadd_p.destroy destroy(this.dw_fileedit) destroy(this.cb_3) destroy(this.cb_2) destroy(this.cb_1) destroy(this.cb_read) destroy(this.r_bar) destroy(this.ln_bar) end on event open;s_file = Message.PowerObjectParm Long ll_i_row ll_i_row = dw_fileedit.InsertRow(0) dw_fileedit.SetFocus() dw_fileedit.SetColumn('displayname') this.triggerevent( 'ue_selectfile') end event event resize;ln_bar.EndX = THIS.Width r_bar.Width = THIS.Width end event type dw_fileedit from u_dw_rbtnfilter within w_fj_fileadd_p integer y = 176 integer width = 3323 integer height = 1016 integer taborder = 50 string dataobject = "dw_fj_fileadd_p" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean rbutton_setposition_use = true boolean titleclick_sort_use = true end type event rowfocuschanged;call super::rowfocuschanged;if IsNull(currentrow) then return if (currentrow <= 0) then return this.SelectRow(0, false) this.SelectRow(currentrow, true) end event type cb_3 from uo_imflatbutton within w_fj_fileadd_p integer x = 818 integer width = 274 integer height = 164 integer taborder = 40 boolean bringtotop = true string text = "取消" string normalpicname = "exit.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;success = false close(parent) end event type cb_2 from uo_imflatbutton within w_fj_fileadd_p integer x = 544 integer width = 274 integer height = 164 integer taborder = 30 boolean bringtotop = true string text = "上传" string normalpicname = "preview.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;Long row,rt_fileid, ll_succnt, ll_failcnt int rslt = 1 Long cnt String arg_msg, ls_msg String filepath s_fileinfo_arr s_file_arr uo_fx_fj uo_fj uo_fj = create uo_fx_fj dw_fileedit.AcceptText( ) FOR row = 1 To dw_fileedit.RowCount() IF dw_fileedit.Object.filepath[row] <> '' THEN IF dw_fileedit.Object.Filename[row] = '' THEN MessageBox('系统提示','行:'+String(row)+',请输入文件名称') RETURN END IF IF dw_fileedit.Object.DisplayName[row] = '' THEN MessageBox('系统提示','行:'+String(row)+',请输入档案名称') RETURN END IF END IF NEXT FOR row = 1 To dw_fileedit.RowCount() IF dw_fileedit.Object.filepath[row] <> '' and dw_fileedit.Object.fileid[row] = 0 THEN s_file.Fileid = 0 s_file.Filename = dw_fileedit.Object.Filename[row] s_file.FileType = dw_fileedit.Object.FileType[row] s_file.dscrp = dw_fileedit.Object.dscrp[row] s_file.DisplayName = dw_fileedit.Object.DisplayName[row] s_file.filepath = dw_fileedit.Object.filepath[row] filepath = dw_fileedit.Object.filepath[row] IF wf_getfiledata(filepath,s_file.filedata,arg_msg) <= 0 THEN ll_failcnt++ ls_msg += "行:"+String(row)+","+arg_msg+'~r~n' rslt = 0 GOTO nxtfj END IF cnt++ s_file_arr.fileid[cnt] = s_file.fileid s_file_arr.billtype[cnt] = s_file.billtype s_file_arr.displayName[cnt] = s_file.displayName s_file_arr.fileName[cnt] = s_file.fileName s_file_arr.fileType[cnt] = s_file.fileType s_file_arr.dscrp[cnt] = s_file.dscrp s_file_arr.opemp[cnt] = s_file.opemp s_file_arr.opdate[cnt] = s_file.opdate s_file_arr.fileData[cnt] = s_file.fileData s_file_arr.relid_mx[cnt] = s_file.relid_mx s_file_arr.relid[cnt] = s_file.relid s_file_arr.relcode[cnt] = s_file.relcode s_file_arr.filepath[cnt] = s_file.filepath END IF nxtfj: NEXT IF uo_fj.update_fxfj(s_file_arr,arg_msg) = 0 THEN MessageBox('失败',arg_msg ) RETURN ELSE MessageBox('成功',"上传文件成功" ) Close(Parent) END IF end event type cb_1 from uo_imflatbutton within w_fj_fileadd_p integer x = 270 integer width = 274 integer height = 164 integer taborder = 20 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;IF dw_fileedit.GetRow() <= 0 THEN RETURN IF MessageBox("系统提示", "是否确定删除当前明细行?", Question!, YesNo!) = 2 THEN RETURN dw_fileedit.DeleteRow(0) end event type cb_read from uo_imflatbutton within w_fj_fileadd_p integer width = 274 integer height = 164 integer taborder = 10 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;// //ue_selectfile String Pathname,Filename[],FileType, ls_Pathname Integer i, li_cnt, poi, li_failcnt Long row String arg_msg long ll_FileLength row = 1 //dw_fileedit.getrow( ) FileType = '' FileType = '所有文件(*.*),*.*,' // FileType += "配置文件(*.ini), *.ini," FileType += "Zip压缩文件(*.Zip),*.Zip," FileType += "RAR压缩文件(*.rar),*.rar," // FileType += "XML文件(*.xml),*.xml," FileType += "文本文件(*.txt),*.txt," FileType += "Excel模版(*.xlt),*.xlt," // FileType += "Excel文档(*.xls),*.xls," // FileType += "Word模版(*.dot),*.dot," FileType += "Word文档(*.doc),*.doc," FileType += "JPG(*.JPG),*.JPG," FileType += "位图文件(*.bmp),*.bmp," FileType += "GIF文件(*.GIF),*.GIF" i = GetFileOpenName("请选择文件", Pathname,Filename, "All", FileType) IF i < 1 THEN RETURN li_cnt = UpperBound(Filename) IF li_cnt = 1 THEN ls_Pathname = Pathname ll_FileLength = FileLength(ls_Pathname)/1024 IF ll_FileLength > 10240 THEN MessageBox('限制','附件文件大小不得大于10M') RETURN END IF IF dw_fileedit.GetRow() > 0 THEN IF dw_fileedit.Object.filepath[dw_fileedit.GetRow()] = '' THEN row = dw_fileedit.GetRow() ELSE row = dw_fileedit.InsertRow(0) END IF ELSE row = dw_fileedit.InsertRow(0) END IF dw_fileedit.Object.filepath[row] = ls_Pathname dw_fileedit.Object.filesize[row] = ll_FileLength poi = lastpos(Filename[1], '.') IF poi > 0 THEN dw_fileedit.Object.Filename[row] = Mid(Filename[1],1,poi -1) dw_fileedit.Object.DisplayName[row] = Mid(Filename[1],1,poi -1) dw_fileedit.Object.FileType[row] = Mid(Filename[1],poi +1,Len(Filename[1]) - poi) ELSE dw_fileedit.Object.Filename[row] = Filename[1] dw_fileedit.Object.DisplayName[row] = Filename[1] dw_fileedit.Object.FileType[row] = '' END IF ELSE FOR i = 1 To li_cnt ls_Pathname = String(Pathname) + "\" +(String(Filename[i])) ll_FileLength = FileLength(ls_Pathname)/1024 IF ll_FileLength > 10240 THEN arg_msg = '附件文件大小不得大于10M' li_failcnt ++ continue END IF IF dw_fileedit.GetRow() > 0 THEN IF dw_fileedit.Object.filepath[dw_fileedit.GetRow()] = '' THEN row = dw_fileedit.GetRow() ELSE row = dw_fileedit.InsertRow(0) END IF ELSE row = dw_fileedit.InsertRow(0) END IF dw_fileedit.Object.filepath[row] = ls_Pathname dw_fileedit.Object.filesize[row] = ll_FileLength poi = lastpos(Filename[i], '.') IF poi > 0 THEN dw_fileedit.Object.Filename[row] = Mid(Filename[i],1,poi -1) dw_fileedit.Object.DisplayName[row] = Mid(Filename[i],1,poi -1) dw_fileedit.Object.FileType[row] = Mid(Filename[i],poi +1,Len(Filename[i]) - poi) ELSE dw_fileedit.Object.Filename[row] = Filename[i] dw_fileedit.Object.DisplayName[row] = Filename[i] dw_fileedit.Object.FileType[row] = '' END IF NEXT IF li_failcnt > 0 THEN MessageBox('限制','附件文件大小不得大于10M,'+String(li_failcnt)+'个文件导入失败!') END IF END IF end event type r_bar from rectangle within w_fj_fileadd_p long linecolor = 16777215 integer linethickness = 4 long fillcolor = 1073741824 integer x = 1687 integer y = 40 integer width = 87 integer height = 52 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_fj_fileadd_p long linecolor = 268435456 integer linethickness = 4 integer beginy = 164 integer endx = 2002 integer endy = 164 end type