以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  增加图片  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=19868)

--  作者:bm
--  发布时间:2012/5/23 18:27:00
--  增加图片

请教各位高手下面的示例是增加一张图片的。如果要增加多张图片应该怎么改

利用文件监视器,还可以和第三方软件协同工作。
例如有个人事管理系统,希望第三方的拍照软件给员工拍照,希望拍好的照片以员工的工号作为文件名,并自动存入员工表的照片列。
假定拍照软件存放照片的目录是"c:\\photo",我们首先要监控此目录,在AfterOpenProject事件设置代码:

With FileWatcher
    .
Path = "c:\\Photo"
    .
Delay = 1000
   
.Enabled = True

End With

然后将FileCreated事件代码设置为:

Dim r As Row = Tables("员工").Current
r("照片") = r("工号") & ".jpg"
FileSys.CopyFile(e.FullPath, ProjectPath & "Attachments\\" & r("照片"),True)

这里假定照片是jpg格式。

最后在菜单或者窗口中加一个按钮,用于启动第三方拍照软件:

Dim Proc As New Process
Proc.File = "拍照程序的路径和名称"
Proc.Start()
Proc.
WaitForExit() \'等带拍照程序退出。


--  作者:小猪鑫鑫
--  发布时间:2012/5/23 19:19:00
--  
谢谢分享,学习
--  作者:程兴刚
--  发布时间:2012/5/23 19:43:00
--  
For i As Integer = 1 To n \'n为您需要的连拍此处
    Dim Proc As New Process
    Proc.File = "拍照程序的路径和名称"
    Proc.Start()
    Proc.WaitForExit() \'等带拍照程序退
    System.Threading.Thread.Sleep(2000) \'对于操作其他程序进行连拍,需要加上延时执行代码,此例延时2秒
Next

--  作者:程兴刚
--  发布时间:2012/5/23 19:50:00
--  

也许我没有明白您的意思,如果您是需要每拍摄一张照片,而保存多行,则将FileCreated事件代码设置为:

For i As Integer = 1 To n

    Dim r As Row = Tables("员工").Current

    r("照片") = r("工号") & ".jpg"

    datatables("员工").addnew()

next
FileSys.CopyFile(e.FullPath, ProjectPath & "Attachments\\" & r("照片"),True)