Foxtable(狐表)用户栏目专家坐堂 → 控制生产累计数不允许大于计划生产数


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

主题:控制生产累计数不允许大于计划生产数

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/1 9:05:00 [显示全部帖子]

 参考代码

 

DataTables("生产进度汇总表").DataRows.Clear
Dim Arys As List(Of String())
Arys = DataTables("冲压车间工资表").GetValues("产品名称|生产工序|订单号", "产品名称 is not null")
For Each Ary As String() In Arys
    Dim dr As DataRow = DataTables("生产进度汇总表").AddNew()
    dr("产品名称") = Ary(0)
    dr("生产工序") = Ary(1)
    dr("订单号") = Ary(2)
    dr("实际生产数") = DataTables("冲压车间工资表").Compute("sum(数量)","[产品名称] = '" & Ary(0) & "' and 生产工序='" & Ary(1) & "' and 订单号='" & Ary(2) & "'")
Next
Arys = DataTables("半成品完工进仓表").GetValues("产品名称|订单号","产品名称 is not null")
For Each Ary As String() In Arys
    Dim dr As DataRow = DataTables("生产进度汇总表").find("[产品名称] = '" & Ary(0) &  "' and 订单号='" & Ary(1)& "'")
    If dr Is Nothing Then
        dr = DataTables ("生产进度汇总表").AddNew()
    End If
    dr("产品名称") = Ary(0)
    dr("订单号") = Ary(1)
    dr("半成品进仓数") += DataTables("半成品完工进仓表").Compute("sum(数量)","[产品名称] = '" & Ary(0) &  "' and 订单号='" & Ary(1)& "'")
Next
Arys = DataTables("生产计划表").GetValues("产品名称|订单号","产品名称 is not null")
For Each Ary As String() In Arys
    Dim dr As DataRow = DataTables("生产进度汇总表").find("[产品名称] = '" & Ary(0) &  "' and 订单号='" & Ary(1)& "'")
    If dr Is Nothing Then
        dr = DataTables ("生产进度汇总表").AddNew()
    End If
    dr("产品名称") = Ary(0)
    dr("订单号") = Ary(1)
    dr("生产计划数") += DataTables("生产计划表").Compute("sum(数量)","[产品名称] = '" & Ary(0) &  "' and 订单号='" & Ary(1)& "'")
Next


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/15 9:34:00 [显示全部帖子]

 上传实例。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/15 10:12:00 [显示全部帖子]

 


以下内容是专门发给有点色浏览

[此贴子已经被作者于2016/12/16 16:54:34编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/15 17:26:00 [显示全部帖子]

Dim t As Table = e.Form.DropTable
Dim Filter As String = "1=1"
If t.Current.IsNull("产品名称") = False Then
    filter &= " and [产品名称] = '" & t.Current("产品名称") & "'"
End If
If t.Current.IsNull("生产工序") = False Then
    filter &= " And 生产工序='" & t.current("生产工序") & "'"
End If
If t.Current.IsNull("订单号") = False Then
    filter &= " And 订单号='" & t.current("订单号") & "'"
End If

DataTables("生产进度汇总表").StopRedraw
DataTables("生产进度汇总表").DataRows.Clear
Dim Arys As List(Of String())
Arys = DataTables("冲压车间工资表").GetValues("产品名称|生产工序|订单号", filter)
For Each Ary As String() In Arys
    Dim dr As DataRow = DataTables("生产进度汇总表").AddNew()
    dr("产品名称") = Ary(0)
    dr("生产工序") = Ary(1)
    dr("订单号") = Ary(2)
    dr("实际生产数") = DataTables("冲压车间工资表").Compute("sum(数量)","[产品名称] = '" & Ary(0) & "' and 生产工序='" & Ary(1) & "' and 订单号='" & Ary(2) & "'")
    dr("半成品进仓数") = DataTables("半成品完工进仓表").Compute("sum(数量)","[产品名称] = '" & Ary(0) & "' and 订单号='" & Ary(2) & "'")
    dr("生产计划数") = DataTables("半成品完工进仓表").Compute("sum(数量)","[产品名称] = '" & Ary(0) & "' and 订单号='" & Ary(2) & "'")
Next

DataTables("生产进度汇总表").ResumeRedraw


e.Form.DropDownBox.Select() '将输入焦点返回下拉列表框


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/16 8:42:00 [显示全部帖子]

 理解不了你的逻辑,请看懂代码,改成你真实需要功能。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/16 10:26:00 [显示全部帖子]

 大致代码,细节可以自己调整。

 

Dim t As Table = e.Form.DropTable
Dim Filter As String = "1=1"
If t.Current.IsNull("产品名称") = False Then
    filter &= " and [产品名称] = '" & t.Current("产品名称") & "'"
End If
If t.Current.IsNull("生产工序") = False Then
    filter &= " And 生产工序='" & t.current("生产工序") & "'"
End If
If t.Current.IsNull("订单号") = False Then
    filter &= " And 订单号='" & t.current("订单号") & "'"
End If

DataTables("生产进度汇总表").StopRedraw
DataTables("生产进度汇总表").DataRows.Clear
Dim Arys As List(Of String())
Arys = DataTables("冲压车间工资表").GetValues("产品名称|生产工序|订单号", filter)
For Each Ary As String() In Arys
    Dim dr As DataRow = DataTables("生产进度汇总表").AddNew()
    dr("产品名称") = Ary(0)
    dr("生产工序") = Ary(1)
    dr("订单号") = Ary(2)
Next
For Each ary As String() In DataTables("生产计划表").GetValues("产品名称|订单号", filter)
    Dim fdr As DataRow = DataTables("生产进度汇总表").Find("[产品名称] = '" & Ary(0) & "' and 订单号='" & Ary(1) & "'")
    If fdr Is Nothing Then
        Dim dr As DataRow = DataTables("生产进度汇总表").AddNew()
        dr("产品名称") = Ary(0)
        dr("订单号") = Ary(1)
    End If
Next
For Each dr As DataRow In DataTables("生产进度汇总表").DataRows
    dr("实际生产数") = DataTables("冲压车间工资表").Compute("sum(数量)","[产品名称] = '" & dr("产品名称") & "' and 生产工序='" & dr("生产工序") & "' and 订单号='" & dr("订单号") & "'")
    dr("半成品进仓数") = DataTables("半成品完工进仓表").Compute("sum(数量)","[产品名称] = '" & dr("产品名称") & "' and 订单号='" & dr("订单号") & "'")
    dr("生产计划数") = DataTables("生产计划表").Compute("sum(数量)","[产品名称] = '" & dr("产品名称") & "' and 订单号='" & dr("订单号") & "'")
Next

DataTables("生产进度汇总表").ResumeRedraw


e.Form.DropDownBox.Select() '将输入焦点返回下拉列表框


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/16 11:22:00 [显示全部帖子]

Dim t As Table = e.Form.DropTable
Dim Filter As String = "1=1"
Dim Filter2 As String = "1=1"
If t.Current.IsNull("产品名称") = False Then
    filter &= " and [产品名称] = '" & t.Current("产品名称") & "'"
    filter2 &= " and [产品名称] = '" & t.Current("产品名称") & "'"
End If
If t.Current.IsNull("生产工序") = False Then
    filter &= " And 生产工序='" & t.current("生产工序") & "'"
End If
If t.Current.IsNull("订单号") = False Then
    filter &= " And 订单号='" & t.current("订单号") & "'"
    filter2 &= " And 订单号='" & t.current("订单号") & "'"
End If

DataTables("生产进度汇总表").StopRedraw
DataTables("生产进度汇总表").DataRows.Clear
Dim Arys As List(Of String())
Arys = DataTables("冲压车间工资表").GetValues("产品名称|生产工序|订单号", filter)
For Each Ary As String() In Arys
    Dim dr As DataRow = DataTables("生产进度汇总表").AddNew()
    dr("产品名称") = Ary(0)
    dr("生产工序") = Ary(1)
    dr("订单号") = Ary(2)
Next
For Each ary As String() In DataTables("生产计划表").GetValues("产品名称|订单号", filter2)
    Dim fdr As DataRow = DataTables("生产进度汇总表").Find("[产品名称] = '" & Ary(0) & "' and 订单号='" & Ary(1) & "'")
    If fdr Is Nothing Then
        Dim dr As DataRow = DataTables("生产进度汇总表").AddNew()
        dr("产品名称") = Ary(0)
        dr("订单号") = Ary(1)
    End If
Next
For Each dr As DataRow In DataTables("生产进度汇总表").DataRows
    dr("实际生产数") = DataTables("冲压车间工资表").Compute("sum(数量)","[产品名称] = '" & dr("产品名称") & "' and 生产工序='" & dr("生产工序") & "' and 订单号='" & dr("订单号") & "'")
    dr("半成品进仓数") = DataTables("半成品完工进仓表").Compute("sum(数量)","[产品名称] = '" & dr("产品名称") & "' and 订单号='" & dr("订单号") & "'")
    dr("生产计划数") = DataTables("生产计划表").Compute("sum(数量)","[产品名称] = '" & dr("产品名称") & "' and 订单号='" & dr("订单号") & "'")
Next

DataTables("生产进度汇总表").ResumeRedraw


e.Form.DropDownBox.Select() '将输入焦点返回下拉列表框


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/16 16:55:00 [显示全部帖子]

以下是引用意悠心轻在2016/12/16 16:46:00的发言:
65楼的foxTable未删。

 

已隐藏,未删。下次备用。


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/18 10:09:00 [显示全部帖子]

 去写表的doubleclick、afterEdit事件,然后赋值。

 

 代码你要自己写一点的,至少赋值代码不难啊。


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/18 11:14:00 [显示全部帖子]

 直接赋值很简单

 

Dim tbl As Table = Tables("窗口5_Table1")
If tbl.Current.IsNull("本次录入数") = False Then
    e.Form.DropDownBox.Value = tbl.Current("订单号")
    Tables("冲压车间工资表").Current("数量") = tbl.Current("本次录入数")

    Tables("冲压车间工资表").Current("某列") = tbl.Current("第一列")

    Tables("冲压车间工资表").Current("某列") = tbl.Current("第二列")
End If


 回到顶部
总数 29 1 2 3 下一页