今天在蓝老师的帮助下,把我使得了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