Foxtable(狐表)用户栏目专家坐堂 → [求助]记录窗口双击


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

主题:[求助]记录窗口双击

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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]记录窗口双击  发帖心情 Post By:2017/12/23 11:53:00 [只看该作者]

在窗口表的双击事件中,如果列名的开头是“文书类别_”,双击后,就在单元格打上"√"。

代码如下:

For Each c As Col In Tables("编辑_table1").Cols
    If c.name.startswith("文书类别_") Then
     e.Row(CurrentTable.Cols(CurrentTable.ColSel).name) = "√"
    End If
Next

 

因为列太多,我把这些列放入记录窗口中,是在窗口的afterload事件中生成的记录窗口。

我想在记录窗口实现上述双击效果,应该怎样写代码?

谢谢!


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


加好友 发短信
等级:超级版主 帖子:109406 积分:556686 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/12/23 12:04:00 [只看该作者]

需要手工绑定升级事件,参考:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=102193&skin=0

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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2017/12/23 12:38:00 [只看该作者]

加黑的这句代码怎么改?

绑定DoubleClick事件的代码放到窗口的timertick行吗?

 

1、全局代码

 

Public Sub TblBase_DoubleClick(ByVal sender As Object, ByVal e As C1.Win.C1FlexGrid.OwnerDrawCellEventArgs)
For Each c As Col In Tables("EMS编辑").Cols
    If c.name.startswith("文书类别_") Then
        e.Row.(CurrentTable.Cols(CurrentTable.ColSel).name) = "√"
    End If
Next
End Sub

-----------------------------

2、绑定DoubleClick事件

 

Dim brgd As C1.Win.C1FlexGrid.C1FlexGrid  = e.Form.Controls("RecordGrid1").basecontrol
AddHandler brgd.DoubleClick, AddressOf TblBase_DoubleClick
brgd.refresh


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


加好友 发短信
等级:超级版主 帖子:109406 积分:556686 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/12/23 14:23:00 [只看该作者]

全局
Public Sub TblBase_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs)
Dim r As C1.Win.C1FlexGrid.Row = sender.Rows(sender.Rowsel)
If r(0).startswith(文书类别_") Then
    sender.FinishEditing
    r(1) = "√"
End If
End Sub

绑定放到窗口afterload事件
Dim brgd As C1.Win.C1FlexGrid.C1FlexGrid  = e.Form.Controls("RecordGrid1").basecontrol
AddHandler brgd.DoubleClick, AddressOf TblBase_DoubleClick

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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2017/12/25 21:44:00 [只看该作者]

老师,遇到个问题:

在记录窗口双击后,添加了"√",但是数据表中没有变化,是何原因?


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


加好友 发短信
等级:超级版主 帖子:109406 积分:556686 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/12/25 22:38:00 [只看该作者]

全局代码只能写死表格了

Public Sub TblBase_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs)
Dim r As C1.Win.C1FlexGrid.Row = sender.Rows(sender.Rowsel)
If r(0).startswith("第一") Then
    sender.FinishEditing()
    Dim r1 As Row = Tables("表A").Current '改为自己的表名
    If r1 IsNot Nothing Then
        r1(r(0)) = "√"
    End If
End If
End Sub

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2017/12/25 23:00:00 [只看该作者]

另一个新问题,我有一个清除记录窗口文本的代码,把记录窗口的内容清除了,但是数据表没有跟着变,请老师再帮助看看,谢谢!        

Dim bctr = e.Form.Controls("RecordGrid1").BaseControl
For Each r As object In bctr.Rows
    r(1) = ""
Next


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


加好友 发短信
等级:超级版主 帖子:109406 积分:556686 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/12/25 23:01:00 [只看该作者]

去清除对应的表格的当前行,不要清除记录窗口

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2017/12/26 9:50:00 [只看该作者]

Dim str as string = tables("表A").current("文书类别_A")

Str = ” ”

Dim str1 as string = tables("表A").current("文书类别_B")

Str1 = ” ”

......

假如当前行有20几个多层表头相同的列值要清除,能否简化一下代码?

谢谢!


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/26 10:07:00 [只看该作者]

For Each c As Col In Tables("表A").cols
    If c.name.Contains("文书类别_") Then
        c.Table.Current(c.name) = Nothing
    End If
Next

 回到顶部
总数 12 1 2 下一页