以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教y2287958老师  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=45587)

--  作者:aygp
--  发布时间:2014/2/5 0:39:00
--  请教y2287958老师
这个项目的代码是否可以再优化,达到进入没有任何行
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:总分统计(商业版).rar

记录的“学生男子组总分”表或“学生女子组总分”表时,单位数据、总分数据、名次数据都自动生成。现在的情况是如果’单位‘列中没有单位信息,就无法生成总分数据和名次数据。
--  作者:lsy
--  发布时间:2014/2/5 9:04:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:datacolchanged总分及排名跨表统计.table


--  作者:aygp
--  发布时间:2014/2/5 12:54:00
--  
lsy老师:
我的要求是,只要“比赛得分”表中有数据,进入没有任何行记录的“学生男子组总分”表或“学生女子组总分”表时,单位数据、总分数据、名次数据都自动生成,即自动生成有数据的行。
图片点击可在新窗口打开查看此主题相关图片如下:例子.png
图片点击可在新窗口打开查看


--  作者:lsy
--  发布时间:2014/2/5 14:04:00
--  

本来就是这样啊。

如果比赛得分表有数据,而其他统计表没数据,就选中比赛得分的得分列,再点重置列就行了。

比赛得分表新增、删除行,都会改变统计表数据。

 

楼主对事件的理解和运用,差了一点。

[此贴子已经被作者于2014-2-5 14:12:38编辑过]

--  作者:aygp
--  发布时间:2014/2/5 14:57:00
--  
我希望达到例子中的效果,不需要点重置列,即使把“学生男子组总分”表或“学生女子组总分”表的所有数据全部删除,只要重新进入该表,数据又全部生成。该例子只要加上对混合组的得分统计就达到我的要求了,谢谢lsy老师再帮我修改以下相关代码。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:总分排名和跨表统计.rar


--  作者:lsy
--  发布时间:2014/2/5 15:11:00
--  

楼主真的对事件没有理解,统计表的数据,没必要频繁删除吧?

一开始,应该是三张表都是空的,没有一行数据。

在“比赛得分”表中每增加一行新数据,如果相应的统计表中的单位列没有新增行中的单位,统计表中也会增加这个单位的行,如果有了,就会只更新总分和名次。

在“比赛得分”表中每删除一行,也会更新统计表中的总分和名次,如果删除的是这个单位的最后剩下的一行,那么相应统计表的对应行随之也删除。

万一,哪个没事闲的慌,把统计表的数据全删除了,只需选中“比赛得分”表的“得分”列,再点重置。

不需要每次选中统计表,都将数据刷新一次,那不是没事找事么?


--  作者:lsy
--  发布时间:2014/2/5 15:26:00
--  

为了满足楼主的好奇心,还是按照楼主的意思,在MainTableChanged事件中加上代码:
If MainTable.Name = "学生男子组总分" OrElse MainTable.Name = "学生女子组总分"
    MainTable.StopRedraw()
    DataTables("比赛得分").DataCols("得分").RaiseDataColChanged
    MainTable.ResumeRedraw()
End If

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:datacolchanged总分及排名跨表统计.table


--  作者:aygp
--  发布时间:2014/2/5 15:58:00
--  
我删除数据的目的是测试代码的运行达到要求没有。我现在以运动会比赛的实际情况来说明一下,参加比赛的单位有多个,比赛一开始就有一些单位得分,一些单位没有得分。按照现在的代码运行,必须点重置列才能在“学生男子组总分”表或“学生女子组总分”表看到各有分数单位的得分情况,此时没有分数的单位在“学生男子组总分”表或“学生女子组总分”表中是没有单位名称出现的。如果不久这些单位得分了,但是由于在“学生男子组总分”表或“学生女子组总分”表又没有单位名称,那么这些单位的得分是不会显示出来的。只有再一次的点重置列,才能出现这些单位的得分情况。由于狐表没有服务端,又不可能对所有使用人员进行详细的培训。所以忘记点重置列操作是会发生的,一般使用人员要查单位得分情况,只会直接点“学生男子组总分”表或“学生女子组总分”表,这样出现的各单位得分情况就不准确,所以在开发软件时必须要考虑让一般的人在操作软件时也不出现问题。所以我认为点重置列的过程最好在代码中完成。五楼的程序代码就不需要手工点重置列,只要把混合组的得分统计进去就OK了。谢谢lsy老师再帮我改一改代码!
--  作者:lsy
--  发布时间:2014/2/5 16:03:00
--  
7楼的例子,看没看啦,不需要重置列。
--  作者:aygp
--  发布时间:2014/2/5 16:15:00
--  
谢谢lsy老师!就是要这个效果。