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


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

主题:自动编号问题

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


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
自动编号问题  发帖心情 Post By:2015/12/24 8:27:00 [只看该作者]

请老师们帮忙编个根据登录用户和系统日期自动编号的程序。就是“登录用户+系统日期+三位数编码”,三位数编码每增加一行自动加1.谢谢!

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/12/24 8:35:00 [只看该作者]


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


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By:2015/12/24 8:42:00 [只看该作者]

老师,这个例子是表中有一列日期列,我要提取系统日期,另外要加上登录用户,我不会做。

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/12/24 8:59:00 [只看该作者]

Dim d As Date = Date.Today
Dim max As String
Dim idx As Integer
Dim flt As String
Dim bh As String = User.Name & Format(d,"yyyyMMdd")
flt = "单据编号 like '" & bh & "%'"
Output.Show(flt)
max = e.DataTable.Compute("Max(单据编号)",flt)
If max > "" Then '如果存在最大单据编号
    idx = CInt(max.Substring(max.Length-3,3)) + 1
Else
    idx = 1 '否则顺序号等于1
End If
e.DataRow("单据编号") = bh & Format(idx,"000")

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


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By:2015/12/24 14:43:00 [只看该作者]

如何让增加一行编一个号?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/24 14:50:00 [只看该作者]

4楼的代码,写到DataRowAdded不就是?

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


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By:2015/12/24 15:13:00 [只看该作者]

老师您好:

显示.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2014.11.11.1
错误所在事件:表,出差记录,DataRowAdded
详细错误信息:
调用的目标发生了异常。
输入字符串的格式不正确。不能在 编号 列中存储 <校长20151224001>。所需类型是 Int32。
输入字符串的格式不正确。
还请您给加个将前面登录者汉字名称变为英文字母的程序,我编程一点不会,请帮忙呀。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/24 15:23:00 [只看该作者]

1、编号列改成字符列,不要用数值列。

 

2、

 

Dim d As Date = Date.Today
Dim max As String
Dim idx As Integer
Dim flt As String
Dim bh As String = getpy(User.Name,true) & Format(d,"yyyyMMdd")
flt = "单据编号 like '" & bh & "%'"
Output.Show(flt)
max = e.DataTable.Compute("Max(单据编号)",flt)
If max > "" Then '如果存在最大单据编号
    idx = CInt(max.Substring(max.Length-3,3)) + 1
Else
    idx = 1 '否则顺序号等于1
End If
e.DataRow("单据编号") = bh & Format(idx,"000")


 回到顶部