以文本方式查看主题

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

--  作者:jygyyl
--  发布时间:2014/7/31 9:40:00
--  [求助]编号问题
请教个编号问题,我的表有几个需自动编号的列,目标如下:
    1、当新增一行时录入列”GB103"后,“GB000”按“GB103"分组(分类)最大值加1; 按钮”新增一户“
    2、”GS901"按”GB103"和“GB000”两列分组(分类)最大值加1;按钮”同户新增“
    2、"GS101"当“GB016"开头是”2“时,“GB000”按“GB103"分组(分类)最大值加1;
我是菜鸟,求老师指点代码如何写!谢谢!

上述编号均不带前缀
[此贴子已经被作者于2014-7-31 9:45:12编辑过]

--  作者:Bin
--  发布时间:2014/7/31 9:44:00
--  
不是很懂你的意思,请上例子,并且加以详细说明.
--  作者:有点甜
--  发布时间:2014/7/31 9:47:00
--  
 完全看不懂你的意思
--  作者:jygyyl
--  发布时间:2014/7/31 16:02:00
--  回复:(Bin)不是很懂你的意思,请上例子,并且加以详细...
1、当新增一行时录入列”GB103"后,“GB000”按“GB103"分组(分类)最大值加1; 按钮”新增一户“
    2、”GS901"按”GB103"和“GB000”两列分组(分类)最大值加1;按钮”同户新增“
    2、当"GB002"=2 且“GB016"开头是”2“时,同时年龄在49周岁以内(GB012为出生时间),“"GS101"按“GB103"分组(分类)最大值加1;
我是菜鸟,求老师指点代码如何写!谢谢!

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:csxm.foxdb


--  作者:有点甜
--  发布时间:2014/7/31 16:12:00
--  
 完全看不懂。最大值是什么意思,加1又是什么意思,请具体数据说明。
--  作者:jygyyl
--  发布时间:2014/7/31 16:21:00
--  回复:(有点甜) 完全看不懂。最大值是什么意思...
最大值是指所在编号列已有数值的最大值,加1的意思是自动增量为1。比如:已有最大编号是5,则新编号为6。项目是在网络环境下运行。
--  作者:有点甜
--  发布时间:2014/7/31 16:46:00
--  

 Datacolchanged事件,代码

 

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "GB103"
        Dim max1 As String = e.DataTable.SQLCompute("max(GB103)")
        dr("GB000") = max1 + 1
        dr.save
        Dim max2 As String = e.DataTable.SQLCompute("max(GB000)")
       
        dr("GS901") = iif(max2 > max1, max2, max1) + 1
       
        If dr("GB016").startsWith("2") Then
            dr("GS101") = max1 + 1
        End If
        dr.save
    Case "GB016"
        If dr("GB016").startsWith("2") Then
            Dim max1 As String = e.DataTable.SQLCompute("max(GB103)")
            dr("GS101") = max1 + 1
        End If
        dr.save
End Select