以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 出错:索引和长度必须引用该字符串内的位置? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=133368) |
||||
-- 作者:fengwenliuyan -- 发布时间:2019/4/12 20:07:00 -- 出错:索引和长度必须引用该字符串内的位置? If e.DataRow.IsNull("入库日期") Then e.DataRow("入库编号") = Nothing Else Dim bh1 As String = "RT" & Format(e.DataRow("入库日期"),"yyyyMMdd") \'取得入库编号的8位前缀 If e.DataRow("入库编号").StartsWith(bh1) = False \'如果入库编号的前8位不符 Dim max1 As String Dim idx1 As Integer Dim d1 As Date = e.DataRow("入库日期").Date max1 = e.DataTable.Compute("Max(入库编号)","入库日期 >= #" & d1 & "# And 入库日期 < #" & d1.adddays(1) & "# And [_Identify] <> " & e.DataRow("_Identify")) \'取得该月的最大编号 If max1 > "" Then \'如果存在最大入库编号 idx1 = CInt(max1.Substring(bh1.length+1,3)) + 1 \'获得最大过磅编号的后三位顺序号,并加1 Else idx1 = 1 \'否则顺序号等于1 End If e.DataRow("入库编号") = bh1 & Format(idx1,"000") End If End If 这段自动编号,提示错误: .NET Framework 版本:2.0.50727.5485 Foxtable 版本:2018.10.9.1 错误所在事件:表,入库订单表,DataColChanged 详细错误信息: 调用的目标发生了异常。 索引和长度必须引用该字符串内的位置。 参数名: length 请问怎么改? |
||||
-- 作者:cd_tdh -- 发布时间:2019/4/12 20:22:00 -- 示例2不就是你要的 http://www.foxtable.com/webhelp/scr/2403.htm
|
||||
-- 作者:有点蓝 -- 发布时间:2019/4/12 20:31:00 -- idx1 = CInt(max1.Substring(bh1.length-3,3)) + 1 \'
|
||||
-- 作者:fengwenliuyan -- 发布时间:2019/4/12 21:03:00 -- 回复:(有点蓝)http://www.foxtable.com/webhelp/sc... If e.DataRow.IsNull("入库日期") Then e.DataRow("入库编号") = Nothing Else Dim bh1 As String = "RT" & Format(e.DataRow("入库日期"),"yyyyMMdd") \'取得入库编号的8位前缀 If e.DataRow("入库编号").StartsWith(bh1) = False \'如果入库编号的前8位不符 Dim max1 As String Dim idx1 As Integer Dim d1 As Date = e.DataRow("入库日期").Date max1 = e.DataTable.Compute("Max(入库编号)","入库日期 >= #" & d1 & "# And 入库日期 < #" & d1.adddays(1) & "# And [_Identify] <> " & e.DataRow("_Identify")) \'取得该月的最大编号 If max1 > "" Then \'如果存在最大入库编号 idx1 = CInt(max1.Substring(bh1.length-3,3)) + 1 \'获得最大过磅编号的后三位顺序号,并加1 Else idx1 = 1 \'否则顺序号等于1 End If e.DataRow("入库编号") = bh1 & Format(idx1,"000") End If End If 测试结果是: 编号只有第一个是RT20190412001,后面的编号,都是一样的RT20190412413
|
||||
-- 作者:有点蓝 -- 发布时间:2019/4/12 21:26:00 -- 代码没有问题,上传实例测试 |
||||
-- 作者:fengwenliuyan -- 发布时间:2019/4/12 21:27:00 -- 在“入库订单表”中测试:
[此贴子已经被作者于2019/4/12 21:27:53编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2019/4/12 22:04:00 -- idx1 = CInt(max1.Substring(max1.length-3,3)) + 1 |
||||
-- 作者:fengwenliuyan -- 发布时间:2019/4/12 22:14:00 -- 回复:(有点蓝) idx1 = CInt(max1.Substring(m... 想要把这个红色的“20”去掉,应该怎么改呀? RT20190412413RT190412413
|
||||
-- 作者:有点蓝 -- 发布时间:2019/4/12 22:32:00 -- Dim bh1 As String = "RT" & Format(e.DataRow("入库日期"),"yyMMdd") |