以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]图片复制  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=112977)

--  作者:江南小镇
--  发布时间:2018/1/5 22:57:00
--  [求助]图片复制

老师,下面代码不能正常复制图片,有时候可以的有时候就复制不了。

 

 

If e.DataCol.Name = "票据号码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("票据原件") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("应收款").Find("[票据号码] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing
            e.DataRow("票据原件") = dr("票据原件")
            Dim path As String
            If DataTables("应收款").DataCols("票据原件").DefaultFolder  > "" Then
                path = DataTables("应收款").DataCols("票据原件").DefaultFolder.trim("\\")
            Else
                path = ProjectPath & "Attachments"
            End If
            Dim path2 As String
            If e.DataTable.DataCols("票据原件").DefaultFolder > "" Then
                path2 = e.DataTable.DataCols("票据原件").DefaultFolder.trim("\\")
            Else
                path2 = ProjectPath & "Attachments\\"
            End If
            For Each s As String In e.DataRow.Lines("票据原件")
                If FileSys.FileExists(path & "\\" & s) Then
                    FileSys.CopyFile(path & "\\" & s, path2 & "\\" & s, True)
                    If FileSys.FileExists(path2 & "\\" & s) = False Then
                        msgbox("复制失败")
                    End If
                End If
            Next

        End If
    End If
End If

 

列属性想用代码来设置包括单元格小按钮。下面就是"票据原件"列的属性。


图片点击可在新窗口打开查看此主题相关图片如下:图像 2.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/1/5 22:59:08编辑过]

--  作者:有点蓝
--  发布时间:2018/1/5 23:15:00
--  
看看实际的文件路径
For Each s As String In e.DataRow.Lines("票据原件")
msgbox(path & "\\" & s)
msgbox(path2 & "\\" & s)
                If FileSys.FileExists(path & "\\" & s) Then
                    FileSys.CopyFile(path & "\\" & s, path2 & "\\" & s, True)
                    If FileSys.FileExists(path2 & "\\" & s) = False Then
                        msgbox("复制失败")
                    End If
                End If
            Next

--  作者:江南小镇
--  发布时间:2018/1/6 8:37:00
--  
以下是引用有点蓝在2018/1/5 23:15:00的发言:
看看实际的文件路径
For Each s As String In e.DataRow.Lines("票据原件")
msgbox(path & "\\" & s)
msgbox(path2 & "\\" & s)
                If FileSys.FileExists(path & "\\" & s) Then
                    FileSys.CopyFile(path & "\\" & s, path2 & "\\" & s, True)
                    If FileSys.FileExists(path2 & "\\" & s) = False Then
                        msgbox("复制失败")
                    End If
                End If
            Next
 


图片点击可在新窗口打开查看此主题相关图片如下:图像 2.png
图片点击可在新窗口打开查看

老师,两个被复制的路径不同。


--  作者:有点蓝
--  发布时间:2018/1/6 9:15:00
--  
存储位置没有设置好,所以DefaultFolder是空的。检查列属性或者图片控件的设置。

如果是sqltable要重新在窗口里设置DefaultFolder

--  作者:江南小镇
--  发布时间:2018/1/6 9:49:00
--  
Dim fm As WinForm.PictureViewer = e.Form.Controls("PictureViewer1")
fm.ManagerCommand.Visible = False
fm.SaveAsCommand.Visible = False
fm.FullViewCommand.Visible = False                   \'全屏
fm.StretchCommand.Visible = False                    \'缩放
e.Form.Controls("PictureViewer1").BackColor = Color.DarkGray
Dim obj As object = e.Form.Controls("PictureViewer1").basecontrol.Controls(0)
obj.SplitterDistance = 250
For Each o As object In obj.panel2.controls("FlowLayoutPanel2").Controls
    o.Font = new Font("微软雅体", 18)
Next

老师,下面是被复制图片的存储路径
DataTables("应付款").DataCols("票据原件").DefaultFolder = "H:\\蓝峰管理\\Attachments\\采购凭证\\采购付款票据"

--  作者:有点蓝
--  发布时间:2018/1/6 9:53:00
--  
控件的设置要和列属性的设置一致

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看


--  作者:江南小镇
--  发布时间:2018/1/6 10:28:00
--  
老师,这样可以了,我想用代码来设置。又要烦老师了。
--  作者:有点蓝
--  发布时间:2018/1/6 10:37:00
--  

在窗口的AfterLoad事件,写代码,如

 

DataTables("应付款").DataCols("票据原件").DefaultFolder = "H:\\蓝峰管理\\Attachments\\采购凭证\\采购付款票据"


--  作者:江南小镇
--  发布时间:2018/1/6 10:46:00
--  
以下是引用有点蓝在2018/1/6 10:37:00的发言:

在窗口的AfterLoad事件,写代码,如

 

DataTables("应付款").DataCols("票据原件").DefaultFolder = "H:\\蓝峰管理\\Attachments\\采购凭证\\采购付款票据"

老师,上面代码已经设置了没用


--  作者:有点蓝
--  发布时间:2018/1/6 10:53:00
--  
放到窗口的AfterLoad事件

2个列都要设置