以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  多文件列,路径修改方法?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=74386)

--  作者:yancheng
--  发布时间:2015/9/9 21:51:00
--  多文件列,路径修改方法?
表,施工合同,DataColChanged,代码如下。在处理,多文件列为单个文件时没有问题。处理多个文件,出错。如下:

Select Case e.DataCol.Name
    Case "合同名称"
图片点击可在新窗口打开查看此主题相关图片如下:111121.jpg
图片点击可在新窗口打开查看
        If e.DataRow.Isnull("合同预算文件") = False  Then
            e.DataRow("合同预算文件") = "项目\\" & e.NewValue & "\\合同管理\\预算文件\\合同预算文件\\" & filesys.GetName(e.DataRow("合同预算文件"))
        End If
        If e.DataRow.Isnull("合同结算文件") = False  Then
            e.DataRow("合同结算文件") = "项目\\" & e.NewValue & "\\合同管理\\结算文件\\合同结算文件\\" & filesys.GetName(e.DataRow("合同结算文件"))
        End If
        If e.DataRow.Isnull("合同名称") = False And  e.DataRow.Isnull("合同预算文件") = False Or e.DataRow.Isnull("合同结算文件") = False Then
            If FileSys.DirectoryExists(ProjectPath & "Attachments\\" & "项目\\" & e.newValue)  Then
                Return
            Else
                FileSys.RenameDirectory(ProjectPath & "Attachments\\" & "项目\\" & e.OldValue,e.NewValue)
            End If
        End If
End Select



错误所在事件:表,施工合同,DataColChanged
详细错误信息:
调用的目标发生了异常。
路径中具有非法字符。

[此贴子已经被作者于2015/9/9 21:53:46编辑过]

--  作者:大红袍
--  发布时间:2015/9/9 21:58:00
--  

循环每一个文件

 

If e.DataRow.Isnull("合同结算文件") = False  Then
    Dim str As String = ""
    For Each file As String In e.DataRow.Lines("合同结算文件")
        str &= "项目\\" & e.NewValue & "\\合同管理\\结算文件\\合同结算文件\\" & filesys.GetName(file) & vbcrlf
    Next
    e.DataRow("合同结算文件") = str
End If