以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求助 多表取组合值问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=84024)

--  作者:dade
--  发布时间:2016/4/21 17:27:00
--  求助 多表取组合值问题

各位专家:

     我初学,碰到一问题:某表须从其他三个表中提取不同行列的参数用于计算。

问题1.我的这种计算方式还能简化吗?

      2.这种计算需要前面几列的数据支持,这几列数据能否自动从其他表中提取?

      这是个组合取值问题,因为每家公司的一个投标价对应了三个基础参数。

      我在 DataColChanged 编了些,实在不成功。还得请高手指教几下。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:投标计算.rar


--  作者:大红袍
--  发布时间:2016/4/21 17:38:00
--  

1、请说明哪个表哪些列要做什么操作,最后得到什么效果;

 

2、请说明运算的规则。


--  作者:dade
--  发布时间:2016/4/22 8:10:00
--  
就是商务得分表S1的计算及项目编号、单位名称、随机值K1n的自动组合填充。运算公式已在DataColChanged里,谢谢大红袍
--  作者:dade
--  发布时间:2016/4/22 8:15:00
--  

运算要求为:

     YB=0   S1=0

     YB=PJ  S1=Sx

     YB>PJ  S1=Sx-Cjk*(YB-PJ)*100/PJ

     YB<PJ  S1=Sx-Djk*(PJ-YB)*100/PJ


--  作者:dade
--  发布时间:2016/4/22 8:26:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:商务得分表.png
图片点击可在新窗口打开查看
希望得到的结果
--  作者:大红袍
--  发布时间:2016/4/22 9:44:00
--  
Dim dt As DataTable = DataTables("SWDF")
Dim dt1 As DataTable = DataTables("Zb")
Dim dt2 As DataTable = DataTables("DWBJ")
Dim dt3 As DataTable = DataTables("PF1")
dt.DataRows.Clear
For Each dr As DataRow In dt2.Select("XMBH Is not null")
    Dim fdr1 As DataRow = dt1.Find("XMBH = \'" & dr("XMBH") & "\'")
    If fdr1 IsNot Nothing Then
        Dim YB As Double = dr("YB")
        For Each cdr As DataRow In dt3.Select("XMBH = \'" & dr("XMBH") & "\'")
            Dim ndr As DataRow = dt.AddNew
            ndr("XMBH") = dr("XMBH")
            ndr("dw") = dr("dw")
            ndr("K1n") = cdr("k1n")
            If yb = 0 Then
                ndr("S1") = 0
            ElseIf dr("YB") = cdr("PJ") Then
                ndr("S1") = fdr1("Sx")
            ElseIf dr("YB") > cdr("PJ") Then
                ndr("S1") = fdr1("Sx")-fdr1("Cjk")*(YB-cdr("PJ"))*100/cdr("PJ")
            ElseIf dr("YB") < cdr("PJ") Then
                ndr("S1") = fdr1("Sx")-fdr1("Djk")*(cdr("PJ")-YB)*100/cdr("PJ")
            End If
        Next
    End If
Next

--  作者:dade
--  发布时间:2016/4/22 11:15:00
--  
大红袍先生:将您的代码替代后,出现闪屏2分钟,无结果。
--  作者:大红袍
--  发布时间:2016/4/22 11:16:00
--  

单独做一个按钮运行6楼的代码,我测试没问题


--  作者:dade
--  发布时间:2016/4/22 13:05:00
--  
是的,做按钮运行,没问题。谢谢您
--  作者:dade
--  发布时间:2016/4/22 16:07:00
--  

奇怪,该代码在命令窗口执行也行的。但为什么在表事件里就不能运行呢?