w_fj_manage.srw 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  1. $PBExportHeader$w_fj_manage.srw
  2. forward
  3. global type w_fj_manage from window
  4. end type
  5. type cb_up from uo_imflatbutton within w_fj_manage
  6. end type
  7. type dw_file_fj from u_dw_rbtnfilter within w_fj_manage
  8. end type
  9. type cb_read from uo_imflatbutton within w_fj_manage
  10. end type
  11. type cb_refresh from uo_imflatbutton within w_fj_manage
  12. end type
  13. type cb_exit from uo_imflatbutton within w_fj_manage
  14. end type
  15. type ln_bar from line within w_fj_manage
  16. end type
  17. type r_bar from rectangle within w_fj_manage
  18. end type
  19. end forward
  20. global type w_fj_manage from window
  21. integer width = 3918
  22. integer height = 2400
  23. boolean titlebar = true
  24. string title = "附件查看"
  25. boolean controlmenu = true
  26. windowtype windowtype = response!
  27. long backcolor = 134217739
  28. string icon = "AppIcon!"
  29. boolean center = true
  30. cb_up cb_up
  31. dw_file_fj dw_file_fj
  32. cb_read cb_read
  33. cb_refresh cb_refresh
  34. cb_exit cb_exit
  35. ln_bar ln_bar
  36. r_bar r_bar
  37. end type
  38. global w_fj_manage w_fj_manage
  39. type variables
  40. string ins_title //标题
  41. long ins_billtype //单据类型
  42. long ins_relid //单据id
  43. long ins_relid_mx = 0 //单据明细id
  44. string ins_relcode //单据编号
  45. end variables
  46. forward prototypes
  47. public subroutine wf_refresh ()
  48. public function integer wf_get_filedata (string arg_filedir, string arg_filemd5, string arg_filetype, ref string arg_msg)
  49. end prototypes
  50. public subroutine wf_refresh ();string arg_msg
  51. oleobject request,response,fx_file_fjs,item
  52. request = FXAppCom.CreatePbDictionary()
  53. request.SetString('token', app_token_fx)
  54. request.SetInt('billtype', ins_billtype)
  55. request.SetInt('relid', ins_relid)
  56. request.SetInt('relid_mx', ins_relid_mx)
  57. response = FXAppCom.DoExecute('GetFxFileFj', request)
  58. arg_msg = response.GetString('ErrMsg')
  59. if (arg_msg <> '') then
  60. messagebox('提示', '获取附件列表失败,原因:' + arg_msg)
  61. return
  62. end if
  63. fx_file_fjs = response.GetArrOfPBDictionary('FxFileFjs')
  64. IF isnull(fx_file_fjs) THEN
  65. RETURN
  66. END IF
  67. IF fx_file_fjs.Count <= 0 THEN
  68. RETURN
  69. END IF
  70. dw_file_fj.Reset()
  71. dw_file_fj.SetRedraw(false)
  72. long i,row
  73. for i = 1 to fx_file_fjs.Count
  74. item = fx_file_fjs.GetItem(i - 1)
  75. row = dw_file_fj.InsertRow(0)
  76. dw_file_fj.Object.fileid[row] = item.GetInt('fileid')
  77. dw_file_fj.Object.comname[row] = item.GetString('comname')
  78. dw_file_fj.Object.displayName[row] = item.GetString('displayName')
  79. dw_file_fj.Object.fileName[row] = item.GetString('fileName')
  80. dw_file_fj.Object.fileType[row] = item.GetString('fileType')
  81. dw_file_fj.Object.fx_file_fj_dscrp[row] = item.GetString('dscrp')
  82. dw_file_fj.Object.filemd5[row] = item.GetString('filemd5')
  83. dw_file_fj.Object.filesize[row] = item.GetDouble('file_size')
  84. dw_file_fj.SetItem(row, 'opdate', item.GetDatetime('opdate'))
  85. dw_file_fj.SetItem(row, 'if_mtfj', item.GetInt('if_mtfj'))
  86. next
  87. dw_file_fj.SetRedraw(true)
  88. end subroutine
  89. public function integer wf_get_filedata (string arg_filedir, string arg_filemd5, string arg_filetype, ref string arg_msg);Long rslt = 1
  90. oleobject parm
  91. parm = FxAppCom.CreatePbDictionary()
  92. parm.SetString('token', app_token_fx)
  93. parm.SetString('fileDir', arg_filedir)
  94. parm.SetString('filename', arg_filemd5)
  95. parm.SetString('extension', arg_filetype)
  96. parm.SetString('md5', arg_filemd5)
  97. FXAppCom.GetFileDataByMd5(parm, ref arg_msg)
  98. IF NOT ISNULL(arg_msg) AND Len(arg_msg) > 0 THEN
  99. rslt = 0
  100. GOTO ext
  101. END IF
  102. ext:
  103. RETURN rslt
  104. end function
  105. on w_fj_manage.create
  106. this.cb_up=create cb_up
  107. this.dw_file_fj=create dw_file_fj
  108. this.cb_read=create cb_read
  109. this.cb_refresh=create cb_refresh
  110. this.cb_exit=create cb_exit
  111. this.ln_bar=create ln_bar
  112. this.r_bar=create r_bar
  113. this.Control[]={this.cb_up,&
  114. this.dw_file_fj,&
  115. this.cb_read,&
  116. this.cb_refresh,&
  117. this.cb_exit,&
  118. this.ln_bar,&
  119. this.r_bar}
  120. end on
  121. on w_fj_manage.destroy
  122. destroy(this.cb_up)
  123. destroy(this.dw_file_fj)
  124. destroy(this.cb_read)
  125. destroy(this.cb_refresh)
  126. destroy(this.cb_exit)
  127. destroy(this.ln_bar)
  128. destroy(this.r_bar)
  129. end on
  130. event open;s_edit_index_tran s_tran //翻页功能窗口 传递参数使用
  131. s_tran = Message.PowerObjectParm
  132. //单据类型
  133. IF NOT IsNull(s_tran.d_long ) THEN
  134. ins_billtype = s_tran.d_long
  135. ELSE
  136. MessageBox('系统提示','单据类型不正确或没有指定')
  137. Close(THIS)
  138. RETURN
  139. END IF
  140. //单据id
  141. IF NOT IsNull(s_tran.e_long ) THEN
  142. ins_relid = s_tran.e_long //标题
  143. ELSE
  144. MessageBox('系统提示','单据类型不正确或没有指定')
  145. Close(THIS)
  146. RETURN
  147. END IF
  148. IF NOT IsNull(s_tran.f_long ) THEN
  149. ins_relid_mx = s_tran.f_long //标题
  150. ELSE
  151. MessageBox('系统提示','单据类型不正确或没有指定')
  152. Close(THIS)
  153. RETURN
  154. END IF
  155. //标题
  156. IF NOT IsNull(s_tran.d_string ) THEN
  157. ins_relcode = s_tran.d_string
  158. ins_title = '附件管理[' + ins_relcode + ']'
  159. ELSE
  160. ins_title = "附件查看"
  161. END IF
  162. THIS.Title = ins_title
  163. IF s_tran.work_mode = 1 THEN
  164. cb_up.visible = true
  165. ELSE
  166. cb_up.visible = FALSE
  167. END IF
  168. wf_refresh()
  169. end event
  170. event resize;ln_bar.EndX = THIS.Width
  171. r_bar.Width = THIS.Width
  172. end event
  173. type cb_up from uo_imflatbutton within w_fj_manage
  174. integer x = 827
  175. integer width = 274
  176. integer height = 164
  177. integer taborder = 40
  178. boolean bringtotop = true
  179. string text = "上传文件"
  180. string normalpicname = "preview.bmp"
  181. integer picsize = 16
  182. toolbaralignment pic_align = alignattop!
  183. boolean border = false
  184. end type
  185. event clicked;call super::clicked;Long lrow
  186. s_fileinfo s_file
  187. s_file.fileid = 0
  188. s_file.Filename = ''
  189. s_file.dscrp = ''
  190. s_file.FileType = ''
  191. s_file.relid = ins_relid
  192. s_file.relcode = ins_relcode
  193. s_file.billtype = ins_billtype
  194. s_file.relid_mx = ins_relid_mx
  195. SetNull(s_file.filedata)
  196. OpenWithParm(w_fj_fileadd_p,s_file)
  197. s_file = Message.PowerObjectParm
  198. wf_refresh()
  199. end event
  200. type dw_file_fj from u_dw_rbtnfilter within w_fj_manage
  201. integer x = 5
  202. integer y = 180
  203. integer width = 3895
  204. integer height = 2112
  205. integer taborder = 30
  206. string dataobject = "dw_file_fj"
  207. boolean rbutton_filter_use = true
  208. boolean rbutton_setposition_use = true
  209. boolean titleclick_sort_use = true
  210. end type
  211. event rowfocuschanged;call super::rowfocuschanged;if IsNull(currentrow) then return
  212. if (currentrow <= 0) then return
  213. this.SelectRow(0, false)
  214. this.SelectRow(currentrow, true)
  215. end event
  216. type cb_read from uo_imflatbutton within w_fj_manage
  217. integer x = 197
  218. integer width = 274
  219. integer height = 164
  220. integer taborder = 10
  221. boolean bringtotop = true
  222. string text = "查看文件"
  223. string normalpicname = "preview.bmp"
  224. integer picsize = 16
  225. toolbaralignment pic_align = alignattop!
  226. boolean border = false
  227. end type
  228. event clicked;call super::clicked;String Pathname,ls_filetype,ls_filemd5,ls_exePath,ls_filedir,arg_msg
  229. Long ls_row
  230. ls_row = dw_file_fj.GetRow()
  231. IF ls_row <= 0 THEN
  232. MessageBox('系统提示','当前没有文件')
  233. RETURN
  234. END IF
  235. ls_exePath = GetCurrentDirectory()
  236. //文件夹定义
  237. IF ins_billtype = 401 THEN //采购订单
  238. ls_filedir = ls_exePath + '\cache\fxsaletask\'
  239. ELSE
  240. ls_filedir = ls_exePath + '\cache\temp\'
  241. END IF
  242. //取附件信息
  243. ls_filemd5 = dw_file_fj.Object.filemd5[ls_row]
  244. ls_filetype = Lower(Trim(dw_file_fj.Object.FileType[ls_row]))
  245. Pathname = ls_filedir + ls_filemd5 + "." + ls_filetype
  246. String lsNull
  247. If (FileExists(Pathname)) THEN // 先查找本地是否存在文件
  248. ShellExecute32( Handle(This), lsNull, Pathname, lsNull, lsNull, 1 )
  249. ELSE
  250. IF wf_get_filedata(ls_filedir, ls_filemd5, ls_filetype, arg_msg) = 0 THEN
  251. MessageBox('提示', '获取文件失败,原因:' + arg_msg)
  252. RETURN
  253. END IF
  254. If (FileExists(Pathname)) THEN // 查找本地是否存在文件
  255. ShellExecute32( Handle(This), lsNull, Pathname, lsNull, lsNull, 1 )
  256. END IF
  257. END IF
  258. end event
  259. type cb_refresh from uo_imflatbutton within w_fj_manage
  260. integer x = 9
  261. integer width = 187
  262. integer height = 164
  263. integer taborder = 20
  264. boolean bringtotop = true
  265. string text = "刷新"
  266. string normalpicname = "refresh.bmp"
  267. integer picsize = 16
  268. toolbaralignment pic_align = alignattop!
  269. boolean border = false
  270. end type
  271. event clicked;call super::clicked;wf_refresh()
  272. end event
  273. type cb_exit from uo_imflatbutton within w_fj_manage
  274. integer x = 471
  275. integer width = 187
  276. integer height = 164
  277. integer taborder = 20
  278. boolean bringtotop = true
  279. string text = "退出"
  280. string normalpicname = "exit.bmp"
  281. integer picsize = 16
  282. toolbaralignment pic_align = alignattop!
  283. boolean border = false
  284. end type
  285. event clicked;call super::clicked;Close(parent)
  286. end event
  287. type ln_bar from line within w_fj_manage
  288. long linecolor = 268435456
  289. integer linethickness = 4
  290. integer beginy = 168
  291. integer endx = 2002
  292. integer endy = 168
  293. end type
  294. type r_bar from rectangle within w_fj_manage
  295. long linecolor = 16777215
  296. integer linethickness = 4
  297. long fillcolor = 1073741824
  298. integer x = 2203
  299. integer y = 40
  300. integer width = 87
  301. integer height = 52
  302. end type
  303. event constructor;THIS.FillColor = 14215660
  304. THIS.LineColor = 14215660
  305. THIS.X = -1
  306. THIS.Y = -1
  307. THIS.Height = ln_bar.BeginY - 5
  308. end event