Foxtable(狐表)用户栏目专家坐堂 → [求助]分项目存储附件


  共有3400人关注过本帖树形打印复制链接

主题:[求助]分项目存储附件

帅哥哟,离线,有人找我吗?
chnfo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]分项目存储附件  发帖心情 Post By:2015/3/23 16:33:00 [只看该作者]

局域网使用。管理多个项目,需要上传附件,但每个项目都有月报告,月份肯定有重名的。如何在上传附件时:1.在attachments下增加项目子目录,把这个项目的附件放到这个项目下?2.上传附件时,自动读取附件名,放到名称列,3.限制一行只能上传一个附件

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/3/23 16:38:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2015/3/23 17:23:00 [只看该作者]

如果一次添加多个附件,如何解析成一个个的,分别增加成各自的行呢?

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/3/23 17:26:00 [只看该作者]

BeforeAttachFile 事件每个都会触发一次的

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2015/3/23 17:31:00 [只看该作者]

我是想在表中每个附件占一行

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2015/3/23 17:32:00 [只看该作者]

一次上传多个,每个一行显示。
比如一个项目有多份设计图(图名不重复),希望一次性添加多份附件(如图纸A,图纸B,图纸C)的时候,能自动在表中添加三行,分别显示名称图纸A、图纸B、图纸C

[此贴子已经被作者于2015/3/23 20:57:36编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/3/24 8:58:00 [只看该作者]

遍历选中的文件,添加行


并且自行编码复制文件到指定路径

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/3/24 9:57:00 [只看该作者]

1、自己做个增加文件的按钮:
 
Dim dlg As New OpenFileDialog
dlg.MultiSelect = True
If dlg.ShowDialog = DialogResult.OK Then
    For Each fl As String In dlg.FileNames
          Dim dr as Datarow = dataTables("表名").AddNew()
           dr("列名") = FileSys.GetName(fl)
    Next
End If
 
2、或者这样编写BeforeattatchFile:
 
 
Select Case e.DataCol.Name
    Case "图片" '如果在图片列插入文件
       if e.datarow.Isnull("图片") = False then '如果原来有文件
           e.cance =true
           dim dr as datarow = e.datatable.AddNew()
           dr("图片") = e.FileName
       end if
End Select

大概如此,细节自己调整


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2015/3/24 14:55:00 [只看该作者]

试了哈,貌似有点问题,详见表事件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:关于上传附件的问题.rar


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/3/24 15:14:00 [只看该作者]

没有复制,你e.Cancel了,文件不会自动添加到目标文件夹,需要用代码复制过去:
 
Select Case e.DataCol.Name
    Case "UploadAnnex"
        If e.DataRow.IsNull("UploadAnnex") = False Then '如果上传附件列不为空,表示这一行有数据
            e.Cancel = True
            e.SubFolder = StoreFile & "\" & PID '设置存放附件路径,它在共享文件夹里
            Dim cs As String = StoreFile  & "\" & PID  & "\" & e.FileName
            If FileSys.FileExists(cs) = False  Then '如果服务器不存在这个文件
                Dim dr As DataRow = e.DataTable.AddNew
                dr("UploadAnnex") = e.FileName  
                dr("Title") = e.FileName
                Filesys.CopyFile(e.SourceFolder & e.FileName ,cs,True) '复制文件
            End If
        End If
End Select


 回到顶部
总数 18 1 2 下一页