以文本方式查看主题

-  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=117996)

--  作者:comnets
--  发布时间:2018/4/23 9:18:00
--  表达式列编号生成
想要这样的编号:
联系人身份证号列前6位+填充满6位的[_Identify]
比如XXXXXX000001

如何实现呢?

--  作者:有点甜
--  发布时间:2018/4/23 9:34:00
--  

参考

 

SubString([身份证号], 1, 6) + SubString(\'000000\', 1, 6 - Len(Convert([_Identify],\'System.String\'))) + Convert([_Identify], \'System.String\')


--  作者:有点甜
--  发布时间:2018/4/23 9:36:00
--  

如果要写代码,这样写

 

If e.DataCol.Name = "身份证" Then
    Dim sfz As String = e.DataRow("身份证")
    If sfz.length >= 18 Then
        e.DataRow("编号") = sfz.substring(0,6) & format(e.DataRow("_Identify"), "000000")
    Else
        e.DataRow("编号") = Nothing
    End If
End If


--  作者:comnets
--  发布时间:2018/4/23 10:15:00
--  

SubString([身份证号], 1, 6) + SubString(\'000000\', 1, 6 - Len(Convert([_Identify],\'System.String\'))) + Convert([_Identify], \'System.String\')


这样的表达式身份证号列需要是什么类型?长整数、备注、高精度小数都报错。

--  作者:有点甜
--  发布时间:2018/4/23 10:36:00
--  
身份证号,基本都是用字符列。
--  作者:comnets
--  发布时间:2018/4/23 11:36:00
--  
SubString([身份证号], 1, 6)
这里换成
姓名拼音缩写怎么改?
--  作者:有点甜
--  发布时间:2018/4/23 11:38:00
--  

无法用表达式列,这个时候必须写代码处理

 

http://www.foxtable.com/webhelp/scr/1270.htm