以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 按月自动编号 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=145023) |
-- 作者:andyd -- 发布时间: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 处开始)。 |
-- 作者:有点蓝 -- 发布时间:2020/1/6 13:47:00 -- max = e.DataTable.Compute("Max(订单编号)","日期 = # " & Filter & " # And [ 去掉#号粉色位置多余的空格 |
-- 作者:andyd -- 发布时间:2020/1/6 14:16:00 -- 去掉空格后提示变为(从索引 0 处开始), 错误所在事件:表,订单评审,BeforeSaveDataRow 详细错误信息: 调用的目标发生了异常。 该字符串未被识别为有效的 DateTime。有一个未知单词(从索引 0 处开始)。 [此贴子已经被作者于2020/1/6 14:18:29编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/1/6 14:30:00 -- max = e.DataTable.Compute("Max(订单编号)",Filter & " And [_Identify] <> " & e.DataRow("_Identify")) \'取得该天的最大编号
|
-- 作者:zqxzhs -- 发布时间:2021/9/14 10:06:00 -- 老师:用 max = e.DataTable.SQLCompute("Max(订单编号)",Filter & " And [_Identify] <> " & e.DataRow("_Identify")) \'取得该天的最大编号,能避免重复吗 |
-- 作者:有点蓝 -- 发布时间:2021/9/14 10:13:00 -- 如果是单机使用可以。多人并发的无法保证。可以看看:http://www.foxtable.com/webhelp/topics/3008.htm |