Foxtable(狐表)用户栏目专家坐堂 → 如何对编号规则的进一步修改


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

主题:如何对编号规则的进一步修改

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


加好友 发短信
等级:幼狐 帖子:178 积分:1228 威望:0 精华:0 注册:2014/1/23 0:48:00
如何对编号规则的进一步修改  发帖心情 Post By:2014/5/24 12:09:00 [显示全部帖子]

这个是早期做的规则。。。

Select e.DataCol.Name '自动生成子编码
    Case  "编号"
        If e.DataRow.IsNull("编号") Then
            e.DataRow("子编号") = Nothing
        Else
            Dim bh As  String = e.DataRow("编号")
            If e.DataRow("子编号").StartsWith(bh) = False  '如果子编号前缀不符
                Dim max  As  String
                Dim idx  As  Integer
                max = e.DataTable.Compute("Max(子编号)","编号 = '" & bh  & "' And [_Identify] <> " & e.DataRow("_Identify")) '取得该类别的最大编号
                If max > ""  Then  '如果存在最大编号
                    Dim l As Integer = bh.Length
                    idx = CInt(max.Substring(l,3)) + 1  '获得最大编号的后两位顺序号,并加1
                Else
                    idx = 1  '否则顺序号等于1
                End  If
                e.DataRow("子编号") = bh & Format(idx,"000")
            End If
        End  If

现在想修改为,如果编号只有一个的情况下,从数据库下载,子编号跟编号一样。后面就不要添加001了。mysql数据库,请问如何写语句~ 

好像我说明的不够。。我再次说明一下。
编号是会重复出现的。我现在要从mysql数据库下载订单产品信息。之前做的这个代码在datacolchanged里。这个代码让所有下载下来的订单产品信息,子编号后面都添加了001,002,003.... 现在我想要的是当编号只有一个的时候,子编号后面不添加001。
这样就需要一个判断数据库里的订单表里的编号是否为多个。请问如何写代码?

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140525111523.jpg
图片点击可在新窗口打开查看


[此贴子已经被作者于2014-5-25 11:23:19编辑过]

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


加好友 发短信
等级:幼狐 帖子:178 积分:1228 威望:0 精华:0 注册:2014/1/23 0:48:00
  发帖心情 Post By:2014/5/25 11:29:00 [显示全部帖子]

都是要从数据库下载的。编号有一个或者多个的。我之前的代码在datacolchanged里,让所有下载下来的编号生成的对应的子编号后面都添加了001,002,003...现在我想让只有一个编号的情况,后面不添加001了。。所以要做一个判断。

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


加好友 发短信
等级:幼狐 帖子:178 积分:1228 威望:0 精华:0 注册:2014/1/23 0:48:00
  发帖心情 Post By:2014/5/25 11:31:00 [显示全部帖子]

编号会重复的。都是从数据库下载。当编号不重复,只有一个的时候,子编号就=编号。所以要现在数据库做个判断编号是否多个或者一个。

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


加好友 发短信
等级:幼狐 帖子:178 积分:1228 威望:0 精华:0 注册:2014/1/23 0:48:00
  发帖心情 Post By:2014/5/25 14:52:00 [显示全部帖子]

子编号出不来了~ 

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


加好友 发短信
等级:幼狐 帖子:178 积分:1228 威望:0 精华:0 注册:2014/1/23 0:48:00
  发帖心情 Post By:2014/5/25 15:04:00 [显示全部帖子]

下载按钮当时让狐爸帮我做了这样的修改,不知道有没有影响。
For Each dr As DataRow In dt.DataRows
    If DataTables("小包发货单").Find("编号 = '" & dr("OrderNumber") & "' And ID ='" & dr("ID") & "'") Is Nothing Then
        If dr("Status") = 2 Then
            Dim nr As DataRow = DataTables("小包发货单").AddNew()
            nr("日期") =d1.AddSeconds(dr("AddTime"))
            For i As Integer =0 To sCols.Length -1
                nr(dCols(i)) = dr(sCols(i))
            Next
        End If
    End If
Next

刚的代码还是不行,部分出子编号出来,部分没有。 我还是看不懂有点甜老师帮我修改的代码的意思。不然我自己也能找出原因来。先让我学习一下。

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


加好友 发短信
等级:幼狐 帖子:178 积分:1228 威望:0 精华:0 注册:2014/1/23 0:48:00
  发帖心情 Post By:2014/5/25 15:12:00 [显示全部帖子]

我觉得判断应该是在mysql数据库,不应该在datatable。。如果没有把编号全部下载到datatable,根本无法在datatable做个正确的判断。
[此贴子已经被作者于2014-5-25 15:13:21编辑过]

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


加好友 发短信
等级:幼狐 帖子:178 积分:1228 威望:0 精华:0 注册:2014/1/23 0:48:00
  发帖心情 Post By:2014/5/25 15:44:00 [显示全部帖子]

接近了。。出现了一些语法错误。。我自己试试。。mysql数据库正在使用。所以无法上例子~见谅~
另外请问有点甜老师那个mysql.dll的再哪下载?如何引用。。看不是很明白。。

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


加好友 发短信
等级:幼狐 帖子:178 积分:1228 威望:0 精华:0 注册:2014/1/23 0:48:00
  发帖心情 Post By:2014/5/26 11:21:00 [显示全部帖子]

datatable的”编号“对应mysql的列是“OrderNumber",是不是还要进行一个转化或者解释呀?我说怪不得子编号出不来呢。是我的失误。请问如何转化?
[此贴子已经被作者于2014-5-26 11:21:41编辑过]

 回到顶部