以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 请教自动编号的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=42582)

--  作者:ncefans
--  发布时间:2013/11/15 20:55:00
--  [求助] 请教自动编号的问题
请教一下,自动编号的问题.
如图,订单号码的编码原则是 订单抬头 + 年月日(yyMMdd)+ 顺序号



图片点击可在新窗口打开查看此主题相关图片如下:qq截图20131115210832.jpg
图片点击可在新窗口打开查看


现在的问题是顺序号的取得. 因为顺序号的增加是需要忽略不同订单抬头的,也就是说,只要是同一个订单日期,顺序号都需要累加.

用下面的表达式取得同一个订单日期的最大编号,是没办法实现的.

Dim tb1 As Table = Tables("采购订单")
max = tb1.Compute("Max(订单号码)","订单日期 = #" & tb1.current("订单日期") & "# And [_Identify] <> " & tb1.current("_Identify")) 

请问有什么办法? 谢谢!

增加一个不带订单抬头的编号辅助列,可以解决这个问题...但是不想增加辅助列. 有办法吗?
[此贴子已经被作者于2013-11-15 21:11:23编辑过]

--  作者:有点甜
--  发布时间:2013/11/15 21:04:00
--  
 改一下

max = Compute("Max(订单号码)","订单抬头 = ‘" & e.datarow("订单抬头") & "’ and 订单日期 = #" & e.datarow("订单日期") & "# And [_Identify] <> " & e.datarow("_Identify")

--  作者:ncefans
--  发布时间:2013/11/15 21:06:00
--  
以下是引用有点甜在2013-11-15 21:04:00的发言:
 改一下

max = Compute("Max(订单号码)","订单抬头 = ‘" & e.datarow("订单抬头") & "’ and 订单日期 = #" & e.datarow("订单日期") & "# And [_Identify] <> " & e.datarow("_Identify")


谢谢. 但是我的重点是需要忽略不同的订单抬头,而不是分开不同的抬头.
[此贴子已经被作者于2013-11-15 21:07:04编辑过]

--  作者:有点甜
--  发布时间:2013/11/15 21:15:00
--  
 不添加附加列的话,只有两种方法了:

 1、循环同一日期所有行,截取字符串,比较;

 2、得到同日期最大的_Identify,然后取出那一行的的订单编号。(不太准确)

 没有简便的方法
[此贴子已经被作者于2013-11-15 21:24:00编辑过]

--  作者:ncefans
--  发布时间:2013/11/15 21:22:00
--  
先需要提取订单号码的后8位,再计算最大值. 如何和substring 结合计算呢? 
--  作者:有点甜
--  发布时间:2013/11/15 21:25:00
--  
 最大值需要比较得出,没有简便的方法,看4楼。
--  作者:ncefans
--  发布时间:2013/11/15 21:33:00
--  
以下是引用有点甜在2013-11-15 21:25:00的发言:
 最大值需要比较得出,没有简便的方法,看4楼。
用循环遍历的方式是可以,但是太没有效率, 这样的话,还不如添加辅助列了. 谢谢了,如果没有更好的方法,只能加辅助列了.