以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 字符流水号问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=100236) |
||||
-- 作者:ming8604 -- 发布时间:2017/5/7 17:08:00 -- 字符流水号问题 专家,你好,请问字符流水号我应该怎样写代码? 不同的物料分类,有不同的流水号,部分流水号是三位的,有部分流水号是四位。先要判断原流水号字符长度,再转换成数字,再加一,再保存新流水号为字符(原来是三位的,现在还是三位,原四位的就是现在就是四位)。 我此数据表datacolchanged代码是: If e.DataCol.Name = "物料分类代码" Then \'如果内容发生变动的是物料分类代码列 If e.NewValue Is Nothing Then \'如果新值是空白,也就是物料分类代码内容为空 e.DataRow("流水号") = Nothing \'那么清空此行的内容 Else Dim dr As DataRow \'否则在物料编码表查找同名的物料分类代码行,将找到的行赋值给变量dr dr = DataTables("物料编码").Find("[物料分类代码] = \'" & e.NewValue & "\' and _Identify <> " & e.DataRow("_Identify"), "_Identify desc") If dr IsNot Nothing Then \'如果找到了同名的物料分类代码行,也就是dr不是Nothing e.DataRow("主组码") = dr("主组码") e.DataRow("分类码") = dr("分类码") e.DataRow("物料分类描述") = dr("物料分类描述") e.DataRow("主组描述") = dr("主组描述") End If End If End If 请问如何编写? 谢谢
[此贴子已经被作者于2017/5/7 17:09:12编辑过]
|
||||
-- 作者:有点色 -- 发布时间:2017/5/7 17:14:00 -- 上传具体foxtable例子说明问题。 |
||||
-- 作者:ming8604 -- 发布时间:2017/5/7 17:23:00 -- 目的是,新创建一个物料,在原物料流水号上,加一。
|
||||
-- 作者:有点色 -- 发布时间:2017/5/7 22:07:00 -- If e.DataCol.Name = "物料分类代码" Then \'如果内容发生变动的是物料分类代码列 If e.NewValue Is Nothing Then \'如果新值是空白,也就是物料分类代码内容为空 e.DataRow("流水号") = Nothing \'那么清空此行的内容 Else Dim dr As DataRow \'否则在物料编码表查找同名的物料分类代码行,将找到的行赋值给变量dr dr = DataTables("物料编码").Find("[物料分类代码] = \'" & e.NewValue & "\' and _Identify <> " & e.DataRow("_Identify"), "_Identify desc") If dr IsNot Nothing Then \'如果找到了同名的物料分类代码行,也就是dr不是Nothing e.DataRow("主组码") = dr("主组码") e.DataRow("分类码") = dr("分类码") e.DataRow("物料分类描述") = dr("物料分类描述") e.DataRow("主组描述") = dr("主组描述") Dim str As String = dr("流水号") e.DataRow("流水号") = format(val(str)+1, "".PadLeft(str.Length, "0")) End If End If End If |
||||
-- 作者:ming8604 -- 发布时间:2017/5/25 9:54:00 -- 专家,你好。
现在我的这张表的流水排序乱了。这样我的语句应该是要修改的,是查找历史同物料分类最大流水号的行。
请问这样的数据上万、几万会不会运算就卡很多了? 另,请问代码如何改。谢谢 |
||||
-- 作者:有点色 -- 发布时间:2017/5/25 11:52:00 -- dr = DataTables("物料编码").Find("[物料分类代码] = \'" & e.NewValue & "\' and _Identify <> " & e.DataRow("_Identify"), "_Identify desc") 改成
dr = DataTables("物料编码").Find("[物料分类代码] = \'" & e.NewValue & "\' and _Identify <> " & e.DataRow("_Identify"), "流水号 desc")
运算不会慢,因为只是查找一行数据。 |