以文本方式查看主题 - 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 -- 谢谢红袍老师,已经完美解决。 |