以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  表达式列的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=72567)

--  作者:digger_deng
--  发布时间:2015/8/1 15:28:00
--  表达式列的问题
请教专家:例如:我有一个列名是“姓名”,我增加一个表达式用GetPin将“姓名”转为拼音。好像不能实现。
--  作者:有点蓝
--  发布时间:2015/8/1 15:35:00
--  
在datacolchanged下写
If e.DataCol.Name = "姓名" Then
  if e.NewValue IsNot Nothing Then
   e.DataRow("拼音") = GetPin(e.NewValue )
  end if
End If
[此贴子已经被作者于2015/8/1 15:42:12编辑过]

--  作者:digger_deng
--  发布时间:2015/8/1 15:41:00
--  
谢谢回复,这个知道,但表达式列无法实现,与EXCEL还是有区别
--  作者:有点蓝
--  发布时间:2015/8/1 16:02:00
--  
GetPin是内部函数,用代码指定表达式
Tables("表").Cols("拼音").DataCol.Expression = Functions.Execute("GetPin","姓名")
--  作者:digger_deng
--  发布时间:2015/8/1 16:52:00
--  
在datacolchanged下写
If e.DataCol.Name = "姓名" Then
  if e.NewValue IsNot Nothing Then
   e.DataRow("拼音") = GetPin(e.NewValue )
  end if
End If

这个代码放在datacolchanged事件里报错?见截图
此主题相关图片如下:qq截图20150801165029.png
按此在新窗口浏览图片

--  作者:digger_deng
--  发布时间:2015/8/1 16:53:00
--  
GetPin是内部函数,用代码指定表达式
Tables("表").Cols("拼音").DataCol.Expression = Functions.Execute("GetPin","姓名")

这个也报错?

--  作者:有点蓝
--  发布时间:2015/8/1 16:54:00
--  
哦,不好意思,我写错了,你看看自定义函数调用。
--  作者:有点蓝
--  发布时间:2015/8/1 16:55:00
--  
你用4楼的方法没错,我测试过
或者在chenged下这样调用
Functions.Execute("GetPin",e.NewValue)
[此贴子已经被作者于2015/8/1 16:57:40编辑过]

--  作者:有点蓝
--  发布时间:2015/8/1 16:59:00
--  
Tables("表").Cols("拼音").DataCol.Expression = Functions.Execute("GetPin","姓名")
你再MainTableChanged的时候写。把表名和列名都写成你自己的
[此贴子已经被作者于2015/8/1 17:00:13编辑过]

--  作者:digger_deng
--  发布时间:2015/8/1 17:29:00
--  
非常感谢回复,我在试试!