Foxtable(狐表)用户栏目专家坐堂 → [求助]计算汇总成绩的代码


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

主题:[求助]计算汇总成绩的代码

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


加好友 发短信
等级:四尾狐 帖子:811 积分:10934 威望:0 精华:1 注册:2008/9/2 18:58:00
[求助]计算汇总成绩的代码  发帖心情 Post By:2014/5/15 23:22:00 [只看该作者]

      根据“计算公式表”,把多次考试各科成绩查询出来,再分别乘以权重后,加在一起,最后生成成绩汇总临时表(就

 

“汇总表样式”,前面各次考试的数据是查询出来的原始数据,后面的“汇总成绩”是计算权重后的结果)

 

各科成绩来自于“学生成绩库”后台数据(SQL远程数据,没有加载),统计的考试次数和科目都不是固定的,是根据“公式表”来的

 

请教查询、计算汇总成绩、生成汇总表按钮的代码

 

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


[此贴子已经被作者于2016/6/26 22:59:41编辑过]

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


加好友 发短信
等级:四尾狐 帖子:811 积分:10934 威望:0 精华:1 注册:2008/9/2 18:58:00
  发帖心情 Post By:2014/5/16 6:49:00 [只看该作者]

顶顶


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/5/16 10:54:00 [只看该作者]

列名称不符合狐表规范、列名称不统一规则、数据类型随便选、下拉列表胡乱弄,也不看看效果如何,本来简单的事情,人为弄成复杂的事情。

 

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

[此贴子已经被作者于2014-5-16 12:52:48编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/16 11:34:00 [只看该作者]

图片点击可在新窗口打开查看  图片点击可在新窗口打开查看 一做下去,就没完没了了......

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/16 11:34:00 [只看该作者]

按钮代码

 

Dim cnames As String = ""
Dim enames As String = ""
Dim onames As String = "准考号, 班级, 座号, 姓名,"
Dim dic As new Dictionary(Of String, String)
For Each dr As DataRow In DataTables("计算公式").Select("考试名称 is not null")
    Dim Total As String = ""
    For Each ary As String In dr("科目").split(",")
        If ary <> "总分" Then
            cnames &= "(Select top 1 " & ary & " from {学生成绩库} b where b.准考号 = a.准考号 And b.考试名称 = '" & dr("考试名称") & "') as [" & dr("考试名称") & "_" &  ary & "],"
            Total &= "isnull([" & dr("考试名称") & "_" &  ary & "], 0)+"
            onames &= "[" & dr("考试名称") & "_" &  ary & "],"
            If dic.ContainsKey(ary) = False Then
                dic.Add(ary, "isnull([" & dr("考试名称") & "_" &  ary & "],0) * " & dr("权重") & "+")
            Else
                dic(ary) = dic(ary) & "isnull([" & dr("考试名称") & "_" &  ary & "],0) * " & dr("权重") & "+"
            End If
        End If
    Next
    If dr("科目").contains("总分") Then
        onames &= Total.TrimEnd("+") & " as [" & dr("考试名称") & "_总分],"
    End If
    enames &= "'" & dr("考试名称") & "',"
Next

Dim zfname As String = ""
For Each k As String In dic.Keys
    onames &= dic(k).TrimEnd("+") & " As 成绩汇总_" & k & ","
    zfname &= dic(k)
Next
onames &= zfname.TrimEnd("+") & " as 成绩汇总_总分"

Dim sql As String = "select " & onames.TrimEnd(",") & "  from (Select 准考号, 班级, 座号, 姓名, " & cnames.TrimEnd(",") & " from {学生成绩库} a where 考试名称 In (" & enames.TrimEnd(",") & ") group by 准考号, 班级, 座号, 姓名) As c"
output.show(sql)

Dim q As new QueryBuilder
q.ConnectionName = "学生成绩库"
q.TableName = "成绩汇总"
q.SelectString = sql
q.Build
MainTable = Tables("成绩汇总")

[此贴子已经被作者于2014-5-16 11:35:04编辑过]

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


加好友 发短信
等级:四尾狐 帖子:811 积分:10934 威望:0 精华:1 注册:2008/9/2 18:58:00
  发帖心情 Post By:2014/5/16 12:25:00 [只看该作者]

以下是引用lsy在2014-5-16 10:54:00的发言:

列名称不符合狐表规范、列名称不统一规则、数据类型随便选、下拉列表胡乱弄,也不看看效果如何,本来简单的事情,人为弄成复杂的事情。

 

 

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

 

批评得对,出于保密,没有用原来的系统,临时做了一个,考虑不周,临时表的列名用的是原数据库的“考试名称”(原来不用考虑数字的问题,前半部分表示的是日期和年级,后半部分是名称,现在考虑倒过来),谢谢指教!

 

 

另外,汇总表列名不是固定的,是根据公式表临时生成的,附件的汇总表只是一个样式,现在变成固定的

[此贴子已经被作者于2014-5-16 12:32:11编辑过]

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


加好友 发短信
等级:四尾狐 帖子:811 积分:10934 威望:0 精华:1 注册:2008/9/2 18:58:00
  发帖心情 Post By:2014/5/16 12:26:00 [只看该作者]

以下是引用有点甜在2014-5-16 11:34:00的发言:
图片点击可在新窗口打开查看  图片点击可在新窗口打开查看 一做下去,就没完没了了......

不好意思,谢谢


 回到顶部
帅哥,在线噢!
y2287958
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4752 积分:34568 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2014/5/16 16:38:00 [只看该作者]

 

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

[此贴子已经被作者于2014-5-16 18:39:58编辑过]

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


加好友 发短信
等级:四尾狐 帖子:811 积分:10934 威望:0 精华:1 注册:2008/9/2 18:58:00
  发帖心情 Post By:2014/5/16 19:54:00 [只看该作者]

以下是引用y2287958在2014-5-16 16:38:00的发言:

 

 下载信息  [文件大小:87.9 KB  下载次数:1]
图片点击可在新窗口打开查看点击浏览该文件:aa.zip

[此贴子已经被作者于2014-5-16 18:39:58编辑过]

谢谢!第二个统计窗口按钮不理解


 回到顶部
帅哥,在线噢!
y2287958
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4752 积分:34568 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2014/5/16 21:04:00 [只看该作者]

第二个不用理的。

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