以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何记录登录用户双击了某一列的某一行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88979)

--  作者:天若千颖
--  发布时间:2016/8/12 17:27:00
--  如何记录登录用户双击了某一列的某一行
如题,数据表A是存放资料的表,里面有两列:列一  列二,列一是文件名,列二是该文件存放的地址,用户在列二中双击鼠标,则直接打开文件,如果选中列二中的某一行,按住键盘Alt+S 键的话,则直接另存文件。也就是这里提到的:http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=87906&replyID=&skin=1

问题来了:如果有登录用户在表A的列二中双击打开或者用键盘Alt+S键保存了某一行的内容,则在表B中记录以下信息:

当前的用户名,当前的时间,用户操作的行对应的列一种的信息。

--  作者:天若千颖
--  发布时间:2016/8/12 17:30:00
--  
表A的双击事件:
If User.IsRole("资料下载") Then \'如果用户具有资料下载权限,则执行
If e.Col.Name = "文件名称及链接" Then
    If e.Row.IsNull("文件名称及链接") = False Then
        e.cancel = True
        Dim c As Col = e.Col
        Dim ftp As FTPClient = c.DataCol.FTPClient
        Dim path As String = ProjectPath & "RemoteFiles\\" & FileSys.GetName(e.Row(c.Name))
        ftp.Download(e.Row(c.Name), path, True)
        Dim proc As new Process
        proc.File = path
        proc.Start
    End If
End If
Else
    MessageBox.Show("你没有打开资料的权限!")
End If

表A的键盘事件:
If User.IsRole("资料下载") Then \'如果用户具有资料下载权限,则执行
If e.Alt = True AndAlso e.KeyCode = Keys.S AndAlso e.Table.Current IsNot Nothing Then
If e.Table.Current Is Nothing Then Return
Dim c As Col = e.Table.Cols(e.Table.ColSel)
If c.name = "文件名称及链接" Then
    Dim dlg As new SaveFileDialog
    dlg.FileName = FileSys.GetName(e.Table.Current(c.Name))
    If dlg.ShowDialog = DialogResult.OK Then
        e.cancel = True
        Dim ftp As FTPClient = c.DataCol.FTPClient
        Dim path As String = ProjectPath & "RemoteFiles\\" & FileSys.GetName(e.Table.Current(c.Name))
        ftp.Download(e.Table.Current(c.Name), path, True)
        
        FileSys.CopyFile(path, dlg.FileName, True)
        msgbox("另存成功")
    End If
End If
End If
Else
    MessageBox.Show("你没有资料下载的权限!")
End If

--  作者:大红袍
--  发布时间:2016/8/12 17:57:00
--  
 msgbox(user.name & " " & e.Table.Current("第一列") & " " & date.Now)
--  作者:天若千颖
--  发布时间:2016/8/12 20:59:00
--  
 谢谢红袍老师,已经完美解决。