Foxtable(狐表)用户栏目专家坐堂 → 不取其他表已经被锁定的行


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

主题:不取其他表已经被锁定的行

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


加好友 发短信
等级:小狐 帖子:358 积分:2579 威望:0 精华:0 注册:2020/7/24 10:30:00
不取其他表已经被锁定的行  发帖心情 Post By:2022/3/15 14:32:00 [只看该作者]

某列用了列表项目,从其他表取值,怎么设置不取其他表已经被锁定的行的值?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107661 积分:547620 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/15 15:16:00 [只看该作者]

http://www.foxtable.com/webhelp/topics/1457.htm

比如

If e.IsFocusCell Then '如果是焦点所在单元格
    
If e.Col.Name = "县市" Then '如果正在编辑的是县市列
        '从行政区域表提取该省市的县市作为列表项目

        e.Col.Combolist = 
DataTables("行政区域").GetComboListString("县市""_locked = false")
    
End If
End
 
If

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


加好友 发短信
等级:小狐 帖子:358 积分:2579 威望:0 精华:0 注册:2020/7/24 10:30:00
下面这句我写在DataColChanging 里面好像没效果  发帖心情 Post By:2022/3/15 17:13:00 [只看该作者]

下面这句我写在DataColChanging 里面好像没效果


Select Case e.DataCol.name
Case "模块"
Dim mk As String
If e.DataCol.Name= "模块" Then
mk = e.NewValue
Else
mk  = e.DataRow("模块名称")
End If
If mk > "" Then
If e.DataTable.Find("模块= '" & mk & "'") IsNot Nothing AndAlso Tables("模块").Current.DataRow.Locked  = True  Then
MessageBox.Show("模块已被锁定行,无法被评估?","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
e.Cancel = True
End If
End If
End Select

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107661 积分:547620 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/15 17:20:00 [只看该作者]

表事件里不要使用Current

If mk > "" Then
dim dr as datarow = e.DataTable.Find("模块= '" & mk & "'")
If  dr IsNot Nothing AndAlso dr.Locked  = True  Then
MessageBox.Show("模块已被锁定行,无法被评估?","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
e.Cancel = True
End If
End If
End Select


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


加好友 发短信
等级:小狐 帖子:358 积分:2579 威望:0 精华:0 注册:2020/7/24 10:30:00
写在DataColChanging里面没效果  发帖心情 Post By:2022/3/16 17:26:00 [只看该作者]

DataColChanging:


Select Case e.DataCol.name
Case "内控模块"
Dim nkmk As String
If e.DataCol.Name= "内控模块" Then
nkmk = e.NewValue
Else
nkmk  = e.DataRow("内控模块名称")
End If
If nkmk > "" Then
Dim dr As DataRow = e.DataTable.Find("内控模块= '" & nkmk & "'")
If  dr IsNot Nothing AndAlso dr.Locked  = True  Then
MessageBox.Show("模块已被锁定行,无法被评估?","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
e.Cancel = True
End If
End If
End Select

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107661 积分:547620 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/16 17:30:00 [只看该作者]

要达到什么效果?

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


加好友 发短信
等级:小狐 帖子:358 积分:2579 威望:0 精华:0 注册:2020/7/24 10:30:00
无法提示  发帖心情 Post By:2022/3/17 9:46:00 [只看该作者]

“内控模块”列属于B表,“内控模块名称”列属于A表,A表存在被锁定的行,B表能找到A表存在被锁定的行,但是选择的时候,无法提示“模块已被锁定行,无法被评估?”。

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107661 积分:547620 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/17 9:53:00 [只看该作者]

这个意思和您写的代码对不上号。换个方式,请详细描述一下要做什么功能?

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


加好友 发短信
等级:小狐 帖子:358 积分:2579 威望:0 精华:0 注册:2020/7/24 10:30:00
  发帖心情 Post By:2022/3/17 10:07:00 [只看该作者]

简单一点的意思就是:A表的列内容来自B表的列,但是B表列存在被锁定的行,A表的列内容取值B表列内容,取值B表被锁定的行的时候提示不能选定。


“内控模块”列属于风险数据库表,“内控模块名称”列属于内控模块表,内控模块表存在被锁定的行,
风险数据库表内控模块”列取值于内控模块表内控模块名称”列,但是选择的时候,需要提示“模块已被锁定行,无法被评估?”。

MainTableChanged如果这么写,好像也可以:
If MainTable.Name = "风险数据库" Then 
Tables("风险数据库").Cols("内控模块").Combolist = DataTables("内控模块").GetComboListString("内控模块名称")
End If

但是怎么提示“模块已被锁定行,无法被评估?

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107661 积分:547620 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/17 10:15:00 [只看该作者]

如果是要控制不能选择锁定的下拉项目,那就应该显示下拉项目的时候就排除掉锁定的项目,不显示在下拉列表中供选择,请参考2楼的用法

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