Foxtable(狐表)用户栏目专家坐堂 → 求助:下列FOXTABLE文件中“课时变化”表中的“正课统计”按纽公式如何设置?


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

主题:求助:下列FOXTABLE文件中“课时变化”表中的“正课统计”按纽公式如何设置?

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


加好友 发短信
等级:小狐 帖子:324 积分:3807 威望:0 精华:0 注册:2008/9/1 7:34:00
求助:下列FOXTABLE文件中“课时变化”表中的“正课统计”按纽公式如何设置?  发帖心情 Post By:2008/11/9 16:31:00 [显示全部帖子]

 

求助:下列FOXTABLE文件中“课时变化”表中的“正课统计”按纽公式如何设置?


目的:为克服用FOXTABLE设计的畏难情绪和提高对FOXTABLE学习兴趣,用易表做了一个文件希望升级到FOXTABLE:一是为了比较易表、FOXTABLE设计文件的区别,二也是为了解决速度问题。


一、原易表文件:

表达式变量:%A1%  

表达式为:If([正课_上午]=-1 And [正课_星期] > "",Eval("EvalFor(""表1"","""+Text([%B1%])+""",""[课程表!"+[正课_星期]+"_上午_1]"")") And SetVariable("%B1%",[%B1%]+1) And Eval("EvalFor(""表1"","""+Text([%B1%])+""",""[课程表!"+[正课_星期]+"_上午_2]"")") And SetVariable("%B1%",[%B1%]+1) And Eval("EvalFor(""表1"","""+Text([%B1%])+""",""[课程表!"+[正课_星期]+"_上午_3]"")") And SetVariable("%B1%",[%B1%]+1) And Eval("EvalFor(""表1"","""+Text([%B1%])+""",""[课程表!"+[正课_星期]+"_上午_4]"")") And SetVariable("%B1%",[%B1%]+1),"") And If([正课_下午]=-1 And [正课_星期] > "", Eval("EvalFor(""表1"","""+Text([%B1%])+""",""[课程表!"+[正课_星期]+"_下午_5]"")") And SetVariable("%B1%",[%B1%]+1) And Eval("EvalFor(""表1"","""+Text([%B1%])+""",""[课程表!"+[正课_星期]+"_下午_6]"")") And SetVariable("%B1%",[%B1%]+1) And Eval("EvalFor(""表1"","""+Text([%B1%])+""",""[课程表!"+[正课_星期]+"_下午_7]"")") And SetVariable("%B1%",[%B1%]+1) And Eval("EvalFor(""表1"","""+Text([%B1%])+""",""[课程表!"+[正课_星期]+"_下午_8]"")") And SetVariable("%B1%",[%B1%]+1),"") And If([正课_读报]=-1 And [正课_星期] > "",Eval("EvalFor(""表1"","""+Text([%B1%])+""",""[课程表!"+[正课_星期]+"_班主任]"")") And SetVariable("%B1%",[%B1%]+1),"")

数值型变量:%B1%

课时变化中“正课统计”按纽公式为:Eval("EvalFor(""表1"","""+Substitute(ListCols("表1"),"|",""","""") And EvalFor(""表1"",""")+""","""")") And AddCol("表1","k",1, False ) And EvalFor("表1","k","Row") And AddCol("课程表","k",1, False ) And EvalFor("课程表","k","Row") And AddRelation("表1","k","课程表","k") And SetVariable("%B1%",1) And First() And Loop("rowsel < Rows+1", "Eval([%A1%]) And Next()",Rows) And DeleteCol("课程表","k") And DeleteCol("表1","k") And ClearGrid("另表") And evalfor("另表",2,"eval(""AppendFor(""""表1"""",""""""+Substitute(ListCols(""表1""),""|"","""""",""""姓名"""") And AppendFor(""""表1"""","""""")+"""""",""""姓名"""")"")",1,1) And DelFor("另表","姓名","=","") And AddCol("另表","A",1,false) And evalfor("另表","A","if(Instr(""DU"",[姓名])>-1 Or Instr(""/"",[姓名])>-1,0.5,1)") And evalfor("另表","姓名","Substitute([姓名],""DU"","""")") And evalfor("另表","出现次数","SumFor(""另表"",""A"",""姓名"",""="",[姓名])") And DelReptRows("另表","姓名") And evalfor("另表","A","if(Instr(""/"",[姓名])>-1,Split([姓名],""/"",2),"""")") And eval("AddRow(""另表"",""姓名"","""+Substitute(ListFor("另表","A"),"|",""") And AddRow(""另表"",""姓名"",""")+""")") And evalfor("另表","出现次数","if([出现次数]>0,[出现次数],FindText(""另表"",""出现次数"",""A"",""="",[姓名]))") And evalfor("另表","姓名","if(Instr(""/"",[姓名])>-1,Split([姓名],""/"",1),[姓名])") And DeleteCol("另表","A") And ClearGrid("流水表")  And AddRows("流水表",[另表!Rows]-1) And evalfor("流水表","正课_姓名","cell(row,1,""另表"")") And evalfor("流水表","正课_课时","cell(row,2,""另表"")") And   msgbox("正课统计结束",0)


二、设计思路:根据“课时变化”中的情况,将“课程表”中相应的时段内容复制到“表1”中,再对“表1”中姓名计数(见“另表”),最后将“另表”中的数据过到“流水表”。

     注意:1、“课程表”中的“班主任”姓名前均加“DU”,指班主任上“读报课”,读报课只能算0.5节正课。2、对“课程表”中两人名用“/”隔开的,如“蔡欣/唐黎”指两个人各上半节课,计算时拆分为“蔡欣”、“唐黎”两个人,出现次数均为“0.5“。


三、具体操作:可在易表文件的“课时变化”中进行设置,再点出“正课统计”按纽,计算完毕后,可详查其余各表数据。注:表1中的内容来源于“课程表”中相应时段。

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


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


加好友 发短信
等级:小狐 帖子:324 积分:3807 威望:0 精华:0 注册:2008/9/1 7:34:00
  发帖心情 Post By:2008/11/10 11:08:00 [显示全部帖子]

完全正确,调整过后的思路较原思路更简洁,谢谢yuanbin版主!

在易坛上很少见yuanbin版主出手,出手就不同凡响!

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


加好友 发短信
等级:小狐 帖子:324 积分:3807 威望:0 精华:0 注册:2008/9/1 7:34:00
  发帖心情 Post By:2008/11/10 12:28:00 [显示全部帖子]

以下是引用gdtgl在2008-11-10 0:49:00的发言:

不太明白表1是用来做什么统计的(要这么多列),写1下填数据代码(不知有没有用)

[此贴子已经被作者于2008-11-10 0:51:44编辑过]

原设计中的"表1"是放从"课程表"中相应日期和时段上课教师姓名的.


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


加好友 发短信
等级:小狐 帖子:324 积分:3807 威望:0 精华:0 注册:2008/9/1 7:34:00
  发帖心情 Post By:2008/11/10 13:10:00 [显示全部帖子]

正学习中。。。。。。。


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


加好友 发短信
等级:小狐 帖子:324 积分:3807 威望:0 精华:0 注册:2008/9/1 7:34:00
  发帖心情 Post By:2008/11/11 10:45:00 [显示全部帖子]

由5楼不再使用“表1”,“另表”也无存在必要,相应可改为:
。。。。。。。。。。。
DataTables("流水表").DataRows.Clear()
dim f As New Filler
f.SourceTable = DataTables("课时名单") '指定数据来源
f.SourceCols = "姓名"   '指定数据来源列

f.DataTable = DataTables("流水表") '指定数据接收表
f.DataCols = "正课_姓名"  '指定数据接收列
f.Fill() '填充数据
DataTables("流水表").datacols("正课_课时").Recalc()
timeend=date.now
e.Form.Controls("Label1").text="耗时" & (timeend-timestart).TotalSeconds & "秒"
Messagebox.Show("处理完毕!")


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


加好友 发短信
等级:小狐 帖子:324 积分:3807 威望:0 精华:0 注册:2008/9/1 7:34:00
  发帖心情 Post By:2008/11/11 11:02:00 [显示全部帖子]

现在又出现新问题了:若将“正课”、“辅导”、“补课”都统计在“流水表”中,数据形式不合日常规范(详见上传表的“流水表”),希望能实现“流水表效果图”效果。

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

[此贴子已经被作者于2008-11-11 11:04:01编辑过]

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


加好友 发短信
等级:小狐 帖子:324 积分:3807 威望:0 精华:0 注册:2008/9/1 7:34:00
  发帖心情 Post By:2008/11/12 8:23:00 [显示全部帖子]

以下是引用czy在2008-11-11 15:42:00的发言:
楼主把简单的问题复杂化了,改变一下思路问题就显得很简单了。
课时统计表中的姓名没有用代码提取,提取姓名的代码同样很简单,之所以没有做,我在想象你这么个系统肯定有一个教师基础信息表,姓名来源于基础表更合适。

的确有一个教师基础信息表。


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


加好友 发短信
等级:小狐 帖子:324 积分:3807 威望:0 精华:0 注册:2008/9/1 7:34:00
  发帖心情 Post By:2008/11/12 8:25:00 [显示全部帖子]

以下是引用gdtgl在2008-11-11 17:51:00的发言:

15楼都做到将数据增加到流水表了,可能还是在excel的习惯中设计“数据库”。。。流水表的表格形式可以这样做:(有了这些基础数据,想要什么样表格或报表都不成问题了)



图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2008-11-11 17:54:50编辑过]

从数据库管理角度这应是最好的方法之一,正参考该设计。


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


加好友 发短信
等级:小狐 帖子:324 积分:3807 威望:0 精华:0 注册:2008/9/1 7:34:00
  发帖心情 Post By:2008/11/18 17:37:00 [显示全部帖子]

  尝试将交叉表转化为数据库出错:根据“课时变化”将“辅导表”转化为“课时名单”出错,请老师帮修正一下,谢谢!(注:该表与1楼文件相比,无需计算“读报”问题和两人各上半节课问题)
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:辅导问题.table


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


加好友 发短信
等级:小狐 帖子:324 积分:3807 威望:0 精华:0 注册:2008/9/1 7:34:00
  发帖心情 Post By:2008/11/19 10:25:00 [显示全部帖子]

再次求教袁老师:“将课表转化为数据库”中遇到特殊问题-----《甘孜班补课表》,不知该怎样处理,请老师指点。

“性质”列说明:该课表每一轮补课分三大类:守班(周六下午、周六晚上、周日上午)、补课(周日下午)、巡查,故性质分为三类:甘孜守班,甘孜补课,甘孜巡查。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:甘孜班补课问题.table


 回到顶部
总数 14 1 2 下一页