Foxtable(狐表)用户栏目专家坐堂 → 自定义函数里面e.cancel 要转换成什么写法?


  共有2592人关注过本帖树形打印复制链接

主题:自定义函数里面e.cancel 要转换成什么写法?

帅哥哟,离线,有人找我吗?
ycwk
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1220 积分:8483 威望:0 精华:0 注册:2016/2/2 21:52:00
自定义函数里面e.cancel 要转换成什么写法?  发帖心情 Post By:2018/7/24 9:18:00 [显示全部帖子]

自定义函数里面e.cancel 要转换成什么写法?

 回到顶部
帅哥哟,离线,有人找我吗?
ycwk
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1220 积分:8483 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/7/24 9:41:00 [显示全部帖子]

比如在表事件keydown中,有如下代码,为了代码简洁,我想放到自定义函数中, 其中的e.cancel 在自定义函数中还可以继续使用吗?
  '按下delete键
   ElseIf e.KeyCode = Keys.Delete Then


   Dim Result As DialogResult
   Result = MessageBox.Show("是否确认删除?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
   If Result = DialogResult.Yes Then     '如果点击的是 ,则删除,否则不删除
     
  'msgbox(1)
    e.Cancel = True '且取消此次按键
    e.Table.FinishEditing
        '下载数据
        Dim ftp1 As new ftpclient
        ftp1.host="172.16.5.89"
        ftp1.Account = "administrator"
        ftp1.password = "Admin1234"
        ftp1.RootDir="/各表附件/文件协作表/"   
        'Dim str As String= r.DataRow.Lines(cname)

       ' Dim str_path=ProjectPath & "RemoteFiles\" & r("已接收文件")      '拼凑本地路径
       ' msgbox(str_path)
      '  If FileSys.FileExists(str_path) Then '如果本地文件已经存在
      '      FileSys.DeleteFile(str_path) '则删除之以便重新下载
      '  End If   

          If  ftp1.DeleteFile(r("附件"))  = True Then
            r("附件")=Nothing  '清空表格中显示的文件名
            msgbox("文件删除成功!")
          Else 
            msgbox("文件删除失败!")
          End If       
         r.Save
     Else
         '主动刷新当前表格,不然虽然取消了删除,但被删除单元格的内容会不见
         Dim t As Table = CurrentTable
         Dim temp As String = t.Filter
         t.DataTable.Load(False)     'false表示不要在执行加载之前执行 BeforSaveDatarow事件(如执行,则文件协作表中会把编辑者删掉)
         t.Filter = temp

     End If

 回到顶部
帅哥哟,离线,有人找我吗?
ycwk
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1220 积分:8483 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/7/24 10:06:00 [显示全部帖子]

问题二: 为什么下面这段代码,在执行else分支后,当前表格的  第一行会被清空,但刷新后又会再出来?    以前没有使用自定义函数的时候是正常的

     If e.KeyCode = Keys.Delete  Then       '按下del键    
           Dim Result As DialogResult
           Result = MessageBox.Show("是否确认删除?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
           If Result = DialogResult.Yes Then     '如果点击的是 ,则删除,否则不删除    
               e.Cancel = True '且取消此次按键          
               Functions.Execute("FtpProcess","fileDelete",TablePath,e.Table.name)    '后面两个参数用不上,但为了自定函数保持一致还是要写上
 ---->> Else
               '主动刷新当前表格,不然虽然取消了删除,但被删除单元格的内容会不见
               Dim t As Table = CurrentTable
               Dim temp As String = t.Filter
               t.DataTable.Load(False)     'false表示不要在执行加载之前执行 BeforSaveDatarow事件(如执行,则文件协作表中会把编辑者删掉)
               t.Filter = temp
           End If
      end if


 回到顶部
帅哥哟,离线,有人找我吗?
ycwk
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1220 积分:8483 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/7/24 11:29:00 [显示全部帖子]

我是想问 在自定义函数里面  想禁止当前行修改   用e.cancel=true 是不行的,要怎么改?

 回到顶部
帅哥哟,离线,有人找我吗?
ycwk
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1220 积分:8483 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/7/24 17:36:00 [显示全部帖子]

在表的keydown 事件中编写如下代码,经调试发现,是在msgbox(1) 后, 光标移到第一行后,该列的附件列内容才消失,难道 keydown 事件之后还执行了什么代码?

Dim cname As String = e.Table.cols(e.Table.colsel).name    
'Dim r As Row = e.Table.rows(e.Table.rowsel)
Dim TableName As String = e.Table.name
'msgbox(TableName)
Dim TablePath As String = "/各表附件/" & TableName & "/"

If user.Group="管理员" Then 
    If cname = "附件"  Then
       If  e.Control = True AndAlso e.KeyCode = Keys.V Then     '按下ctrl+V
           Functions.Execute("FtpProcess","fileupload",TablePath,e.Table.name,e)    '把e参数当作变量传进去
       ElseIf e.Control=True AndAlso e.keyCode =keys.C Then    '按下ctrl+c键             
           Functions.Execute("FtpProcess","filedownload",TablePath,e.Table.name,e)    '后面两个参数用不上,但为了自定函数保持一致还是要写上    '把e参数当作变量传进去
       ElseIf e.KeyCode = Keys.Delete  Then        '按下del键           
           Functions.Execute("FtpProcess","fileDelete",TablePath,e.Table.name,e)    '后面两个参数用不上,但为了自定函数保持一致还是要写上 '把e参数当作变量传进去
       End If
    End If   
End If  '如果 user.group="管理员" 结束
msgbox(1)

 回到顶部
帅哥哟,离线,有人找我吗?
ycwk
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1220 积分:8483 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/7/24 18:56:00 [显示全部帖子]

测试方法:1 首先要建一个FTP服务器,再新建一个名为“表A”的文件夹      根目录\各表附件\表A
              2 你随便复制一个文件,但文件名称必须为    "表A_ID12_文件名.docx"   (只能按ctrl+V键 复制在ID12的那行的"附件"列,否则会校验不通过)  ,复制成功后,然后按del键,弹出的提示选择“否” ,则第一行的附件的文字会被删除  
 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


 回到顶部