以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求解?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=45230)

--  作者:lyfxybc
--  发布时间:2014/1/19 9:48:00
--  求解?

分值比例分配表A


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

成绩计算表B


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

说明:

表B王五、王四的成绩是根据表A的比值分配计算的。

表A说明:汽车只有王五按100%,即为1。

             草杂只有王四按100%,即为1。
             沥青王五、王四各占50%,即各位0.5。

表B说明

                                                                      汽车列      表B的汽车行

如:第一行计算:王五:汽车列有值,则王五的成绩=      3      x       1                  =  3,王四的成绩为0,因为草杂、沥青为空。

     其他行同理

就是表B的列,去对应表A的行,并赋值计算。 

附项目:

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

[此贴子已经被作者于2014-1-19 9:59:42编辑过]

--  作者:有点甜
--  发布时间:2014/1/19 20:58:00
--  
 表名一定要对应有关联。用下面的代码

If e.DataCol.Name Like "*成绩" = False Then
    Dim pdc As new List(Of String)
    Dim tdc As new List(Of String)
    For Each dc As DataCol In e.DataTable.DataCols
        If dc.Name Like "*成绩" Then
            pdc.Add(dc.Name)
        Else
            tdc.Add(dc.Name)
        End If
    Next
    For Each p As String In pdc
        Dim sum As Double = 0
        For Each t As String In tdc
            Dim fdr As DataRow = DataTables("表A").Find("项目 = \'" & t & "\'")
            If fdr IsNot Nothing Then
                sum += e.DataRow(t) * fdr("分值_" & p.Replace("成绩", ""))
            End If
        Next
        e.DataRow(p) = sum
    Next
End If
 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb

 



--  作者:lyfxybc
--  发布时间:2014/1/20 7:42:00
--  

非常感谢。

 


--  作者:lyfxybc
--  发布时间:2014/1/20 7:43:00
--  
再次感谢