Foxtable(狐表)用户栏目专家坐堂 → [求助] 如何截取连续号码的起止号?


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

主题:[求助] 如何截取连续号码的起止号?

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


加好友 发短信
等级:童狐 帖子:274 积分:2960 威望:0 精华:0 注册:2011/9/19 0:18:00
[求助] 如何截取连续号码的起止号?  发帖心情 Post By:2013/11/1 10:17:00 [只看该作者]

有一库存清单,想根据号码累总成累总表,如附图:

 

意思是以产品为索引,在相同产品中每一个连续号码段生成一组,并取得头尾号码。

 


图片点击可在新窗口打开查看此主题相关图片如下:库存清单.jpg
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:库存累总.jpg
图片点击可在新窗口打开查看

 


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/1 10:24:00 [只看该作者]

DataTables("表名").Compute("max(包号)")
DataTables("表名").Compute("min(包号)")

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


加好友 发短信
等级:童狐 帖子:274 积分:2960 威望:0 精华:0 注册:2011/9/19 0:18:00
  发帖心情 Post By:2013/11/1 10:35:00 [只看该作者]

这个表达式不难,难的是要“每个连续号码段为一组”,中间断号的又得另起一组,而且是以产品为单位。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/1 10:36:00 [只看该作者]

不是很明白你的意思,请上个例子,加以详细描述.

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


加好友 发短信
等级:童狐 帖子:274 积分:2960 威望:0 精华:0 注册:2011/9/19 0:18:00
  发帖心情 Post By:2013/11/1 10:42:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.rar

这个就是上述附图的内容,“清单”是原始表,“累总”是目标表。想要的是如何从“清单”生成“累总”,不管是自动或者是按按钮都行。


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/1 10:47:00 [只看该作者]

请问能否说清楚你的需求呢,所谓的号码段是什么意思呢?  没办法看懂你的需求.

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/1 10:50:00 [只看该作者]

连续的号码为一段? 有多少段就添加多少天数据到累总表?

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


加好友 发短信
等级:童狐 帖子:274 积分:2960 威望:0 精华:0 注册:2011/9/19 0:18:00
  发帖心情 Post By:2013/11/1 10:57:00 [只看该作者]

比如在表中,CP1 就有2个号码段,001-003, 007-008 ,中间断了004-006 。CP2 就有3个号码段,012-014, 021-022, 036 ,中间断了好几个。

 

其实这个想法的目的是方便仓管员查询库存,清单里如果有成千上万包产品,看起来满眼水,累总表则看起来更有感觉一些。说到底,清单是给电脑看的,累总是给人看的。

 

当然,用 Excel 也可以做到累总,但我想包括在项目里,形成一个完整的体系。

[此贴子已经被作者于2013-11-1 11:05:02编辑过]

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/11/1 11:36:00 [只看该作者]

以前做过,和楼主的要求完全一样,当时费了不少功夫,例子找不着了。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/11/1 11:50:00 [只看该作者]

命令窗口执行:

 

DataTables("产品库存累总").DataRows.clear()
Dim nms As List(of String) = DataTables("产品库存清单").GetValues("产品名称")
For Each nm As String In nms
    Dim drs As List(of DataRow) = DataTables("产品库存清单").Select("产品名称 = '" & nm & "'","包号")
    Dim r As DataRow
    Dim idx As Integer
    For Each dr As DataRow In drs
        Dim rid As Integer = dr("包号").Substring(3,3)
        If  idx = 0 OrElse rid  > idx + 1
            r = DataTables("产品库存累总").addnew
            r("产品名称") = nm
            r("包号起") = dr("包号")
            r("包号止") = dr("包号")
            r("包数") = 1
        Else
            r("包号止") = dr("包号")
            r("包数") = r("包数") + 1
        End If
        idx = rid
    Next
Next


 回到顶部
总数 16 1 2 下一页