Foxtable(狐表)用户栏目专家坐堂 → ReadOnly问题


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

主题:ReadOnly问题

帅哥,在线噢!
douglas738888
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
ReadOnly问题  发帖心情 Post By:2018/9/29 17:05:00 [只看该作者]

请教老师,下面代码在控件的enter,不起作用,_UserName与审批人员是一致的也不能编辑?

 

Dim tb As WinForm.TextBox = e.Form.Controls("TextBox2")
Dim r As Row = Tables("窗口3_Table1").Current
If _UserName = r("送审_审批人员") Then        如果这里是 if _UserName = "张三" then 就能编辑
    tb.ReadOnly = BooleanEnum.False '允许编辑
Else
    tb.ReadOnly = BooleanEnum.True '禁止编辑
End If


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


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

Dim tb As WinForm.TextBox = e.Form.Controls("TextBox2")
Dim r As Row = Tables("窗口3_Table1").Current

msgbox(r("送审_审批人员")) '弹出的名称是否一致?

msgbox(_UserName)

If _UserName = r("送审_审批人员") Then        如果这里是 if _UserName = "张三" then 就能编辑
    tb.ReadOnly = BooleanEnum.False '允许编辑
Else
    tb.ReadOnly = BooleanEnum.True '禁止编辑
End If



 回到顶部
帅哥,在线噢!
douglas738888
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2018/9/29 17:15:00 [只看该作者]

老师,这个我原来也试过了,弹出的名字都是一致的

 


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


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

Dim tb As WinForm.TextBox = e.Form.Controls("TextBox2")
Dim r As Row = Tables("窗口3_Table1").Current

msgbox(_UserName = r("送审_审批人员")) '弹出true/false?

If _UserName = r("送审_审批人员") Then        如果这里是 if _UserName = "张三" then 就能编辑

msgbox(1)
    tb.ReadOnly = BooleanEnum.False '允许编辑
Else

msgbox(2)
    tb.ReadOnly = BooleanEnum.True '禁止编辑
End If


 回到顶部
帅哥,在线噢!
douglas738888
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2018/9/29 17:28:00 [只看该作者]

先弹出False   又弹出一个2,所有行,无论审批人员的名字与_UserName是否一致,对应的current行都弹出的是false 和2

 

都是禁止编辑

 

 

[此贴子已经被作者于2018/9/29 17:28:35编辑过]

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


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

弹出False 说明名称肯定不一致,可能有空格换行符等

msgbox(_UserName.length
msgbox(r("送审_审批人员").length) 

 回到顶部
帅哥,在线噢!
douglas738888
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2018/9/29 17:59:00 [只看该作者]

感谢老师,指导的很细心就是这个问题,如果length都是一样的值,就可以了。代码如下改就OK了

 

另外,再请教老师,是什么原因导致_UserName的length是2,而审批人员的length是10,都是正常输入姓名啊

难道是审批人员居中显示导致的吗?

 

Dim tb As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim r As Row = Tables("窗口18_Table1").Current
Dim st As String = r("送审_审批人员")
st = st.Trim() '字符转换删除空格
If _UserName = "" & st & "" Then
    tb.ReadOnly = BooleanEnum.False '允许编辑
Else
    tb.ReadOnly = BooleanEnum.True '禁止编辑
End If


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


加好友 发短信
等级:超级版主 帖子:106181 积分:540028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/9/30 8:46:00 [只看该作者]

后台数据库,如果列类型是char,请改为nvarchar,然后循环所有行,清理一下空格

 回到顶部