以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]提取性别  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189834)

--  作者:iyplx2425
--  发布时间:2023/12/29 8:24:00
--  [求助]提取性别
Dim 身份证号 As String  
Dim 性别 As String = ReadSex(身份证号)
Output.Show(性别)
上面是在[性别]列的表达式生成器里,从身份证号中提取性别的表达式,提示语法错误:“身份证号”运算符后缺少操作数。请教错在哪里?谢谢。
类似于易表中的刷新公式,在狐表中需要这么复杂吗?易表中刷新公式是:ReadSex([身份证号]),非常简单。
[此贴子已经被作者于2023/12/29 8:28:39编辑过]

--  作者:iyplx2425
--  发布时间:2023/12/29 8:26:00
--  
类似于易表中的刷新公式,在狐表中需要这么复杂吗?易表中刷新公式是:ReadSex([身份证号]),非常简单。
[此贴子已经被作者于2023/12/29 8:27:52编辑过]

--  作者:有点蓝
--  发布时间:2023/12/29 8:47:00
--  
易表是易表,狐表是狐表,想要把狐表使用好,先忘记易表。

表达式也不是代码,在狐表里,这是完全两种不同的东西。
代码要放到各种事件里使用:http://www.foxtable.com/webhelp/topics/1445.htm,不能用到表达式列里

1楼的代码正确用法应该是放到表属性的datacolchanged事件里:http://www.foxtable.com/webhelp/topics/0625.htm
代码如:
If e.DataCol.Name = "身份证号" Then 
    If e.DataRow.IsNull("身份证号") Then 
        e.DataRow("性别") = Nothing 
    Else
        e.DataRow("性别") = ReadSex(e.DataRow("身份证号"))
    End If
End If

代码确实比表达式复杂,但是也能实现更复杂的功能。不过Foxtable已经把复杂度降低了很多,比上写原生的编程已经简单了很多。既然要使用,还不如静下心来慢慢学习。规则就是规则,有好比要开车上路首先就得经历科目一到科目三的折磨,再多的吐槽也于事无补。