标题:如何在一个表中寻找出某个字段中的记录它们的长度相同但内容不同
只看楼主
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
sdta 版主:
Local lcBkkm,lcKddm,lcStr
Store "" To lcBkkm,lcKddm,lcStr
Create Cursor Tj (考点代码 C(5),科目 C(10))
Select * From ls2 Into Cursor Temp
Scan
   For lnI=1 To Alines(Abkkm,Alltrim(报考科目),",")
       Insert Into Tj Values (Temp.报名点代码,Abkkm[lnI])
       If Not Alltrim(Abkkm[lnI])$lcBkkm
          lcBkkm=lcBkkm+Iif(Empty(lcBkkm),"",",")+Alltrim(Abkkm[lnI])+" N(4)" && 提取报考科目
       EndIf
   EndFor
Endscan
Messagebox(lcBkkm)
Create Cursor Tjb (考点代码 C(5),&lcBkkm,小计 N(5))

Select 考点代码,科目,Count(*) 人数 From Tj Group By 1,2 Into Cursor Temp
Scan
   If Alltrim(考点代码)==lcKddm
   Else
      Insert Into Tjb (考点代码) Values (Temp.考点代码)
   EndIf
   Replace (temp.科目) With temp.人数 For Alltrim(考点代码)==Alltrim(Temp.考点代码) In Tjb
   lcKddm=Alltrim(考点代码)
Endscan

Insert Into Tjb (考点代码) Values ("合计")
Select Tjb
For lnI=2 To Fcount()-1
    lcStr=lcStr+Field(lnI)+Iif(lnI<Fcount()-1,"+","")
    Sum Evaluate(Field(lnI)) To X
   
Messagebox( Evaluate(Field(lnI)),0,"代码结果3")&&我在此处插入此代码,看一下结果,消息框提示是0
是何原因?

Replace Record Reccount() (Field(lnI)) With X && 列合计
EndFor
Replace All (Field(Fcount())) With Evaluate(lcStr) && 行小计
Browse
2014-05-25 16:03
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
Sum命令后,记录指针到文件尾(不是最后一条记录,Eof()=.F.)
Go Recno()

Messagebox( Evaluate(Field(lnI)),0,"代码结果3")

看下会是什么结果


[ 本帖最后由 sdta 于 2014-5-25 16:38 编辑 ]

坚守VFP最后的阵地
2014-05-25 16:32
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
以下是引用sdta在2014-5-25 16:32:01的发言:

Sum命令后,记录指针到文件尾(不是最后一条记录,Eof()=.F.)
Go Recno()

Messagebox( Evaluate(Field(lnI)),0,"代码结果3")

看下会是什么结果
结果是如图,表示已到最后一条记录了
2014-05-25 17:17
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
我把Messagebox( Evaluate(Field(lnI)),0,"代码结果3")放到Sum命令前面,同样也提示0,又作何介释?请教。
2014-05-25 17:22
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
无法解释

坚守VFP最后的阵地
2014-05-26 00:01
dalianliyang
Rank: 2
等 级:禁止发言
帖 子:37
专家分:23
注 册:2013-1-30
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2014-05-26 07:06
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
不要用go recn(),sum之后记录指针已经在表的最后一条记录的后面,即recn()已经超出了记录范围。改用go bott或go top就不会出错了。

活到老,学到老! http://www. E-mail:hu-jj@
2014-05-26 07:52
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
以下是引用sylknb在2014-5-25 17:22:33的发言:

我把Messagebox( Evaluate(Field(lnI)),0,"代码结果3")放到Sum命令前面,同样也提示0,又作何介释?请教。

那很可能是表的记录指针已经被移动到记录范围之外了。

活到老,学到老! http://www. E-mail:hu-jj@
2014-05-26 07:53
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
也只能如此介释了
2014-05-26 08:27
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
以下是引用tlliqi在2014-5-21 01:07:05的发言:

zkm='地理,化学,历史,生物,数学,物理,英语,政治'
nkm=alines(fkm,zkm,[,])
FOR i=1 TO nkm
select 报名点代码,SUM(IIF(fkm(i)$报考科目,1,0)) &fkm(i)人数 FROM ls2 GROUP BY 1 into table &fkm(i)
endf
tlliqi班主:
select 报名点代码,SUM(IIF(fkm(i)$报考科目,1,0)) &fkm(i)人数 FROM ls2 GROUP BY 1 into table &fkm(i)
中。为何二者不同?
把上面的部份语句作如下改动,就报错?

SUM(IIF(fkm(i)$报考科目,1,0)) fkm(i)人数

SUM(IIF(&fkm(i)$报考科目,1,0)) &fkm(i)人数
&函数不是把字符串变量的值替代过来吗?
for i=1 to fcount()
a=fiel(I)
repl &a. with ...
endfor
为什么在sql语句中有的地方行,有的不行?
2014-05-26 16:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-431813-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.942058 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved