Foxtable(狐表)用户栏目专家坐堂 → 自动编号


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

主题:自动编号

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


加好友 发短信
等级:幼狐 帖子:142 积分:1115 威望:0 精华:0 注册:2017/4/21 9:36:00
自动编号  发帖心情 Post By:2017/12/13 10:20:00 [只看该作者]

老师好,我想把自动编号前缀设为用户分组,代码是这样的
        Dim bh As String = "_UserGroup" & Format(d,"yyyyMM") 
但是并不能正确的把值赋到上面,请问一下老师应该怎么改

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


加好友 发短信
等级:一尾狐 帖子:469 积分:4545 威望:0 精华:0 注册:2013/5/22 15:32:00
  发帖心情 Post By:2017/12/13 10:34:00 [只看该作者]

改为  Dim bh As String = User.Group & Format(d,"yyyyMM") 试试



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/13 10:41:00 [只看该作者]

Dim bh As String = _UserGroup & Format(d,"yyyyMM") 

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


加好友 发短信
等级:幼狐 帖子:142 积分:1115 威望:0 精华:0 注册:2017/4/21 9:36:00
  发帖心情 Post By:2017/12/13 10:43:00 [只看该作者]

这样的话会提示从字符串“p20”到类型“Integer”的转换无效。

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


加好友 发短信
等级:幼狐 帖子:142 积分:1115 威望:0 精华:0 注册:2017/4/21 9:36:00
  发帖心情 Post By:2017/12/13 10:53:00 [只看该作者]

还是会报这个错误
从字符串“p20”到类型“Integer”的转换无效。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/13 10:57:00 [只看该作者]

肯定不是上面代码的问题,请正确定位错误,或者贴出完整代码。

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


加好友 发短信
等级:幼狐 帖子:142 积分:1115 威望:0 精华:0 注册:2017/4/21 9:36:00
  发帖心情 Post By:2017/12/13 11:04:00 [只看该作者]

额,在加上这个之前是好用的,把这段删了就是正常工作的

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


加好友 发短信
等级:幼狐 帖子:142 积分:1115 威望:0 精华:0 注册:2017/4/21 9:36:00
  发帖心情 Post By:2017/12/13 11:04:00 [只看该作者]

If e.DataCol.Name =  "日期" Then
    If e.DataRow.IsNull("日期") Then
        e.DataRow("运单号") = Nothing
    Else
        Dim d As Date = e.DataRow("日期")
        Dim y As Integer = d.Year
        Dim m As Integer = d.Month
        Dim  Days As  Integer = Date.DaysInMonth(y,m)
        Dim fd As Date = New Date(y,m,1)  '获得该月的第一天
        Dim ld As Date = New Date(y,m,Days)  '获得该月的最后一天
        Dim bh As String = " _UserGroup " & Format(d,"yyyyMM") '生成编号的前6位,4位年,2位月.
        If e.DataRow("运单号").StartsWith(bh) = False '如果编号的前6位不符
            Dim  max As String
            Dim  idx As  Integer
            max = e.DataTable.Compute("Max(运单号)","日期 >= #" & fd & "# And 日期 <= #" & ld & "# And [_Identify] <> " & e.DataRow("_Identify")) '取得该月的最大编号
            If  max > "" Then '如果存在最大编号
                idx = CInt(max.Substring(bh.length+1,3)) + 1  '获得最大编号的后三位顺序号,并加1
            Else
                idx = 1 '否则顺序号等于1
            End  If
            e.DataRow("运单号") = bh & "-" & Format(idx,"000")
        End If
    End  If
End  If

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


加好友 发短信
等级:幼狐 帖子:142 积分:1115 威望:0 精华:0 注册:2017/4/21 9:36:00
  发帖心情 Post By:2017/12/13 11:06:00 [只看该作者]

老师,抱歉,已经好了,我把表里之前的行删掉就能用了..

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/13 11:08:00 [只看该作者]

要说多少次?改成下面那样,去掉双引号。

 

        Dim bh As String = _UserGroup & Format(d,"yyyyMM") '生成编号的前6位,4位年,2位月.


 回到顶部
总数 15 1 2 下一页