Foxtable(狐表)用户栏目专家坐堂 → [求助]CheckedComBoBox控件应用(已解决)


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

主题:[求助]CheckedComBoBox控件应用(已解决)

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]CheckedComBoBox控件应用(已解决)  发帖心情 Post By:2016/4/7 9:13:00 [只看该作者]

    一个流水线生产效率的模拟演示案例,现在可以实现对原始数据,按开始节拍至结束节拍之间(可选)的插拔卡时间进行模拟修改,但对演示效果有一定局限。

    设想应用CheckedComBoBox控件,对所选节拍序号的插拔卡时间进行修改,实现更好的演示效果。

    如何将CheckedComBoBox控件应用到下面这段代码中,请各位老师指教。谢谢!

For i As Integer = 1 To Tables("扎包数据2").Rows.Count -1
    Dim xlfd As Double = Rand.Next(94,106) / 100 '效率浮动
    Dim bcfd As Integer = Rand.Next(2,6) '拔插卡浮动秒时
    Dim p1 As Row = Tables("扎包数据2").Rows(i-1) '上一行
    Dim p2 As Row = Tables("扎包数据2").Rows(i) '当前行
    If i >= ksjp - 1 And i < jsjp Then
        If i = 1 Then
            p1("插卡时间") = dr("插卡时间")
            p1("拔卡时间") = p1("插卡时间").AddSeconds((gwbzms + zjsj) * p1("产量") * xlfd)
            p2("插卡时间") = p1("拔卡时间").AddSeconds(bcfd)
            p2("拔卡时间") = p2("插卡时间").AddSeconds((gwbzms + zjsj) * p2("产量") * xlfd)
        Else
            p2("插卡时间") = p1("拔卡时间").AddSeconds(bcfd)
            p2("拔卡时间") = p2("插卡时间").AddSeconds((gwbzms + zjsj) * p2("产量") * xlfd)
        End If
    Else
        If i = 1 Then
            p1("插卡时间") = dr("插卡时间")
            p1("拔卡时间") = p1("插卡时间").AddSeconds(gwbzms * p1("产量") * xlfd)
            p2("插卡时间") = p1("拔卡时间").AddSeconds(bcfd)
            p2("拔卡时间") = p2("插卡时间").AddSeconds(gwbzms * p2("产量") * xlfd)
        Else
            p2("插卡时间") = p1("拔卡时间").AddSeconds(bcfd)
            p2("拔卡时间") = p2("插卡时间").AddSeconds(gwbzms * p2("产量") * xlfd)
        End If
    End If
Next



[此贴子已经被作者于2016/4/7 15:47:33编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/7 9:24:00 [只看该作者]

 汗,看不懂你表达的意思。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/7 9:28:00 [只看该作者]

如果是限定数据,可以这样写,如

 

Dim ccbx As WinForm.CheckedComboBox = e.Form.Controls("CheckedComboBox1")

Tables("扎包数据2").Filter = "节拍号 in ('" & ccbx.Text.Replace(",", "','") & "')"


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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2016/4/7 9:55:00 [只看该作者]

打开项目,选择扎包数据2表,在右边窗口,日期选择4月6日,然后选择班组、批次、姓名,按条件加载按钮,显示当天该员工的生产记录数据。
点击修改数据按钮,就对该员工的插拔卡时间按照所选的开始节拍至结束节拍,按所选的增加比例(如30%)增加插拔卡的时间,从而改变了工效。点击恢复数据按钮,就恢复到原始数据。
现在设想:通过CheckedComBoBox控件,增加任意所选节拍序号所对应的插拔卡时间,来改变工效,提高演示效果。
具体来说,就是代码的黄色标记处,如何用CheckedComBoBox控件代码来替换,实现上述效果。


For i As Integer = 1 To Tables("扎包数据2").Rows.Count -1
    Dim xlfd As Double = Rand.Next(94,106) / 100 '效率浮动
    Dim bcfd As Integer = Rand.Next(2,6) '拔插卡浮动秒时
    Dim p1 As Row = Tables("扎包数据2").Rows(i-1) '上一行
    Dim p2 As Row = Tables("扎包数据2").Rows(i) '当前行
    If i >= ksjp - 1 And i < jsjp Then 'ksjp = 开始节拍,jsjp = 结束节拍
        If i = 1 Then
            p1("插卡时间") = dr("插卡时间")
            p1("拔卡时间") = p1("插卡时间").AddSeconds((gwbzms + zjsj) * p1("产量") * xlfd) ‘gwbzms = 工位标准秒时,zjsj = 增加时间
            p2("插卡时间") = p1("拔卡时间").AddSeconds(bcfd)
            p2("拔卡时间") = p2("插卡时间").AddSeconds((gwbzms + zjsj) * p2("产量") * xlfd)
        Else
            p2("插卡时间") = p1("拔卡时间").AddSeconds(bcfd)
            p2("拔卡时间") = p2("插卡时间").AddSeconds((gwbzms + zjsj) * p2("产量") * xlfd)
        End If
    Else
        If i = 1 Then
            p1("插卡时间") = dr("插卡时间")
            p1("拔卡时间") = p1("插卡时间").AddSeconds(gwbzms * p1("产量") * xlfd)
            p2("插卡时间") = p1("拔卡时间").AddSeconds(bcfd)
            p2("拔卡时间") = p2("插卡时间").AddSeconds(gwbzms * p2("产量") * xlfd)
        Else
            p2("插卡时间") = p1("拔卡时间").AddSeconds(bcfd)
            p2("拔卡时间") = p2("插卡时间").AddSeconds(gwbzms * p2("产量") * xlfd)
        End If
    End If
Next

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/7 9:58:00 [只看该作者]

Dim ccbx As WinForm.CheckedComboBox = e.Form.Controls("CheckedComboBox1")
Tables("扎包数据2").Filter = "节拍号 in ('" & ccbx.Text.Replace(",", "','") & "')"

For i As Integer = 1 To Tables("扎包数据2").Rows.Count -1
    Dim xlfd As Double = Rand.Next(94,106) / 100 '效率浮动
    Dim bcfd As Integer = Rand.Next(2,6) '拔插卡浮动秒时
    Dim p1 As Row = Tables("扎包数据2").Rows(i-1) '上一行
    Dim p2 As Row = Tables("扎包数据2").Rows(i) '当前行
    If i = 1 Then
        p1("插卡时间") = dr("插卡时间")
        p1("拔卡时间") = p1("插卡时间").AddSeconds((gwbzms + zjsj) * p1("产量") * xlfd) 'gwbzms = 工位标准秒时,zjsj = 增加时间
        p2("插卡时间") = p1("拔卡时间").AddSeconds(bcfd)
        p2("拔卡时间") = p2("插卡时间").AddSeconds((gwbzms + zjsj) * p2("产量") * xlfd)
    Else
        p2("插卡时间") = p1("拔卡时间").AddSeconds(bcfd)
        p2("拔卡时间") = p2("插卡时间").AddSeconds((gwbzms + zjsj) * p2("产量") * xlfd)
    End If
Next


 


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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2016/4/7 10:39:00 [只看该作者]

谢谢大红袍老师的指教,但是有问题,节拍序号没有选上的,也要显示,只是拔卡时间不要加上zjsj。代码如何修改,请大红袍老师赐教,再次感谢!!

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/7 10:44:00 [只看该作者]

Dim ccbx As WinForm.CheckedComboBox = e.Form.Controls("CheckedComboBox1")
Dim ary() As String = ccbx.text.Split(",")
For i As Integer = 1 To Tables("扎包数据2").Rows.Count -1
    Dim xlfd As Double = Rand.Next(94,106) / 100 '效率浮动
    Dim bcfd As Integer = Rand.Next(2,6) '拔插卡浮动秒时
    Dim p1 As Row = Tables("扎包数据2").Rows(i-1) '上一行
    Dim p2 As Row = Tables("扎包数据2").Rows(i) '当前行
    If array.IndexOf(ary, p2("节拍号")) >= 0 Then
        If i = 1 Then
            p1("插卡时间") = dr("插卡时间")
            p1("拔卡时间") = p1("插卡时间").AddSeconds((gwbzms + zjsj) * p1("产量") * xlfd) 'gwbzms = 工位标准秒时,zjsj = 增加时间
            p2("插卡时间") = p1("拔卡时间").AddSeconds(bcfd)
            p2("拔卡时间") = p2("插卡时间").AddSeconds((gwbzms + zjsj) * p2("产量") * xlfd)
        Else
            p2("插卡时间") = p1("拔卡时间").AddSeconds(bcfd)
            p2("拔卡时间") = p2("插卡时间").AddSeconds((gwbzms + zjsj) * p2("产量") * xlfd)
        End If
    Else
        If i = 1 Then
            p1("插卡时间") = dr("插卡时间")
            p1("拔卡时间") = p1("插卡时间").AddSeconds(gwbzms * p1("产量") * xlfd)
            p2("插卡时间") = p1("拔卡时间").AddSeconds(bcfd)
            p2("拔卡时间") = p2("插卡时间").AddSeconds(gwbzms * p2("产量") * xlfd)
        Else
            p2("插卡时间") = p1("拔卡时间").AddSeconds(bcfd)
            p2("拔卡时间") = p2("插卡时间").AddSeconds(gwbzms * p2("产量") * xlfd)
        End If
    End If
Next

 


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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2016/4/7 10:51:00 [只看该作者]

提示错误!

编译错误:未声明名称“ary”。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/7 10:52:00 [只看该作者]

认认真真看7楼代码。

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2016/4/7 10:54:00 [只看该作者]

好像p1也有关系!

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