Foxtable(狐表)用户栏目专家坐堂 → 组装共通品合并加工


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

主题:组装共通品合并加工

美女呀,离线,留言给我吧!
zhangning
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2017/7/4 14:28:00 [只看该作者]

现出现异常的是如红框部分

图片点击可在新窗口打开查看此主题相关图片如下:合并3.png
图片点击可在新窗口打开查看


 回到顶部
美女呀,离线,留言给我吧!
zhangning
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2017/7/4 14:29:00 [只看该作者]

红框部分是正确的,代码所产生的效果是不全

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/4 14:37:00 [只看该作者]

Dim t As Table = Tables("加工排产")
Dim dic As new Dictionary(of String, String)
For i As Integer = 0 To t.Rows.count - 1 Step 2
    Dim r1 As Row = t.Rows(i)
    Dim r2 As Row = t.Rows(i+1)
    Dim key As String = r1("部组名") & "|" & r1("部品id") & "|" & r1("调度")
    If dic.ContainsKey(key) = False Then
        dic.Add(key, r1("_Identify") & "," & r2("_Identify"))
    End If
Next
Dim idxs As String = ""
For Each key As String In dic.Keys
    idxs &= dic(key) & ","
Next
'msgbox(idxs)
t.filter = "_Identify in (" & idxs.trim(",") & ")"

 回到顶部
美女呀,离线,留言给我吧!
zhangning
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2017/7/4 15:02:00 [只看该作者]

老师,上楼 红色的代码是正确的吗,我替换后,还是出现16楼的错误,没有出现21楼的正确结果,不知怎么回事?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/4 15:06:00 [只看该作者]

以下是引用zhangning在2017/7/4 15:02:00的发言:
老师,上楼 红色的代码是正确的吗,我替换后,还是出现16楼的错误,没有出现21楼的正确结果,不知怎么回事?

 

撤销所有筛选/或者重新打开项目。

 

重新执行代码


 回到顶部
美女呀,离线,留言给我吧!
zhangning
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2017/7/4 15:40:00 [只看该作者]

老师,刚刚照着实验了一下,合并后行数,和数量都正确了,

只是还有一个问题,如图,

图片点击可在新窗口打开查看此主题相关图片如下:数量1.png
图片点击可在新窗口打开查看
看不懂代码,能否麻烦老师详细解释一下23楼代码的意思,麻烦老师了

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/4 15:53:00 [只看该作者]

Dim t As Table = Tables("加工排产")
Dim dic As new Dictionary(of String, String)
For i As Integer = 0 To t.Rows.count - 1 Step 2
    Dim r1 As Row = t.Rows(i)
    Dim r2 As Row = t.Rows(i+1)
    Dim key As String = r1("部组名") & "|" & r1("部品id") & "|" & r1("调度")
    If dic.ContainsKey(key) = False Then
        dic.Add(key, r1("_Identify") & "," & r2("_Identify"))
        r1("最终良品数") += t.compute("sum(最终良品数)", "类别 = '计划' and isnull(部组名,'')+'|'+isnull(部品id,'')+'|'+isnull(调度,'') = '" & key & "' and _Identify <> " & r1("_Identify"))
    End If
Next
Dim idxs As String = ""
For Each key As String In dic.Keys
    idxs &= dic(key) & ","
Next
'msgbox(idxs)
t.filter = "_Identify in (" & idxs.trim(",") & ")"


 回到顶部
美女呀,离线,留言给我吧!
zhangning
  28楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2017/7/4 16:19:00 [只看该作者]

谢谢老师,这个数量也出来了,
老师,现在出现了一个新的问题,
我发现运行楼上代码后,切换命令是处于选中状态,如图:

图片点击可在新窗口打开查看此主题相关图片如下:切换.png
图片点击可在新窗口打开查看

数量是合并的数量(带颜色的),合并后共16行,

如取消切换状态,共28行,数量还是合并的数量,如图:

图片点击可在新窗口打开查看此主题相关图片如下:不切换.png
图片点击可在新窗口打开查看

理想的效果是,如取消切换状态,最好能是原来的数量(不合并)

逻辑:合并状态,数量就合并,非合并状态,数量就不合并。

请问老师,这种效果,如何实现呢?



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/4 16:29:00 [只看该作者]

 这样容易出问题,合并那一行的良品数有可能在多次计算后出现差错,最终数据无法还原。

 

 需要添加辅助列,存放良品数。这样无论怎么更改数据,都不至于数据丢失。

 

 这样,你合并的时候,显示一列,取消合并的时候,显示另一列,就好了。

 


 回到顶部
美女呀,离线,留言给我吧!
zhangning
  30楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2017/7/7 9:06:00 [只看该作者]

老师,还是在这个项目中,加工排产表中,曾经达到过252列,之后再插入列,出现以下错误:

对 COM 组件的调用返回了错误 HRESULT E_FAIL。

但,之后删除了几列,数量少于252列,但要插入列时,还是出现以上错误,
请问老师,这种情况如何解决呀?
麻烦老师

 回到顶部
总数 32 上一页 1 2 3 4 下一页