以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]全局表事件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144056)

--  作者:天一生水
--  发布时间:2019/12/9 21:44:00
--  [求助]全局表事件
老师好!
我想设置所有表的图片列,如果添加图片,就存放在:  ”ProjectPath & "Reports\\" & [当前表名] ”    的目录下;
这种代码怎么写?
请老师指教,谢谢!

--  作者:有点蓝
--  发布时间:2019/12/9 22:21:00
--  
http://www.foxtable.com/webhelp/topics/2209.htm

只能指定到存放目录的子目录,如果没有设置存放目录则默认是Attachments
e.SubFolder = e.DataTable.Name

如果是ftp无法通过表事件处理,只能自己调用FtpClient处理。

--  作者:天一生水
--  发布时间:2019/12/10 21:26:00
--  
老师好!
我在全局表事件BeforeAttachFile写入下列代码,没起作用。什么原因?

If e.DataCol.ExtendType = ExtendTypeEnum.Images Then
    e.SubFolder = e.DataTable.Name
End If


--  作者:有点蓝
--  发布时间:2019/12/10 21:53:00
--  
全局表事件BeforeAttachFile启用了吗?


--  作者:天一生水
--  发布时间:2019/12/10 22:36:00
--  
谢谢蓝老师!
启用后可以了。

但是同步删除目录中的附件不起作用,什么原因?
全局表BeforeDeleteFile事件
If e.DataCol.ExtendType = ExtendTypeEnum.Images Then
    e.DataCol.AutoDeleteAttachFile = True           \'允许同步删除图片
End If

项目Initialize事件
For Each dt As DataTable In DataTables
    dt.GlobalHandler.BeforeAttachFile = True     ’启用新增附件事件
    dt.GlobalHandler.BeforeDeleteFile = True     ’启用删除附件事件
Next


--  作者:有点蓝
--  发布时间:2019/12/10 22:52:00
--  
自动删除附件功能到列属性设置即可:http://www.foxtable.com/webhelp/topics/0088.htm,或者到afteropenproject事件调用一次即可,不是放到BeforeDeleteFile事件使用的。同时自动删除附件功能需要调用文件管理菜单的删除按钮才有作用的,比如按del键清除单元格数据是没有用的。

同时BeforeDeleteFile是删除文件事件,不是删除单元格数据事件,按del键清除单元格数据也是不会触发的。应该到DataRowDeleting事件写代删除文件:http://www.foxtable.com/webhelp/topics/0338.htm