Foxtable(狐表)用户栏目专家坐堂 → 字符流水号问题


  共有2528人关注过本帖树形打印复制链接

主题:字符流水号问题

帅哥哟,离线,有人找我吗?
ming8604
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:82 积分:816 威望:0 精华:0 注册:2016/9/30 11:31:00
字符流水号问题  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/7 17:14:00 [只看该作者]

 上传具体foxtable例子说明问题。

 回到顶部
帅哥哟,离线,有人找我吗?
ming8604
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:82 积分:816 威望:0 精华:0 注册:2016/9/30 11:31:00
  发帖心情 Post By:2017/5/7 17:23:00 [只看该作者]

目的是,新创建一个物料,在原物料流水号上,加一。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:编码.zip


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:82 积分:816 威望:0 精华:0 注册:2016/9/30 11:31:00
  发帖心情 Post By:2017/5/25 9:54:00 [只看该作者]

专家,你好。

 

现在我的这张表的流水排序乱了。这样我的语句应该是要修改的,是查找历史同物料分类最大流水号的行。

 

请问这样的数据上万、几万会不会运算就卡很多了?  另,请问代码如何改。谢谢


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By: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")

 

运算不会慢,因为只是查找一行数据。
       


 回到顶部