uo_msg_lv.sru 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. $PBExportHeader$uo_msg_lv.sru
  2. forward
  3. global type uo_msg_lv from listview
  4. end type
  5. end forward
  6. global type uo_msg_lv from listview
  7. integer width = 485
  8. integer height = 280
  9. integer textsize = -9
  10. integer weight = 400
  11. fontcharset fontcharset = gb2312charset!
  12. fontpitch fontpitch = variable!
  13. string facename = "宋体"
  14. long textcolor = 33554432
  15. borderstyle borderstyle = stylelowered!
  16. string largepicturename[] = {"p15drive_fdd.ico","p45workgroup.ico"}
  17. long largepicturemaskcolor = 536870912
  18. long smallpicturemaskcolor = 536870912
  19. long statepicturemaskcolor = 536870912
  20. event ue_runfj ( )
  21. event ue_saveas ( )
  22. end type
  23. global uo_msg_lv uo_msg_lv
  24. type variables
  25. long ins_cur_fjid//收到信息当前行附件id
  26. string ins_cur_fjname//收到信息当前行附件名
  27. long uo_ins_msgid
  28. string fjfilepathname='fjtemp'//附件下载临时文件夹默认为fjtemp
  29. uo_transmsg uo_msg_downfj
  30. end variables
  31. event ue_runfj();this.triggerevent(doubleclicked!)
  32. end event
  33. event ue_saveas();//附件另存为
  34. Integer i
  35. Long ls_i,ls_j,ls_newrow,ls_filesize
  36. Blob ls_filedata
  37. String Pathname,ls_filename
  38. String errmsg,arg_msg
  39. String ls_filetypename
  40. Long pos1,lrow,rslt
  41. String ls_para,ls_downarg[]
  42. Pathname = ins_cur_fjname
  43. //超链接时保存成html文件****************************************
  44. Long ls_fjtype//0时为附件,1时为超链接
  45. SELECT Sys_admsg_fj.Filetype
  46. INTO :ls_fjtype
  47. FROM Sys_admsg_fj
  48. WHERE Sys_admsg_fj.fjid = :ins_cur_fjid;
  49. IF sqlca.SQLCode <> 0 THEN
  50. MessageBox('系统提示','因网络或其它原因查询附件信息失败~r~n'+sqlca.SQLErrText)
  51. RETURN
  52. END IF
  53. IF ls_fjtype = 1 THEN
  54. Pathname = '超链接'
  55. i = GetFileSaveName("另存为",Pathname,ls_filename,"*","*.html,*.html")
  56. IF i = 1 AND Trim(Pathname) <> '' THEN
  57. IF f_blobtofile(Pathname,Blob('<meta http-equiv="refresh" content="0;url='+ins_cur_fjname+'">'),errmsg) = 0 THEN
  58. MessageBox('系统提示',errmsg)
  59. RETURN
  60. ELSE
  61. MessageBox('系统提示','链接保存成功!'+'~r~n'+'保存路径:'+Pathname)
  62. END IF
  63. END IF
  64. RETURN
  65. END IF
  66. //*************************************************************
  67. pos1 = Pos(ins_cur_fjname,'.')
  68. IF pos1 > 0 THEN
  69. ls_filetypename = Mid(ins_cur_fjname,pos1 + 1)
  70. i = GetFileSaveName("另存为",Pathname,ls_filename,"*","*."+ls_filetypename+",*."+ls_filetypename)
  71. ELSE
  72. ls_filetypename = ''
  73. i = GetFileSaveName("另存为",Pathname,ls_filename,"*","*.*,*.*")
  74. END IF
  75. IF i = 1 AND Trim(Pathname) <> '' THEN
  76. IF uo_msg_downfj.f_down_fj(ins_cur_fjid,ins_cur_fjname,ls_filedata,arg_msg) = 0 THEN
  77. MessageBox('系统提示',arg_msg)
  78. RETURN
  79. END IF
  80. IF f_blobtofile(Pathname,ls_filedata,errmsg) = 0 THEN
  81. MessageBox('系统提示',errmsg)
  82. RETURN
  83. ELSE
  84. MessageBox('系统提示','附件保存成功!'+'~r~n'+'保存路径:'+Pathname)
  85. END IF
  86. END IF
  87. end event
  88. on uo_msg_lv.create
  89. end on
  90. on uo_msg_lv.destroy
  91. end on
  92. event doubleclicked;//附件下载并打开
  93. Integer i
  94. Long ls_i,ls_j,ls_newrow,ls_filesize
  95. Blob ls_filedata
  96. String Pathname,ls_filename
  97. String errmsg,arg_msg
  98. String ls_filetypename
  99. Long pos1,lrow,rslt
  100. String ls_para,ls_downarg[]
  101. listviewitem l_lvi
  102. //取附件信息
  103. IF Index > 0 THEN
  104. THIS.GetItem( Index, l_lvi)
  105. ins_cur_fjid = l_lvi.Data
  106. ins_cur_fjname = l_lvi.Label
  107. END IF
  108. //超链接用ie打开**************************************
  109. Long ls_fjtype//0时为附件,1时为超链接
  110. SELECT Sys_admsg_fj.Filetype
  111. INTO :ls_fjtype
  112. FROM Sys_admsg_fj
  113. WHERE Sys_admsg_fj.fjid = :ins_cur_fjid;
  114. IF sqlca.SQLCode <> 0 THEN
  115. MessageBox('系统提示','因网络或其它原因查询附件信息失败~r~n'+sqlca.SQLErrText)
  116. RETURN
  117. END IF
  118. IF ls_fjtype = 1 THEN
  119. Run('explorer.exe '+ins_cur_fjname,Normal!)
  120. RETURN
  121. END IF
  122. //*******************************************************
  123. //下载附件并打开
  124. Pathname = sys_cur_path+fjfilepathname+'\'+ins_cur_fjname
  125. IF Trim(Pathname) <> '' THEN
  126. IF uo_msg_downfj.f_down_fj( ins_cur_fjid, ins_cur_fjname, ls_filedata, arg_msg) = 0 THEN
  127. MessageBox('系统提示',arg_msg)
  128. RETURN
  129. END IF
  130. IF f_blobtofile(Pathname,ls_filedata,errmsg) = 0 THEN
  131. MessageBox('系统提示',errmsg)
  132. RETURN
  133. ELSE
  134. //打开附件
  135. String lsNull
  136. ShellExecute32( Handle(THIS), lsNull, Pathname, lsNull, lsNull, 1 )
  137. END IF
  138. END IF
  139. end event
  140. event rightclicked;Long ls_fjid
  141. String ls_fjname
  142. listviewitem l_lvi
  143. IF Index > 0 THEN
  144. THIS.GetItem( Index, l_lvi)
  145. ls_fjid = l_lvi.Data
  146. ls_fjname = l_lvi.Label
  147. ins_cur_fjid = l_lvi.Data
  148. ins_cur_fjname = l_lvi.Label
  149. m_dfc_msg dmPopupMenu
  150. String menustr,ls_level
  151. menustr = "Text=另存为~tEvent=ue_saveas"
  152. menustr = menustr+"|"+"Text=打开附件~tEvent=ue_runfj"
  153. IF Len(Trim(menustr)) <> 0 THEN
  154. dmPopupMenu = CREATE m_dfc_msg
  155. dmPopupMenu.mf_buildmenu( THIS, menustr)
  156. dmPopupMenu.mf_popmenu()
  157. DESTROY dmPopupMenu
  158. END IF
  159. END IF
  160. end event