以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [分享]在查询窗口中查看上传的图片 给新人看的  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148270)

--  作者:huangfanzi
--  发布时间:2020/4/3 16:01:00
--  [分享]在查询窗口中查看上传的图片 给新人看的
今天在蓝老师的帮助下,把我使得了2年的项目中关于查看上传图片的功能优化了下,现在可以在查询窗口中显示上传的合同扫描件了
全局代码:
Public _Bmlm As String \'定义双击单元格所对应的表名与列名
Public _Mrlj As String \'定义默认路径

合同表BeforeAttachFile事件
Dim dr As DataRow = e.DataRow
If dr.IsNull("合同号")  Then
    MessageBox.Show("请先输入合同号!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    e.Cancel = True
Else
    Dim t As String = Format(Date.Now,"yyyyMMddhhmmss")
    e.FileName = _UserName & "-" & t & "-" & dr("合同号") & "." & e.FileName.SubString(e.FileName.LastIndexof(".") + 1)  ‘上传文件时生成一个由用户名+时间+合同号的文件名,这样可以防止由于同名而覆盖掉老文件,_UserName是人全局变量,用于记录当前登录用户的名字
End If

查询窗口中有一按钮与一个table控件
查询按钮:
Tables(e.Form.Name & "_Table1").Fill("S elect  合同号,扫描件 From {原料采购合同}  Where 扫描件 IS NOT NULL","ShcsErpSql",True)
table表控件 设置SQLQuery类型  DoubleClick表事件

If e.Col.name = "扫描件" AndAlso e.Row.isnull("扫描件") = False
    _Bmlm = e.Table.Name & "." & e.Col.Name
    _Mrlj = "\\\\SERVER-NEW\\ShcsErpSql文件目录$\\采购合同扫描件"
    DataTables(e.Table.Name).DataCols(e.Col.name).DefaultFolder = _Mrlj  \'指定文件的存储位置
    Forms("扫描件查看").show()
End If

扫描件查看窗口,就一个PictureViewer控件
窗口AfterLoad事件
Dim pv As WinForm.PictureViewer = e.Form.Controls("PictureViewer1") \'关闭PictureViewer的命令
pv.AddCommand.Visible = False
pv.DeleteCommand.Visible = False
pv.ClearCommand.Visible = False
pv.BindingField = _Bmlm  \'全局变量 表名列名 定义绑定字段

AfterClose
_Bmlm = Nothing
_Mrlj = Nothing


--  作者:有点蓝
--  发布时间:2020/4/3 16:15:00
--  
多谢分享!如果是给新人看的,建议做个例子发上来.