以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 分数加总  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=137036)

--  作者:susanhe
--  发布时间:2019/6/26 20:16:00
--  [求助] 分数加总

foxtable的老师好,我是新手,想请教一下以下问题。

我在窗口中有个表二,上面有个按钮,在这个按钮中想增加一段代码,可实现“

 

根据表二的中的每个人的姓名,自动加总每个的总分成绩到表一中,但是物理和化学不参与计算。

 

 

 

表一
姓名 总分
AA  
BB  
   
   
表二
姓名 课目 分数
AA 语文 90
AA 数学 89
AA 英语 88
AA 政治 99
AA 物理 88
AA 化学 99
BB 语文 90
BB 数学 77
BB 英语 88
BB 政治 78
BB 物理 88
BB 化学 99


--  作者:有点甜
--  发布时间:2019/6/26 21:14:00
--  

参考

 

http://www.foxtable.com/webhelp/topics/1454.htm

 

http://www.foxtable.com/webhelp/topics/1472.htm

 


--  作者:susanhe
--  发布时间:2019/6/26 21:24:00
--  

班主, 看了这两个主要是在表的DataColChanged事件代码中实现。

 

我想把它加到窗口的按钮中不起作用了。


--  作者:有点甜
--  发布时间:2019/6/26 21:51:00
--  
以下是引用susanhe在2019/6/26 21:24:00的发言:

班主, 看了这两个主要是在表的DataColChanged事件代码中实现。

 

我想把它加到窗口的按钮中不起作用了。

 

方法一:你可以重置列 http://www.foxtable.com/webhelp/topics/1587.htm

 

方法二:你可以改写datacolchanged事件代码为 循环每一行,然后计算和赋值。

 

如果还是不会做,把你的项目发上来测试。


--  作者:susanhe
--  发布时间:2019/6/26 22:04:00
--  
班主,项目发上来了,请多指教了。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test11.foxdb


--  作者:有点甜
--  发布时间:2019/6/26 22:51:00
--  
For Each xm As String In DataTables("表B").GetValues("姓名", "姓名 is not null")
    Dim fdr As DataRow = DataTables("表A").find("姓名=\'" & xm & "\'")
    If fdr Is Nothing Then fdr = DataTables("表A").addnew
    fdr("总分") = DataTables("表B").compute("sum(分数)", "姓名=\'" & xm & "\' and 课目 not in (\'物理\', \'化学\')")
Next