以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]窗口文本框和组合框不能修改内容[已解决]  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=33933)

--  作者:lipiti
--  发布时间:2013/5/27 13:53:00
--  [求助]窗口文本框和组合框不能修改内容[已解决]
[求助]窗口文本框和组合框不能修改内容[已解决]
数据表,可用使用PrepareEdit事件: e.Cancel = True \'那么禁止编辑,例如:
If e.Col.Name = "款项内容" Then \'如果修改的是标注列
    If e.Row("打印状态") = True Then \'如果已经有内容
        If _UserName <> "管理员" Then \'且用户不是管理员
            e.Cancel = True \'那么禁止编辑
        End If
    End If
End If

那么,这些数据绑定的窗口控件,例如:文本框 或 组合框 还是可以修改内容的,如何可以达到与数据表同样的禁止编辑的效果,
 If e.Row("打印状态") = True Then   文本框 或 组合框 的绑定数据内容不可修改呢?

图片点击可在新窗口打开查看此主题相关图片如下:窗口文本框和组合框不能修改内容.png
图片点击可在新窗口打开查看



[此贴子已经被作者于2013-5-27 22:12:25编辑过]

--  作者:XYT
--  发布时间:2013/5/27 14:11:00
--  

http://www.foxtable.com/help/topics/0749.htm

可以用这个

[此贴子已经被作者于2013-5-27 14:12:18编辑过]

--  作者:lipiti
--  发布时间:2013/5/27 16:14:00
--  

If e . Row "打印状态" ) = True Then \'如果已经有内容
    If _UserName <> "管理员" Then \'且用户不是管理员
        e.Form.Controls( "开票日期" ).ReadOnly = BooleanEnum. True \'那么禁止编辑
    End If
End If


其中代码 e . Row "打印状态" ) 表示错误,需要如何修改呢?
[此贴子已经被作者于2013-5-27 17:11:07编辑过]

--  作者:XYT
--  发布时间:2013/5/27 16:28:00
--  
你写在哪里?
--  作者:lipiti
--  发布时间:2013/5/27 16:38:00
--  
窗口的AfterLoad事件中设置代码

--  作者:XYT
--  发布时间:2013/5/27 17:01:00
--  

Dim r As Row = Tables("XX").Current

    If r("打印状态") = True Then

 If _UserName <> "管理员" Then \'且用户不是李丕体

        e.Form.Controls( "开票日期" ).ReadOnly = BooleanEnum. True \'那么禁止编辑
    End If
End If

--  作者:lipiti
--  发布时间:2013/5/27 17:11:00
--  
If Tables("收据信息").Current("打印状态")  = True Then \'如果已经有内容
    If _UserName <> "管理员" Then \'且用户不是管理员
        e.Form.Controls("开票日期").ReadOnly = BooleanEnum.True \'那么禁止编辑
    End If
End If
[此贴子已经被作者于2013-5-27 17:11:40编辑过]

--  作者:lipiti
--  发布时间:2013/5/27 22:12:00
--  
非常感谢 Bin 和 XYT 帮忙修改代码,已解决!