以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 不取其他表已经被锁定的行 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=175686) |
|
-- 作者:wukangppbb -- 发布时间:2022/3/15 14:32:00 -- 不取其他表已经被锁定的行 某列用了列表项目,从其他表取值,怎么设置不取其他表已经被锁定的行的值? |
|
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2022/3/15 17:13:00 -- 下面这句我写在DataColChanging 里面好像没效果 下面这句我写在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
|
|
-- 作者:有点蓝 -- 发布时间:2022/3/15 17:20:00 -- 表事件里不要使用Current
|
|
-- 作者:wukangppbb -- 发布时间:2022/3/16 17:26:00 -- 写在DataColChanging里面没效果 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 |
|
-- 作者:有点蓝 -- 发布时间:2022/3/16 17:30:00 -- 要达到什么效果? |
|
-- 作者:wukangppbb -- 发布时间:2022/3/17 9:46:00 -- 无法提示 “内控模块”列属于B表,“内控模块名称”列属于A表,A表存在被锁定的行,B表能找到A表存在被锁定的行,但是选择的时候,无法提示“模块已被锁定行,无法被评估?”。 |
|
-- 作者:有点蓝 -- 发布时间:2022/3/17 9:53:00 -- 这个意思和您写的代码对不上号。换个方式,请详细描述一下要做什么功能? |
|
-- 作者:wukangppbb -- 发布时间:2022/3/17 10:07:00 -- 简单一点的意思就是:A表的列内容来自B表的列,但是B表列存在被锁定的行,A表的列内容取值B表列内容,取值B表被锁定的行的时候提示不能选定。 “内控模块”列属于风险数据库表,“内控模块名称”列属于内控模块表,内控模块表存在被锁定的行, 风险数据库表“内控模块”列取值于内控模块表“内控模块名称”列,但是选择的时候,需要提示“模块已被锁定行,无法被评估?”。 MainTableChanged如果这么写,好像也可以: If MainTable.Name = "风险数据库" Then Tables("风险数据库").Cols("内控模块").Combolist = DataTables("内控模块").GetComboListString("内控模块名称") End If 但是怎么提示“模块已被锁定行,无法被评估?”
|
|
-- 作者:有点蓝 -- 发布时间:2022/3/17 10:15:00 -- 如果是要控制不能选择锁定的下拉项目,那就应该显示下拉项目的时候就排除掉锁定的项目,不显示在下拉列表中供选择,请参考2楼的用法 |