以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  ReadOnly问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=125507)

--  作者:douglas738888
--  发布时间:2018/9/29 17:05:00
--  ReadOnly问题

请教老师,下面代码在控件的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


--  作者:有点蓝
--  发布时间: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
--  发布时间:2018/9/29 17:15:00
--  

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

 


--  作者:有点蓝
--  发布时间: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
--  发布时间:2018/9/29 17:28:00
--  

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

 

都是禁止编辑

 

 

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

--  作者:有点蓝
--  发布时间:2018/9/29 17:35:00
--  
弹出False 说明名称肯定不一致,可能有空格换行符等

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

--  作者:douglas738888
--  发布时间: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


--  作者:有点蓝
--  发布时间:2018/9/30 8:46:00
--  
后台数据库,如果列类型是char,请改为nvarchar,然后循环所有行,清理一下空格