以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  返回值  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=29420)

--  作者:cks
--  发布时间:2013/3/6 14:59:00
--  返回值

师兄们,记得看过帮助里面有这样的一节代码的,但忘记在哪里了,

 

我要实现的是:新建一个窗口控件1(名为部门)中的内容等于当前用户名所属部门

 

原来已经建立了一个员工表,里面有姓名列、部门列的

 

求怎么样赋值给控件1

 


--  作者:cks
--  发布时间:2013/3/6 15:48:00
--  

我把代码放写在AfterLoad事件中可以生成了,但有一个很奇怪的现象

 

生成后我填写下一个控件后上面控件的值居然消失了......

 

代码为:

 

Dim xm As WinForm.ComboBox = e.Form.Controls("姓名")
        If xm.Value = "" Then
            xm.Value = User.Name
        End If

Dim bm As WinForm.ComboBox = e.Form.Controls("部门")
If bm.Value = "" Then
    Dim rgb As DataRow = DataTables("员工表").Find("姓名 = \'" & User.Name & "\'")
    If rgb IsNot Nothing
        bm.Value = rgb("部门")
    End If
End If

 

 

求解


--  作者:狐狸爸爸
--  发布时间:2013/3/6 15:52:00
--  

先判断是否执行:

 

Dim xm As WinForm.ComboBox = e.Form.Controls("姓名")
If xm.Value = "" Then
    xm.Value = User.Name
    messagbeox.show("设置了姓名:" & user.name)
End If
Dim bm As WinForm.ComboBox = e.Form.Controls("部门")
If bm.Value = "" Then
    Dim rgb As DataRow = DataTables("员工表").Find("姓名 = \'" & User.Name & "\'")
    If rgb IsNot Nothing
        bm.Value = rgb("部门")
            messagbeox.show("部门:" & bm.value)
    End If
End If

 

如果执行了还是不行,那么可能是你这个输入框可能绑定到某列了吧,如果绑定了,就不能直接设置其值:

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

 

你这种情况应该是不需要绑定的

[此贴子已经被作者于2013-3-6 15:52:15编辑过]

--  作者:cks
--  发布时间:2013/3/6 16:01:00
--  

正如狐爸所指,我邦定了其它列,现已完美解决,谢谢狐狸爸爸muhua!!