Foxtable(狐表)用户栏目专家坐堂 → 代替人工,点选列项目首项


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

主题:代替人工,点选列项目首项

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


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
代替人工,点选列项目首项  发帖心情 Post By:2017/9/4 15:45:00 [显示全部帖子]

老师,您好!
我已经设置好了“调度设备”列的列项目,
需要选择列项目的第一个,现在是人工选,月初排计划时,工作量很大,
有没有什么方法,可以自动选?

请参考附图
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:截图.xls



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


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2017/9/5 15:14:00 [显示全部帖子]

老师,事先已经将列表项目进行了如下设定:
在prepareedit事件里
If e.Col.name Like "*调度设备*" Then
    Dim str As String = ""
    Dim filter As String = "部品ID = '" & e.Row("部品ID") & "'"
    Dim idx As String = e.Col.Name.Replace("第", "").Replace("序_调度设备", "")
    Dim fdr As DataRow = DataTables("工程和工时").Find(filter & " and 工序序号 = '" & idx & "'")
    If fdr IsNot Nothing Then
        For Each dc As DataCol In DataTables("工程和工时").DataCols
            If dc.name.StartsWith("使用机器") AndAlso fdr.IsNull(dc.name) = False Then
                str &= fdr(dc.name) & "|"
            End If
        Next
    End If
    e.Col.ComboList = str
End If
If e.Col.name Like "*调度设备*" Then
    Dim str As String = ""
    Dim filter As String = "部品ID = '" & e.Row("部品ID") & "'"
    Dim idx As String = e.Col.Name.Replace("第", "").Replace("序_调度设备", "")
    Dim fdr As DataRow = DataTables("工程和工时").Find(filter & " and 工序序号 = '" & idx & "'")
    If fdr IsNot Nothing Then
        For Each dc As DataCol In DataTables("工程和工时").DataCols
            If dc.name.StartsWith("使用机器") AndAlso fdr.IsNull(dc.name) = False Then
                Dim flag As Boolean = True
                For Each c As Col In e.Table.Cols
                    If c.name Like "*调度设备*" Then
                        Dim i As Integer = c.Name.Replace("第", "").Replace("序_调度设备", "")
                        For Each dr As DataRow In e.Table.DataTable.Select(c.name & " = '" & fdr(dc.name) & "'")
                            If dr("第" & i & "序_开始日") < e.Row("第" & i & "序_开始日") Then
                                If dr("第" & i & "序_结束日") >= e.Row("第" & i & "序_开始日") Then
                                    flag = False
                                End If
                            ElseIf dr("第" & i & "序_开始日") >= e.Row("第" & i & "序_开始日") Then
                                If dr("第" & i & "序_开始日") <= e.Row("第" & i & "序_结束日") Then
                                    flag = False
                                End If
                            End If
                        Next
                        If flag = False Then Exit For
                    End If
                Next
                If flag = True Then
                    str &= fdr(dc.name) & "|"
                End If
            End If
        Next
    End If
    e.Col.ComboList = str
End If


现在需要将点击列箭头,显示在最上面的自动填充到单元格里,
具体表的信息如图:


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


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2017/9/5 15:15:00 [显示全部帖子]


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

我写的代码是:
If e.DataRow("类别") = "计划"  Then
    e.DataRow("*序_调度设备*")  = Tables("加工排产").Cols("*序_调度设备*").ComboList.Split("|")(0)
End If



没有反应,请老师帮斧正,谢谢!

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


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2017/9/6 8:36:00 [显示全部帖子]

老师,您好!
谢谢您帮我写代码,我运行了一下,有几个问题:
1.不是所有的都自动添加了。
2.已经添加的,也不是按照,先使用机器1,如机器1被占用,就选机器2,以此类推

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:精益制造改.rar


麻烦老师,帮看看,谢谢!

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


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2017/9/6 8:36:00 [显示全部帖子]

密码:qdkf
开发者

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


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2017/9/6 8:46:00 [显示全部帖子]

3.只是想在“类别”列内容是“计划”时才排设备


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


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2017/9/6 11:49:00 [显示全部帖子]

老师,在争设备的代码处,我想加入一个条件,
条件是:先判断一下工程在“工程和工时”表中,的“加工工序”列是不是TRUE,
如是,则执行原来的那些代码,如是FALSE,则填充“使用机器1”的内容,

因水平有限,还得麻烦老师帮帮忙,谢谢!



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


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2017/9/6 13:10:00 [显示全部帖子]

老师,实验了一下,还有如下问题,请老师帮看看,谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:问题.xls



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


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2017/9/6 15:40:00 [显示全部帖子]

老师,这是现状的
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:精益制造改1.rar

开发者  qdkf
----------------------------------------------------------------------------------------
希望达到的效果是:
如是工程在“工程和工时”中的“加工工序”列是TRUE 则说明时加工工序,则需要争设备
根据同一台设备在同一时间内,只能加工一种产品的原理,如出现在同一时间内,多种产品都用了同一台设备,则属于争设备,
如出现争设备,则要优先在表中前面出现的产品使用,前面是指在表中从上往下,重要度已经按降序排列好了,
每种产品所使用的机器,优先是“使用机器1”,之后是“使用机器2”,
如“使用机器1”被占用,则选“使用机器2”,如“使用机器2”也被占用的话,就选“使用机器3”,以此类推。。。。。

如不是加工工序,则没有争设备的情况,在各工序的“调度设备”处直接显示“使用设备1”即可。
---------------------------------------------------------------------------------------------------
现状存在的问题如下:

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


争抢设备处还没有验证。

情况比较复杂,请老师帮帮忙,麻烦老师了,图片点击可在新窗口打开查看图片点击可在新窗口打开查看



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


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2017/9/7 14:37:00 [显示全部帖子]

老师,谢谢您!

现在还需要加入条件:

1. If e.DataRow.IsNull("部组名") = True AndAlso e.DataRow.IsNull("部品ID") = False
    执行以上代码
  或   If e.DataRow.IsNull("部组名") = False AndAlso e.DataRow.IsNull("部品ID") = False

    也需要执行以上代码
2.If e.DataRow.IsNull("部组名") = False AndAlso e.DataRow.IsNull("部品ID") = true

需要将以上代码中的”部品ID"更改成“部组名”

请问老师,这个如何追加代码呀,特别是第一个条件,请老师教教我,谢谢!





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