Foxtable(狐表)用户栏目专家坐堂 → 我想想,你们也帮我想想,复杂的数学逻辑题


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

主题:我想想,你们也帮我想想,复杂的数学逻辑题

美女呀,离线,留言给我吧!
意悠心轻
  91楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/3/1 9:10:00 [只看该作者]

    修改价目表价格,已引用到打砂工资表单价不随之更新,要删除这行的规格、单价重选,单价才是更新后单价,这样不方便。

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


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

以下是引用意悠心轻在2016/3/1 9:10:00的发言:
    修改价目表价格,已引用到打砂工资表单价不随之更新,要删除这行的规格、单价重选,单价才是更新后单价,这样不方便。

 

datacolchanged事件

 

If e.DataCol.name = "单价" Then
    DataTables("打砂车间工资表").datacols("规格").RaiseDataColChanged("规格 = '" & e.DataRow("规格") & "'")
End If


 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  93楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/4/18 14:17:00 [只看该作者]

密码:111222333

分配后金额的公式依然有问题,1789、1836行姓名为空,分配后金额仍有数,它应为空,生产形式为直接分配,分配后金额应为当天参与该组直接分配对应金额之和除于当天参与该组直接分配人数之和,姓名为空,分配后金额为空。


[此贴子已经被作者于2016/6/26 15:36:54编辑过]

 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  94楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/4/18 14:43:00 [只看该作者]

公式还有问题,怎么不理我了?


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


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

If DataTables("打砂车间工资表").DataCols.Contains("备注1") = False Then
    DataTables("打砂车间工资表").DataCols.add("备注1", Gettype(String))
End If
Dim dt As DataTable = DataTables("打砂车间工资表")
For Each ary() As String In dt.GetValues("日期|生产形式", "日期 is not null and 生产形式 = '安比例分配'")
    Dim count_rs As Integer = dt.GetValues("姓名", "日期=#" & ary(0) & "# and 生产形式='" & ary(1) & "'").count
    Dim drs_ds As List(Of DataRow) = dt.Select("日期=#" & ary(0) & "# and 生产形式='" & ary(1) & "' and (备注 <> '机动' or 备注 is null)")
    Dim drs_jd As List(Of DataRow) = dt.Select("日期=#" & ary(0) & "# and 生产形式='" & ary(1) & "' and 备注 = '机动'")
    Dim smoney As Double = dt.compute("sum(金额)", "日期=#" & ary(0) & "# and 生产形式='" & ary(1) & "'")
    Dim bl As Double = 0
    If count_rs < 8 Then
        bl = 0.77
    Else
        bl = 0.74
    End If
    Dim stime As Double = dt.compute("sum(计件工时)", "日期=#" & ary(0) & "# and 生产形式='" & ary(1) & "'and ( 备注 <> '机动' or 规格 is null)")
   
    For Each dr As DataRow In drs_ds
        dr("分配后金额") = format(dr("金额") * bl,"0.00")
    Next
   
    stime = dt.compute("sum(计件工时)", "日期=#" & ary(0) & "# and 生产形式='" & ary(1) & "' and 备注 = '机动'")
    Dim dj = smoney * (1-bl) / stime
    For Each dr As DataRow In drs_jd
        dr("分配后金额") = format(dj * dr("计件工时"),"0.00")
    Next
Next
For Each ary() As String In dt.GetValues("日期|生产形式", "日期 is not null and 生产形式 like '*直接分配*'")
    Dim drs As List(Of DataRow) = DataTables("打砂车间工资表").Select("日期=#" & ary(0)& "# and 生产形式='" & ary(1) & "'")
    Dim stime As Double = dt.compute("sum(计件工时)", "日期=#" & ary(0) & "# And 生产形式='" & ary(1) & "'")
    Dim ls As new List(Of String)
    Dim smoney As Double = dt.compute("sum(金额)", "日期=#" & ary(0) & "# and 生产形式='" & ary(1) & "'")
    Dim count As Integer = 0
    For Each dr As DataRow In drs
        Dim str As String = dr("姓名")
        If str > "" Then
            If ls.Contains(str) = False Then
                count += 1
                ls.add(str)
                dr("备注1") = dr("备注1").replace("重复", Nothing)
            Else
                dr("备注1") = "重复" & dr("备注1").replace("重复", Nothing)
            End If
        Else
            dr("分配后金额") = Nothing
        End If
    Next
    For Each dr As DataRow In drs
        If dr("备注1") Like "*重复*" OrElse dr.IsNull("姓名") Then
            dr("分配后金额") = Nothing
        Else
            dr("分配后金额") = format(smoney/count, "0.00")
        End If
    Next
Next
For Each dr As DataRow In DataTables("打砂车间工资表").Select("生产形式 = '个人计件'")
    dr("分配后金额") = format(dr("数量") * dr("单价"),"0.00")
Next

Tables("打砂车间工资表").Sort = "日期,规格,生产形式"


 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  96楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/4/23 9:08:00 [只看该作者]

密码:111222333   

    价格表里添加新的品种、单价,打砂车间工资表中的规格目录树并无更新添加,我要修改或添加价格表中的单价,打砂车间工资表的规格目录树随之同步更新。


[此贴子已经被作者于2016/6/26 15:37:08编辑过]

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/4/23 9:35:00 [只看该作者]

测试没有问题, 价格表里DataColChangeds事件代码去掉,窗口2 每次打开都会查询最新数据的,没必要画蛇添足。

buildtree默认是按照规则名称排序的,可能添加的新品种排到中间了

如果想按照添加的顺序排列,窗口2AfterLoad 事件改成

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("价目表","规格","","[_Identify]")

 回到顶部
总数 97 上一页 1 2 3 4 5 6 7 8 9 10