以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 成绩统计条件代码修正 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=144828) |
-- 作者:有点蓝 -- 发布时间:2019/12/31 8:53:00 -- 没有必要使用全局变量 \'=========生成条件表达式结束=========== Dim 标准总分 As Integer = 100 If e.DataRow("年级简称") Like "中*" If e.DataRow("学科") = "语文" OrElse e.DataRow("学科") = "数学" OrElse e.DataRow("学科") = "英语" 标准总分 = 150 End If Else If e.DataRow("学科") = "科学" OrElse e.DataRow("学科") = "英语" 标准总分 = 50 End If End If If filter >"" Then Filter = Filter & " and " Filter_jg = filter & e.DataRow("学科") & " >= " & (标准总分 * 0.6 ) Filter_yy = filter & e.DataRow("学科") & " >= " & (标准总分 * 0.8 ) Else Filter_jg = filter & e.DataRow("学科") & " >= " & (标准总分 * 0.6 ) Filter_yy = filter & e.DataRow("学科") & " >= " & (标准总分 * 0.8 ) End If 可以考虑把获取标准总分的代码放到内部函数中,作为通用功能调用
[此贴子已经被作者于2019/12/31 8:53:18编辑过]
|
-- 作者:bohe -- 发布时间:2019/12/31 9:42:00 -- 要代码通用可以考虑单独建一个学科满分表,这样不怕学科分数变化。 |
-- 作者:有点蓝 -- 发布时间:2019/12/31 9:59:00 -- 在分组一次,如 Dim g1 As New GroupTableBuilder("语文优秀格", DataTables("片区学生成绩_查询")) Dim dt1 As fxDataSource g1.Groups.AddDef("年级简称") g1.Groups.AddDef("班级编号") g1.Totals.AddDef("语文", AggregateEnum.Count, "语文优秀人数") g1.Filter = "语文 > 120 and 年级简称 like \'中%\'" dt1 = g1.BuildDataSource() Dim g3 As New GroupTableBuilder("语文优秀格", DataTables("片区学生成绩_查询")) Dim dt3 As fxDataSource g3.Groups.AddDef("年级简称") g3.Groups.AddDef("班级编号") g3.Totals.AddDef("语文", AggregateEnum.Count, "语文优秀人数") g3.Filter = "语文 > 80 and 年级简称 like \'小%\'" dt3 = g1.BuildDataSource() |
-- 作者:有点蓝 -- 发布时间:2020/1/2 9:25:00 -- Dim 学科 As String = args(0) Dim 年级简称 As String = args(1) Dim 标准总分 As Integer = 100 If 年级简称 Like "中*" If 学科 = "语文" OrElse 学科 = "数学" OrElse 学科 = "英语" 标准总分 = 150 End If Else If 学科 = "科学" OrElse 学科 = "英语" 标准总分 = 50 End If End If Return 标准总分 调用 dim 标准总分 as integer = Functions.Execute("某函数","语文","中一") msgbox(标准总分) 或者 dim 标准总分 as integer = Functions.Execute("某函数",e.DataRow("学科"),e.DataRow("年级简称")) msgbox(标准总分) |