以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]自动编码问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=106558) |
-- 作者:冥皓初 -- 发布时间:2017/9/11 16:31:00 -- [求助]自动编码问题 如图:代码=公司名称四位首字母+四位数字 [此贴子已经被作者于2017/9/11 16:32:29编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/9/11 16:36:00 -- datacolchanged事件
Select e.DataCol.Name |
-- 作者:冥皓初 -- 发布时间:2017/9/11 16:52:00 -- 老师,我想要的效果是 当第二列的前4位首字母一样时,后面4位数字是0001.0002.0003,这样每个加1的。 |
-- 作者:有点甜 -- 发布时间:2017/9/11 16:54:00 --
[此贴子已经被作者于2017/9/11 16:55:44编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/9/11 16:57:00 -- Select e.DataCol.Name Case "第二列" If e.DataRow.IsNull("第二列") orelse e.DataRow("第二列").length < 4 Then e.DataRow("第一列") = Nothing Else Dim lb As String = getpinyin(e.DataRow("第二列").substring(0,4),1) If e.DataRow("第一列").StartsWith(lb) = False \'如果单据第一列前缀不符 Dim max As String Dim idx As Integer max = e.DataTable.Compute("Max(第一列)","第一列 like \'" & lb & "%\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该第二列的最大第一列 If max > "" Then \'如果存在最大第一列 idx = CInt(max.Substring(lb.length)) + 1 \'获得最大第一列的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("第一列") = lb & Format(idx,"0000") End If End If End Select |
-- 作者:冥皓初 -- 发布时间:2017/9/12 9:36:00 -- 谢谢老师! |
-- 作者:天堂囚鸟99 -- 发布时间:2019/8/11 19:46:00 -- 如果需要读出的第一个拼音为大写,该怎么改 |
-- 作者:有点蓝 -- 发布时间:2019/8/11 20:26:00 -- 参考:http://www.foxtable.com/webhelp/topics/3279.htm |