以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]流水号自动生成问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=25070) |
||||
-- 作者:云淡风轻 -- 发布时间:2012/10/30 16:48:00 -- [求助]流水号自动生成问题 情况说明: 数据库中“全宗号”列的数值从1,2,3,4,5中取,分类号的值从0,1,2,3,4,5,6中取值,“年度”列的值是4位数,如2005,2006等,那么对于分类号是0,2,3的行,如何自动生成流水号列“存址号”列,其形式为“全宗号-年度-10001开始的递增数”,即形式为1-2005-10001,1-2005-10002,...,1-2005-10554,...,如果输入的年度以前没有输过的,比如新的年度2006,那么流水号又从10001开始,即1-2006-10001,1-2006-10002,...以此递增。
如何代码实现自动生成流水号?谢谢!
附数据:
[此贴子已经被作者于2012-10-30 16:48:46编辑过]
|
||||
-- 作者:lin_hailun -- 发布时间:2012/10/30 22:21:00 -- 打不开你的开发版项目。做了个小例子。
|
||||
-- 作者:lin_hailun -- 发布时间:2012/10/31 10:51:00 --
|
||||
-- 作者:云淡风轻 -- 发布时间:2012/10/31 16:18:00 -- 谢谢指点!还想请教下,如果全宗号是X01,X02,X03,X04,X05时,流水号如X01-2005-10004形式的,怎么修改呢?因为此时e.DataTable.Compute("Max(存址号)", "全宗号 = " & e.DataRow("全宗号") & " And 年度 = " & e.DataRow("年度") & " And 分类号 in (0,2,3) And _Identify <> " & e.DataRow("_Identify"))代码,运行弹出调用的目标异常的错误,如何修改?谢谢!不同的全宗号,分类号是0,2,3,如果年度相同的话,流水号是重新编的,又从10001开始。所以在筛选里把全宗号 = " & e.DataRow("全宗号") 这个加上了 [此贴子已经被作者于2012-10-31 16:38:55编辑过]
|
||||
-- 作者:lin_hailun -- 发布时间:2012/10/31 16:30:00 -- 嗯嗯,是的,要改成这句 Dim idx As String = e.DataTable.Compute("Max(存址号)", "全宗号 = \'" & e.DataRow("全宗号") & "\' And 年度 = " & e.DataRow("年度") & " And 分类号 in (0,2,3) And _Identify <> " & e.DataRow("_Identify")) |
||||
-- 作者:云淡风轻 -- 发布时间:2012/10/31 16:40:00 -- 嗯,我也这样想,可是增加行的时候报错了。怎么办? Dim idx As String = e.DataTable.Compute("Max(存址号)", "全宗号 = \'" & e.DataRow("全宗号") & "\' And 年度 = " & e.DataRow("年度") & " And 分类号 in (0,2,3) And _Identify <> " & e.DataRow("_Identify"))
这个语句对于X01-2005-10001,X01-2005-10002,...,... 好像没有办法判断最大值,因为其中有X字母,不知是不是这样? [此贴子已经被作者于2012-10-31 16:41:57编辑过]
|
||||
-- 作者:lin_hailun -- 发布时间:2012/10/31 16:51:00 -- 比较大小是肯定能比较的。可能是在最后生成的时候出了差错。 这句 idx = idx.SubString(9) + 1 改成这句 idx = idx.SubString(e.DataRow("全宗号").length + e.DataRow("分类号").Length + e.DataRow("年度").length + 1) + 1 |
||||
-- 作者:云淡风轻 -- 发布时间:2012/10/31 16:57:00 -- 还是不行。
我测试时改成
Select Case e.DataCol.Name 弹出“调用的目标发生异常”错误。 说明idx值有问题 [此贴子已经被作者于2012-10-31 17:00:36编辑过]
|
||||
-- 作者:lin_hailun -- 发布时间:2012/10/31 17:02:00 -- 如果列是字符类型,记得在左右加单引号 \' "全宗号 = \'" & e.DataRow("全宗号") & "\'" |
||||
-- 作者:云淡风轻 -- 发布时间:2012/10/31 17:05:00 -- 谢谢!!!一语中的,大侠!! |