以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 并发问题? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=194473) |
-- 作者:lgz518 -- 发布时间:2024/12/13 16:03:00 -- 并发问题? \'编号-删除后不断号-DataRowAdding增加一行时执行 Dim dr As DataRow = DataTables("设置表").Find("项目名称=\'" & e.DataTable.Name & "编号\'") If dr IsNot Nothing AndAlso dr.IsNull("设置") = False Then Dim max As String = e.DataTable.Compute("max(编号)") Dim idx As Integer If max > "" Then idx = max.Substring(Length + 1)+1 Else idx = 1 End If e.DataRow("编号") = & "-" & Format(idx, "0000") End If 这样可以在局域网,不重复不断号?如果不行,要怎么改?
[此贴子已经被作者于2024/12/15 3:10:07编辑过]
|
-- 作者:lgz518 -- 发布时间:2024/12/13 16:44:00 -- Dim dr As DataRow = DataTables("设置表").Find("项目名称=\'" & e.DataTable.Name & "采购单号\'") If dr IsNot Nothing AndAlso dr.IsNull("设置") = False Then Dim max As String = e.DataTable.Compute("max(采购单号)") Dim idx As Integer 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) \'获得该月的最后一天 If max > "" Then idx = max.Substring(dr("设置").Length + 1) + 1 Else idx = 1 问题2:上面代码,加上日期,执行没报错,但退出项目,如何正常?
[此贴子已经被作者于2024/12/15 3:10:35编辑过]
|
-- 作者:有点蓝 -- 发布时间:2024/12/13 16:47:00 -- 参考:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=177677&authorid=0&page=0&star=1 |
-- 作者:lgz518 -- 发布时间:2024/12/14 9:10:00 -- Dim dr As DataRow = DataTables("设置表").Find("项目名称=\'" & e.DataTable.Name & "编号\'") If dr IsNot Nothing AndAlso dr.IsNull("设置") = False Then Dim max As String = e.DataTable.Compute("max(编号)") Dim idx As Integer If max > "" Then idx = max.Substring(dr("设置").Length + 1) + 1 Else idx = 1 End If 报错 错误所在事件:表,水果单价表,DataRowAdding 详细错误信息: 调用的目标发生了异常。 从字符串“202412-20242”到类型“Double”的转换无效。 输入字符串的格式不正确。 [此贴子已经被作者于2024/12/15 3:11:18编辑过]
|
-- 作者:有点蓝 -- 发布时间:2024/12/14 9:29:00 -- msgbox(max) msgbox(max.Substring(max.Length - 4)) idx = max.Substring(max.Length - 4) + 1
|
-- 作者:lgz518 -- 发布时间:2024/12/14 9:57:00 -- 这个方法,在局域网,多人操作,会不会冲突,重复? |
-- 作者:有点蓝 -- 发布时间:2024/12/14 10:12:00 -- 会冲突,重复。 改为使用OpenQQ,在服务端统一生成编号,类似:http://www.foxtable.com/webhelp/topics/3008.htm 或者这里4楼:http://foxtable.com/bbs/dispbbs.asp?boardid=2&Id=145239
|
-- 作者:lgz518 -- 发布时间:2024/12/14 10:34:00 -- 这里4楼:http://foxtable.com/bbs/dispbbs.asp?boardid=2&Id=145239 删除后,不能从原来编号开始,比如:表A有CG-202412-001,CG-202412-002,CG-202412-003,清空或删除这三条记录,在新增时,希望从CG-202412-001,CG-202412-002,CG-202412-003依次补上。 要实现这个是不是要加一个回收表,进行回收利用?
|
-- 作者:有点蓝 -- 发布时间:2024/12/14 10:36:00 -- 是的加一个回收表 |
-- 作者:lgz518 -- 发布时间:2024/12/14 11:06:00 -- Dim dr As DataRow = e.DataRow Select Case e.DataCol.Name Case "送货日期" If dr.IsNull("送货日期") Then \'如果数量或单价为空 dr("送货单号") = Nothing Else Dim dr2 As DataRow = DataTables("单号设置表").Find("引用表和单号字段名称=\'" & e.DataTable.Name & "送货单号\'") If dr2 IsNot Nothing AndAlso dr2.IsNull("前缀") = False Then Dim max As String = e.DataTable.Compute("max(送货单号)") Dim idx As Integer \' 编号规则 If max > "" Then \'idx = max.Substring(dr("设置").Length + 1) + 1\'不加日期的编号规则 \'msgbox(max)测试显示 \'msgbox(max.Substring(max.Length - 4))测试显示 idx = max.Substring(max.Length - 4) + 1\'加日期的编号规则 Else idx = 1 End If End Select 报错,如图,如何改? [此贴子已经被作者于2024/12/15 3:12:22编辑过]
|