以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]比例问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=71039)

--  作者:linswcfr
--  发布时间:2015/7/3 15:49:00
--  [求助]比例问题

如何对同一种物料进行比例控制,

1、比例总和只能为1

2、输入的比例值不能超过1

3、当物料子值只有一种为比例默认为1,当物料子值一种以上的话,总比例之和不能超过1

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目12.table

[此贴子已经被作者于2015/7/3 15:59:18编辑过]

--  作者:y2287958
--  发布时间:2015/7/3 15:54:00
--  
当物料子值只有一种为比例默认为1,当物料子值一种以上的话,比例按输入值进行进行自动扣减(物料202为0.4时,物料201自动变为0.6)
如果输入的是第三种物料,那么如何确定前面两种物料的比例?

--  作者:linswcfr
--  发布时间:2015/7/3 15:56:00
--  
再进一步扣减,总之总和不能超过1
--  作者:linswcfr
--  发布时间:2015/7/3 15:57:00
--  

对哦,逻辑不对了..


--  作者:y2287958
--  发布时间:2015/7/3 15:58:00
--  
没有规律如何扣减?随便扣减?
--  作者:linswcfr
--  发布时间:2015/7/3 15:58:00
--  

那要是一种为1

 

一种以上,总比例之和不能超过1这个要怎么做


--  作者:大红袍
--  发布时间:2015/7/3 16:01:00
--  

 

[此贴子已经被作者于2015/7/3 16:01:21编辑过]

--  作者:大红袍
--  发布时间:2015/7/3 16:05:00
--  

1、物料子值弄成数值类型;

 

2、datacolchanged事件代码

 

Select Case e.DataCol.Name
    Case "物料子值"
        Dim sum As Double = e.DataTable.Compute("sum(物料子值)", "物料主值 = \'" & e.DataRow("物料主值") & "\'")
        For Each dr As DataRow In e.DataTable.Select("物料主值 = \'" & e.DataRow("物料主值") & "\'")
            dr("比例") = dr("物料子值") / sum
        Next
End Select