以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 还是编号问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=152793) |
-- 作者:朱女士 -- 发布时间:2020/7/22 14:39:00 -- 还是编号问题 老师您好! 我有一个表的编号列格式是这样的:其中两行内容:wd-魏德曼-20200709-0474和wd-魏德曼-20200707-0463,我想在增加行时,取这列中所有编号的后四位中的最大值加1,做为新行的编号后四位。我写的代码是这样的,但不执行。Select e.DataCol.Name Case "接单日期","客户" If e.DataRow.IsNull("接单日期") OrElse e.DataRow.IsNull("客户") Then e.DataRow("编号") = Nothing Else Dim d As Date = e.DataRow("接单日期") Dim y As Integer = d.Year Dim m As Integer = d.Month Dim bh As String = "wd-" & e.DataRow("客户") & "-" & Format(d,"yyyyMMdd") & "-" \'生成编号的前缀 If e.DataRow("编号").StartsWith(bh) = False \'如果单据编号前缀不符 Dim max As String Dim idx As Integer Dim flt As String max = e.DataTable.Compute(Max.substring(e.DataRow("编号").length-3,4)) If max > "" Then idx=cint(max)+1 Else idx = 1 End If e.DataRow("编号") = bh & Format(idx,"0000") End If End If End Select 谢谢!
|
-- 作者:朱女士 -- 发布时间:2020/7/22 14:40:00 -- 编号列不是整齐的,还有这样的:wd-ABB-20191228-0978 |
-- 作者:有点蓝 -- 发布时间:2020/7/22 14:44:00 -- Dim bh As String = "wd-" & e.DataRow("客户") & "-" & Format(d,"yyyyMMdd") & "-" \'生成编号的前缀 If e.DataRow("编号").StartsWith(bh) = False \'如果单据编号前缀不符 Dim max As String Dim idx As Integer Dim flt As String max = e.DataTable.SQLCompute("Max(Right(编号,4))") If max > "" Then idx=cint(max)+1 Else idx = 1 End If e.DataRow("编号") = bh & Format(idx,"0000") e.DataRow.save End If
|
-- 作者:朱女士 -- 发布时间:2020/7/22 15:17:00 -- 执行出错:好像是这句? max = e.DataTable.SQLCompute("Max(Right(编号,4))"),错误信息:调用的目标发生了异常。从字符串“REF!”到类型“Integer”的转换无效。 输入字符串的格式不正确。 |
-- 作者:有点蓝 -- 发布时间:2020/7/22 15:20:00 -- max = e.DataTable.SQLCompute("Max(Right(编号,4))") If max > "" Then idx=cint(max.substring(max.length - 4))+1
|
-- 作者:朱女士 -- 发布时间:2020/7/22 15:40:00 -- 老师实在不好意思,这个问题太麻烦您了,又出错了:从字符串“REF!”到类型“Integer”的转换无效。 输入字符串的格式不正确。
|
-- 作者:有点蓝 -- 发布时间:2020/7/22 15:49:00 -- 请上传实例说明 |
-- 作者:朱女士 -- 发布时间:2020/7/22 15:57:00 -- wd-魏德曼-20200709-0474 wd-魏德曼-20200709-0474 wd-魏德曼-20200709-0474 wd-魏德曼-20200709-0474 wd-魏德曼-20200709-0474 wd-魏德曼-20200709-0474 wd-魏德曼-20200709-0474 wd-魏德曼-20200709-0474 wd-魏德曼-20200709-0474 wd-魏德曼-20200421-0209 这是编号列的部分内容,我要取后四位最大值加1,作为新行的编号后四位。
|
-- 作者:朱女士 -- 发布时间:2020/7/22 15:59:00 -- 这里如果我要今天输入魏德曼的数据,应该新行编号自动:为wd-魏德曼-20200722-0475 |
-- 作者:朱女士 -- 发布时间:2020/7/22 15:59:00 -- 老师麻烦了这个问题困扰我一天了。 |