以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]表达式列引用的结果如何修改?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=26056)

--  作者:newbeehh
--  发布时间:2012/11/23 10:59:00
--  [求助]表达式列引用的结果如何修改?

用表达式显示的文本结果想要在单元格里改变怎么办?

 

表A:

证件号                              姓名                单位

123456789123456789        张三                 首钢

987654321987654321        李四                 鞍钢

 

表B:

证件号                              单位

123456789123456789        首钢

475896135489742315                     

 

表B的单位列采用表达式列的类型,如果证件号列中的内容是新的证件号,单位这里无法手工录入,怎么解决)

 

 

[此贴子已经被作者于2012-11-23 11:01:40编辑过]

--  作者:lin_hailun
--  发布时间:2012/11/23 11:05:00
--  
 表达式的数据是不存在的。引用的列,是不能修改的。

 这种问题,你单位这里引用的是父表的数据,没有这个员工,何来这个员工的单位?

--  作者:newbeehh
--  发布时间:2012/11/23 11:17:00
--  
以下是引用lin_hailun在2012-11-23 11:05:00的发言:
 表达式的数据是不存在的。引用的列,是不能修改的。

 这种问题,你单位这里引用的是父表的数据,没有这个员工,何来这个员工的单位?

如果表B的单位列,既想如果表A中有该员工单位,则自动引入,如没有可手工录入,怎么解决?


--  作者:狐狸爸爸
--  发布时间:2012/11/23 11:27:00
--  

用代码解决, 设置表A的DatacolChanged事件:

 

Slect Case  e.DataCol.Name

    Case “证件号”

        Dim r As Row = DataTables("表B").Find("证件号 = \'" & e.NewValue & "\'")

        If r IsNot Nothing Then

              e.Datarow("单位") = r("单位")

        End if

End Select

 

相关知识:

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