Foxtable(狐表)用户栏目专家坐堂 → 编号自动判断的问题(最后一楼的问题望解释!)


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

主题:编号自动判断的问题(最后一楼的问题望解释!)

帅哥哟,离线,有人找我吗?
紙上不談兵
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:113 积分:731 威望:0 精华:1 注册:2011/8/16 14:13:00
  发帖心情 Post By:2011/8/16 20:58:00 [显示全部帖子]

7樓的代碼應該是不行的

 回到顶部
帅哥哟,离线,有人找我吗?
紙上不談兵
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:113 积分:731 威望:0 精华:1 注册:2011/8/16 14:13:00
  发帖心情 Post By:2011/8/16 22:06:00 [显示全部帖子]

Select Case e.DataCol.Name
    Case "车系","车牌号"
        Dim s1,s2 ,s3 As String
        Dim dr,dr1 As  DataRow
        Dim n,n1 As Integer
        Dim dt As DataTable = e.DataTable
        dr = e.DataRow
        s1 = dr("车牌号")
        If  dr("车系")  =""  OrElse s1 = "" Then
            dr("编号") = Nothing
        Else
            dr1=DataTables("编码").Find("车系='" & dr("车系") & "'")
            If dr1 IsNot Nothing Then
                s2= dr1("编码") & right(s1,1) & "-"
                s3= "编号 Like '" & s2 & "%'"
                dr1 =  dt.Find(s3)
                If dt.DataRows.count =1  OrElse  dr1 Is Nothing Then
                    dr("编号") = s2 & "1"
                Else
                    For Each dr1 In dt.Select(s3)
                        n=dr1("编号").Substring(3)
                        n1=iif(n1<n,n,n1)
                    Next
                    
                    For n  = 1 To n1
                        If dt.Find("编号 = '" & s2 & n & "'") Is Nothing Then
                            dr("编号") = s2 & n
                            Exit For
                        Else
                            dr("编号") = s2 & n1+1
                        End If
                    Next                    
                End If
            End If
        End If     
End Select

 回到顶部
帅哥哟,离线,有人找我吗?
紙上不談兵
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:113 积分:731 威望:0 精华:1 注册:2011/8/16 14:13:00
  发帖心情 Post By:2011/8/17 9:33:00 [显示全部帖子]

9樓的代碼行不行?樓主也不吱一聲,雖則我自信OK的.

 回到顶部
帅哥哟,离线,有人找我吗?
紙上不談兵
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:113 积分:731 威望:0 精华:1 注册:2011/8/16 14:13:00
  发帖心情 Post By:2011/8/17 11:38:00 [显示全部帖子]

以下是引用gaoyong30000在2011-8-17 9:41:00的发言:


For Each dr1 In dt.Select(s3)

        n=dr1("编号").Substring(3)
        n1=iif(n1<n,n,n1)
Next
 
您这段代码  我有点看不懂  n1=iif(n1<n,n,n1)  这个 我知道 是取最大值  但是n1之前没定义过  这里 表达什么意思啊 ?
 
 我是用这段代码代替的
 Dim n,n1 As Integer
n1 = DataTables("客户档案").Compute("Max(编号)","编号 Like '" & s2 & "*'").Substring(3)

 

我这的n1有定义

 

能解释下嘛?



1.你說n1沒定義說明你沒認真看;
2.你的替代碼應該不行,行的話我早用了(如你覺得行的話,我沒意見)


 回到顶部
帅哥哟,离线,有人找我吗?
紙上不談兵
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:113 积分:731 威望:0 精华:1 注册:2011/8/16 14:13:00
  发帖心情 Post By:2011/8/17 11:56:00 [显示全部帖子]

以下是引用gaoyong30000在2011-8-17 11:46:00的发言:

Dim n,n1 As Integer

你的确有定义 可能我没表达清楚

 

 For Each dr1 In dt.Select(s3)

      n=dr1("编号").Substring(3)
      n1=iif(n1<n,n,n1)
Next
 
For n  = 1 To n1
 
n指定了  dr1("编号").Substring(3)
而n1 又没指定大小  就有n>n1  和后面 1 to n1  有点搞不明白!
 
我刚接触编码 不知道其原理。。


沒賦值則為0,好比皇上封甲個『富甲天下』的空頭頭銜,郤什麼也沒有給他,則甲其實什麼也沒有



 回到顶部