Foxtable(狐表)用户栏目专家坐堂 → [求助]如何自动添加多文件


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

主题:[求助]如何自动添加多文件

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


加好友 发短信
等级:婴狐 帖子:14 积分:167 威望:0 精华:0 注册:2013/4/30 10:37:00
[求助]如何自动添加多文件  发帖心情 Post By:2013/5/8 11:51:00 [只看该作者]

将某列设为多文件,如何通过代码添加多个文件?目前自己只能添加一个

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/5/8 13:45:00 [只看该作者]

单元格多行内容的处理

我们知道,多文件列可以管理多个文件,图片列可以管理多个图片。
也就是说,这些列的单元格,可能会有多行的内容,每行对应一个文件。

DataRow提供了一个Lines属性,该属性以字符集合的形式返回或设置单元格内容。
Lines属性的出现,可以让我们以非常轻松的方式处理单元格的多行文本内容。

示例一

假定表中有两列,列名分别为“文件”和“数量”,前者是多文件型,希望在每行的数量列统计出文件的数量。
为此,可将DataColChanged事件代码设置为:

If e.DataCol.name = "文件" Then
Dim fls As List(of String)
fls = e.DataRow.Lines(
"
文件")
e.DataRow("数量") = fls.Count
End
If

示例二

如果希望每行的文件列至少保留一个文件,也就是当只剩下一个文件的时候,禁止删除文件。
为此可以将BeforeDeleteFile事件代码设置为:

If e.DataCol.name = "文件" Then
If e.DataRow.Lines(
"
文件").Count = 1 Then
MessageBox.Show("至少要保留一个文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
e.cancel = True
End
If

End
If

示例三

也可以直接以字符集合的形式给单元格赋值,例如从目录“c:\data”下取得所有文件,赋值给文件列:

Dim lst As New List(of String)
For Each
fl As String In FileSys.GetFiles("c:\data")
lst.Add(fl)
Next

Tables(
"A").Current.DataRow.Lines("文件") = lst

再例如,从文件列中删除一个文件:

Dim lst As New List(of String)
lst =
Tables("A").Current.DataRow.Lines("文件")
lst.Remove(
"明细.xls")
Tables(
"A").Current.DataRow.Lines("文件") = lst

或者增加一个文件:

Dim lst As New List(of String)
lst =
Tables("A").Current.DataRow.Lines("文件")
lst.Add(
"明细.xls")
Tables(
"A").Current.DataRow.Lines("文件") = lst

有了Lines属性,我们可以非常灵活地处理文件列和图片列了。


 回到顶部