Foxtable(狐表)用户栏目专家坐堂 → 品牌如何按“助记码”产生的数字规律自动递增编号?


  共有15141人关注过本帖树形打印复制链接

主题:品牌如何按“助记码”产生的数字规律自动递增编号?

帅哥哟,离线,有人找我吗?
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/19 15:55:00 [显示全部帖子]

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


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/24 14:32:00 [显示全部帖子]

关于禁止重复内容,看这段帮助的示例四:
 
http://help.foxtable.com/topics/0624.htm


 
要清除编号,可以改一下代码:
 
If e.DataCol.Name  = "品牌" Then
    If e.NewValue > ""  Then
        Dim s1 As String = GetPy(e.NewValue,True)
        Dim s2 As String
        Dim cs() As String = New String() {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}
        Dim ns() As String = new String(){15,52,54,13,33,12,11,21,43,22,23,24,25,51,44,45,35,32,14,31,42,53,34,55,41,26}
        For i As Integer = 0 To s1.length -1
            Dim s3 As String = s1.Chars(i)
            If Char.IsNumber(s3)  = False Then
                For n As Integer =0 To cs.Length -1
                    If cs(n) = s3 Then
                        s3 = ns(n)
                        Exit For
                    End If
                Next
            End If
            s2 = s2 & s3
        Next
        s2 = s2.PadRight(4,"0")
        s2 = s2.SubString(0,4)
        Dim drs As List(of DataRow) = e.DataTable.Select("编号 Like '" & s2 & "*' And [_Identify] < " & e.DataRow("_Identify"))
        If drs.Count = 0
           e.DataRow("编号") = s2 & "01"
        Else
           e.DataRow("编号") = s2 & Format(drs.count + 1,"00")
        End If
    Else
        e.DataRow("编号") = Nothing
    End If
End If


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/26 7:52:00 [显示全部帖子]

看不到图,选择图片文件后,是需要上传的。

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/26 19:14:00 [显示全部帖子]

类似锁定非空内容,参考:

 

还来一个例子,我们知道易表有一个锁定非空内容的功能,也就是只有空白单元格才能输入数据,一旦输入就不能修改,在Foxtable我们也可以很轻松地实现这个功能,例如希望锁定“标注”列的非空内容:

If e.Col.Name = "标注" AndAlso e.Row.IsNull("标注") = False Then
    e.Cancel =
True
End
If

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/29 23:02:00 [显示全部帖子]

编号不就是要递增吗?

 


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/29 23:12:00 [显示全部帖子]

不要递增,那就去掉代码中递增的代码,改为:

 

If e.DataCol.Name  = "pp" Then
    If e.NewValue > ""  Then
        Dim s1 As String = GetPy(e.NewValue,True)
        Dim s2 As String
        Dim cs() As String = New String() {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}
        Dim ns() As String = new String(){15,52,54,13,33,12,11,21,43,22,23,24,25,51,44,45,35,32,14,31,42,53,34,55,41,26}
        For i As Integer = 0 To s1.length -1
            Dim s3 As String = s1.Chars(i)
            If Char.IsNumber(s3)  = False Then
                For n As Integer =0 To cs.Length -1
                    If cs(n) = s3 Then
                        s3 = ns(n)
                        Exit For
                    End If
                Next
            End If
            s2 = s2 & s3
        Next
        s2 = s2.PadRight(4,"0")
        s2 = s2.SubString(0,4)
        e.DataRow("ppbh") = s2
    Else
        e.DataRow("ppbh") = Nothing
    End If
End If

[此贴子已经被作者于2011-4-29 23:12:46编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/30 8:05:00 [显示全部帖子]

其实你在DataColChanging时间设置了代码,对货品编号进行了处理,那么品牌编号类似:

 

 

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


 回到顶部