以文本方式查看主题 - 易表在线答疑 (http://egrid2000.com/dvbbs/index.asp) -- 用户社区 (http://egrid2000.com/dvbbs/list.asp?boardid=2) ---- [求助]程序如何修改,才能解决以下两个问题 (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=8190) |
-- 作者:abcdzabcdz -- 发布时间:2007/5/29 8:33:00 -- [求助]程序如何修改,才能解决以下两个问题 请问:下列程序如何修改,才能解决以下两个问题: 问题:1、只对当前月份(以”%月份2%”表示)进行排名,以前月份的成绩不进行排名. 2、能否实现若”成绩”列为空,则不对该列排名进行任何操作. 想法::通过对变量”%月份2%”赋值,将记录进行筛选出来,筛选后无需再对以前月份的成绩进行排名,只需对当前月份进行排名,以加快数据库排名速度. 原程序: |
-- 作者:wjq1072 -- 发布时间:2007/5/29 8:57:00 -- 做个简单的表,把你的公式放进去然后传上来。这样便于大家帮你找出问题、解决问题哦! |
-- 作者:abcdzabcdz -- 发布时间:2007/5/29 9:20:00 -- 说明:最初程序对所有“月份”均进行排序,现只要求对“输入比较月份:%月份2%”中的“%月份2%”的输入(如2006.5)进行排名,而不对2006.4进行排名,并若"语文_成绩"为空,则不排名.egd文件下载 |
-- 作者:为爱痴狂 -- 发布时间:2007/5/29 9:49:00 -- 这还不简单 if([%月份1%]=""or [%月份2%]="",MsgBox("请选择起始始月份和比较月份后再执行此操作!",0), Do(112) And FilterFor("月份", "=" ,[%月份2%]) And SortCol(GridName,"语文_成绩",2) And SortCol(GridName,"班",1) And SortCol(GridName,"月份",1) And evalfor(grid,"语文_班名","if(Row=1,1,if(cell(Row-1,""月份"")=cell(Row,""月份"") And cell(Row-1,""班"")=cell(Row,""班"") And cell(Row-1,""语文_成绩"")<>cell(Row,""语文_成绩""),cell(row-1,""语文_班名"")+1,if(cell(Row-1,""班"")<>cell(Row,""班""),1,cell(row-1,""语文_班名""))))") And SortCol(GridName,"语文_成绩",2) And SortCol(GridName,"月份",1) And evalfor(grid,"语文_级名","if(Row=1,1,if(cell(Row-1,""月份"")=cell(Row,""月份"") And cell(Row-1,""语文_成绩"")<>cell(Row,""语文_成绩""),cell(row-1,""语文_级名"")+1,if(cell(Row-1,""月份"")<>cell(Row,""月份""),1,cell(row-1,""语文_级名""))))") And ReplaceFor(GridName,"语文_班名","","语文_成绩", "=" ,0) And ReplaceFor(GridName,"语文_级名","","语文_成绩", "=" ,0) And ReplaceFor(GridName,"语文_班名","","语文_成绩", "=" ,"") And ReplaceFor(GridName,"语文_级名","","语文_成绩", "=" ,"")) |
-- 作者:abcdzabcdz -- 发布时间:2007/5/29 10:57:00 -- 有问题:该设计仍然在计算2006.4月成绩. -=-=-=- 以下内容由 abcdzabcdz 在 2007年05月29日 11:05am 时添加 -=-=-=- '替换命令'与"让公式失效"是两回事. |
-- 作者:lxl -- 发布时间:2007/5/30 8:17:00 -- 我猜是不是因为刷新公式同时用了Cell函数 和row变量的缘故,系统把刷新公式看作流水账计算公式,所以要计算整列。 能不能利用框架模式,然后用框架模式:if(row=firstrow,1,ParentRow)来计算排名,这样刷新公式就避免了Cell。解决分数相同的的排名问题用cell函数判断,不知道会不会也被看做流水账计算公式 |
-- 作者:abcdzabcdz -- 发布时间:2007/5/30 13:07:00 -- 不知有无其它办法实现1楼要求? |
-- 作者:Czy -- 发布时间:2007/5/30 23:34:00 -- 做了一段语言班级排名的公式,其它的自己参照做吧。 if(ListFor(Grid,"语文_成绩")="",true,Do(112) And FilterFor("月份", "=" ,[%月份2%]) And SortCol(GridName,"语文_成绩",2) And SortCol(GridName,"班",1) And SortCol(GridName,"月份",1) And evalfor(grid,"语文_班名","if(Row=1,1,if(cell(Row-1,""月份"")=[月份] And cell(Row-1,""班"")=[班] And cell(Row-1,""语文_成绩"")<>[语文_成绩],VisibleRow,if(cell(Row-1,""班"")<>[班],1,cell(row-1,""语文_班名""))))",1,Rows,1)) |
-- 作者:abcdzabcdz -- 发布时间:2007/5/31 9:46:00 -- [UploadFile=123_1180575984.bmp] |
-- 作者:abcdzabcdz -- 发布时间:2007/5/31 9:47:00 -- 简化后的文件,上楼为执行程序后画面。egd文件下载 |