以文本方式查看主题

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

--  作者:苏州老街
--  发布时间:2017/3/24 9:05:00
--  [求助]编号
老师好,我要生成一个商品ID,谢谢了。


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table



图片点击可在新窗口打开查看此主题相关图片如下:编号.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2017/3/24 9:19:00
--  
参考:



--  作者:苏州老街
--  发布时间:2017/3/24 9:25:00
--  
老师,搞不好啊
--  作者:有点蓝
--  发布时间:2017/3/24 9:25:00
--  
搞不好也要自己动手试过,有问题再解决。
--  作者:有点色
--  发布时间:2017/3/24 9:35:00
--  
Select e.DataCol.Name
    Case "商品名称"
        If e.DataRow.IsNull("商品名称") Then
            e.DataRow("商品id") = Nothing
        Else
            Dim str As String = e.DataRow("商品名称")
            Dim lb As String = GetPinYin(str, 1)
            If lb.Length >= 4 Then
                lb = lb.SubString(0, 4)
            Else
                lb = lb.PadRight(4, "0")
            End If
            Dim max As String
            Dim idx As Integer
            max = e.DataTable.Compute("Max(商品id)","商品名称 = \'" & e.DataRow("商品名称") & "\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号
            If max > "" Then \'如果存在最大编号
                idx = CInt(max.Substring(4)) + 1 \'获得最大编号的后三位顺序号,并加1
            Else
                idx = 1 \'否则顺序号等于1
            End If
            e.DataRow("商品id") = lb & Format(idx,"000")           
        End If
End Select

--  作者:苏州老街
--  发布时间:2017/3/24 10:01:00
--  
老师,代码不能保存。
--  作者:有点色
--  发布时间:2017/3/24 10:09:00
--  
 关闭重新打开项目
--  作者:苏州老街
--  发布时间:2017/3/24 10:29:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:编号.png
图片点击可在新窗口打开查看

--  作者:有点色
--  发布时间:2017/3/24 10:32:00
--  
 升级到最新版foxtable
--  作者:苏州老街
--  发布时间:2017/3/24 10:58:00
--  
老师,字母变成大写可以吗?