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


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

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

帅哥哟,离线,有人找我吗?
天一生水
  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


加好友 发短信
等级:五尾狐 帖子: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


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


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

老师,遇到个问题:

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


 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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几个多层表头相同的列值要清除,能否简化一下代码?

谢谢!


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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/6/6 20:30:00 [显示全部帖子]

老师,我在记录窗口把多层标题的第一层缩减后,见图1,2,全局代码怎么修改?
谢谢!

Tables("EMS编辑_Table1").Cols("文书类别_受理案件通知书").ShortCaption = "受理案件通知书" ' 指定邮政编码列的缩写标题
Tables("EMS编辑_Table1").Cols("文书类别_应诉或参加诉讼通知书").ShortCaption = "应诉或参加诉讼通知书" ' 指定邮政编码列的缩写标题
......

全局代码:记录窗口双击
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("EMS编辑").Current '改为自己的表名
    If r1 IsNot Nothing Then
        r1(r(0)) = "√"
    End If
End If
End Sub

图片点击可在新窗口打开查看此主题相关图片如下:image 1.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:image 2.jpg
图片点击可在新窗口打开查看




 回到顶部