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


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

主题:按月自动编号

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


加好友 发短信
等级:婴狐 帖子:40 积分:445 威望:0 精华:0 注册:2018/8/6 13:46:00
按月自动编号  发帖心情 Post By:2020/1/6 12:08:00 [只看该作者]

报下面代码在 BeforeSaveDataRow 表事件,需要的是:保存时先保存日期,再按日期所在月自动编号,报如下错误:

If e.DataRow.IsNull("日期") Then
    e.DataRow("日期")  = Date.Today()
End If

Dim max As String
Dim idx As Integer
Dim y As Integer = Date.Today.Year
Dim m As Integer = Date.Today.Month
Dim dt1 As New Date(y, m, 1)
Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) '获取本月的最后一天
Dim Filter As String
Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
max = e.DataTable.Compute("Max(订单编号)","日期 = # " & Filter & " # And [_Identify] <> " &  e.DataRow("_Identify")) '取得该天的最大编号
If max > "" Then
    idx = CInt(max.Substring(8,3)) + 1 '获得最大编号的 后三位顺序号,并加1
Else
    idx = 1 '否则顺序号等于1
End If
e.DataRow("订单编号") = "YFDD" & Format(e.DataRow("日期"),"yyMM") & Format(idx,"000")




.NET Framework 版本:4.0.30319.36392
Foxtable 版本:2019.12.17.18
错误所在事件:表,订单评审,BeforeSaveDataRow
详细错误信息:
调用的目标发生了异常。
该字符串未被识别为有效的 DateTime。有一个未知单词(从索引 1 处开始)。


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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/6 13:47:00 [只看该作者]

max = e.DataTable.Compute("Max(订单编号)","日期 = # " & Filter & " # And [

去掉#号粉色位置多余的空格


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


加好友 发短信
等级:婴狐 帖子:40 积分:445 威望:0 精华:0 注册:2018/8/6 13:46:00
  发帖心情 Post By:2020/1/6 14:16:00 [只看该作者]

去掉空格后提示变为(从索引 0 处开始)


错误所在事件:表,订单评审,BeforeSaveDataRow
详细错误信息:
调用的目标发生了异常。
该字符串未被识别为有效的 DateTime。有一个未知单词(从索引 0 处开始)。

[此贴子已经被作者于2020/1/6 14:18:29编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/6 14:30:00 [只看该作者]

max = e.DataTable.Compute("Max(订单编号)",Filter & " And [_Identify] <> " &  e.DataRow("_Identify")) '取得该天的最大编号

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


加好友 发短信
等级:一尾狐 帖子:477 积分:4850 威望:0 精华:0 注册:2015/4/30 22:08:00
  发帖心情 Post By:2021/9/14 10:06:00 [只看该作者]

老师:用 max = e.DataTable.SQLCompute("Max(订单编号)",Filter & " And [_Identify] <> " &  e.DataRow("_Identify")) '取得该天的最大编号,能避免重复吗

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/14 10:13:00 [只看该作者]

如果是单机使用可以。多人并发的无法保证。可以看看:http://www.foxtable.com/webhelp/topics/3008.htm

 回到顶部