以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教:代码应该写到表属性里还是控件事件里?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=50739)

--  作者:bahamute
--  发布时间:2014/5/12 15:51:00
--  请教:代码应该写到表属性里还是控件事件里?
对文件列,想实现从文件管理器里选择后,自动实现重命名,并复制到局域网特定文件夹,
根据帮助,从表属性设置如下代码
Dim dr As DataRow = e.DataRow
If
 dr.IsNull("身份证号码")  Then
    MessageBox.Show("
请先输入身份证号码!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    e.Cancel = True

Else

    e.FileName = dr("身份证号码") & ".jpg"

End
 If
如果从表里直接操作,并无问题。

但如果从窗口的文件管理器操作,问题就来了:
1、文件没有重命名;
2,没有复制到局域网指定文件夹,而是到了项目Attachments文件夹。
该如何解决?
还有一个疑问:存放目录到底该写到列属性还是控件属性里?还是二者都写上?

--  作者:Bin
--  发布时间:2014/5/12 16:00:00
--  
两者都要写上
--  作者:bahamute
--  发布时间:2014/5/12 16:33:00
--  

问题是文件管理器控件没有BeforeAttachFile属性,

这段代码该如何写?

Dim dr As DataRow = e.DataRow
If
 dr.IsNull("身份证号码")  Then
    MessageBox.Show("
请先输入身份证号码!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    e.Cancel = True

Else

    e.FileName = dr("身份证号码") & ".jpg"

End
 If


--  作者:Bin
--  发布时间:2014/5/12 16:34:00
--  
代码写到表事件即可.  属性两者都要设置
--  作者:bahamute
--  发布时间:2014/5/12 16:46:00
--  
重命名还是有问题!
这是表事件:
Dim ext As String 
ext = e.FileName.SubString(e.FileName.LastIndexof(".")) 
Dim dr As DataRow = e.DataRow
If dr.IsNull("上报单位")=False AndAlso dr.IsNull("年月")=False Then
    e.FileName = dr("上报单位") & "-" & dr("年月") & "自查报告" & ext
End If
这是列属性存放目录
\\\\HLRB-PC\\share$\\NKdata\\月销售汇总
这是控件存放目录设置
\\\\HLRB-PC\\share$\\NKdata\\月销售汇总
从表操作结果:
1、文件成功重命名;
2,复制到了指定文件夹
从窗口操作结果:
1、文件没有重命名;
2,复制到指定文件夹


--  作者:Bin
--  发布时间:2014/5/12 16:49:00
--  
到事件里,添加messagebox.show看看是否触发事件

实在不行上例子.

--  作者:bahamute
--  发布时间:2014/5/12 16:50:00
--  
感觉文件管理器的AddCommand属性绕过了表事件。
--  作者:有点甜
--  发布时间:2014/5/12 17:19:00
--  
以下是引用bahamute在2014-5-12 16:50:00的发言:
感觉文件管理器的AddCommand属性绕过了表事件。

 

测试,并没有不执行 BeforeAttachFile 事件,你再试试吧


--  作者:bahamute
--  发布时间:2014/5/12 17:27:00
--  
sorry,是我的问题。
从表里操作,填报人不为空,从控件操作,忘了判断,导致代码未执行。