标题:如何在一个表中寻找出某个字段中的记录它们的长度相同但内容不同
只看楼主
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
以下是引用sylknb在2014-5-20 22:15:44的发言:

有多少科有多少条命令太不理想
不情愿“有多少科有多少条命令”的思路,那就用循环嘛

只求每天有一丁点儿的进步就可以了
2014-05-22 12:41
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
程序代码:
Select *,Space(100) km From ls2 Into Cursor Temp ReadWrite
Local lcStr,lcStr1,lcStr2,lcStr3
Store "" To lcStr1,lcStr2,lcStr3
Scan
   nRow=Alines(Abkkm,报考科目,",")
   =Asort(Abkkm)
   lcStr=""
   For lnI=1 To nRow
       lcStr=lcStr+Alltrim(Abkkm[lnI])+Iif(lnI<nRow,",","")
       If Not Alltrim(Abkkm[lnI])$lcStr1
          lcStr1=lcStr1+Iif(Empty(lcStr1),Alltrim(Abkkm[lnI]),","+Alltrim(Abkkm[lnI])) && 报考科目内容
       EndIf
   Endfor
   lcStr2=lcStr2+Iif(Empty(lcStr2),lcStr,","+lcStr) && 报考全部内容
   Replace km With lcStr
Endscan

For lnI=1 To Alines(Akms,lcStr1,",")
    lcStr3=lcStr3+Akms[lnI]+" = "+Padl(Occurs(Akms[lnI],lcStr2),4," ")+" 人"+Chr(13)+" "+Chr(13)
EndFor
Messagebox(lcStr3,0,"  各科报考情况统计  ")

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

Select *,Space(100) km From ls2 Into Cursor Temp ReadWrite
Local lcStr,lcStr1,lcStr2,lcStr3
Store "" To lcStr1,lcStr2,lcStr3
Scan
   nRow=Alines(Abkkm,报考科目,",")
   =Asort(Abkkm)
   lcStr=""
   For lnI=1 To nRow
       lcStr=lcStr+Alltrim(Abkkm[lnI])+Iif(lnI
学习新的一招,如何把最后统计结果放入BDF表中,这样才可打印。
语文 数学 英语 政治 历史 地理。。。。。。
234  1345 。。 、、、、  、、
2014-05-23 10:36
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
以下是引用sdta在2014-5-22 19:13:27的发言:

Select *,Space(100) km From ls2 Into Cursor Temp ReadWrite
Local lcStr,lcStr1,lcStr2,lcStr3
Store "" To lcStr1,lcStr2,lcStr3
Scan
   nRow=Alines(Abkkm,报考科目,",")
   =Asort(Abkkm)
   lcStr=""
   For lnI=1 To nRow
       lcStr=lcStr+Alltrim(Abkkm[lnI])+Iif(lnI
真是高手,又学了一招。能否把各科统计结果放入DBF表中,便于打印等。
字段名:语文 数学 英语  政治 地理 历史。。。
    234  2345 4562 111  2222 333
2014-05-23 10:42
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
在代码的最后面加代码
StrToFile(lcStr3,"Tjb.Txt")
Modify File Tjb.Txt

坚守VFP最后的阵地
2014-05-23 10:50
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
我作了如此改法,能导入到DBF表中:
USE tj
zap
For lnI=1 To Alines(Akms,lcStr1,",")
    *lcStr3=lcStr3+Akms[lnI]+" = "+Padl(Occurs(Akms[lnI],lcStr2),4," ")+" 人"+Chr(13)+" "+Chr(13)
APPEND BLANK
REPLACE 统计 WITH Akms[lnI]+" = "+Padl(Occurs(Akms[lnI],lcStr2),4," ")

lcStr3=lcStr3+Akms[lnI]+" = "+Padl(Occurs(Akms[lnI],lcStr2),4," ")+" 人"+Chr(13)+" "+Chr(13)
EndFor
Messagebox(lcStr3,0,"  各科报考情况统计  ")
SELECT tj
brow

美中不足的分各报名点每一科的统计,在你的代码如何加入?
报名点:语文 数学  英语  政治 地理 历史。。。
 6501   34  245 562  11  222 33
 6502   222  33 44   55  65  77
 。。   44  ..        ..  ..
 合计  234 2345 4562 111  2222 333



[ 本帖最后由 sylknb 于 2014-5-23 11:19 编辑 ]
2014-05-23 11:17
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
要活学活用,举一凡三。

坚守VFP最后的阵地
2014-05-23 11:38
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
程序代码:
Select * From ls2 Into Cursor Temp
Local lcBkkm,lcStr,lcStr1,lcStr2
Store "" To lcBkkm,lcStr,lcStr1,lcStr2
Scan
   lnRow=Alines(Abkkm,报考科目,",")
   For lnI=1 To lnRow
       If Not Alltrim(Abkkm[lnI])$lcBkkm
          lcBkkm=lcBkkm+Iif(Empty(lcBkkm),Alltrim(Abkkm[lnI]),","+Alltrim(Abkkm[lnI])) && 报考科目内容
       EndIf
   Endfor
EndScan
lnRow=Alines(Abkkm,lcBkkm,",")
For lnI=1 To lnRow
    lcStr=lcStr+'"'+Space(10)+'" '+Abkkm[lnI]+Iif(lnI<lnRow,",","")
    lcStr1=lcStr1+"Cast(Sum(Iif(Alltrim(&Abkkm[lnI])=='"+Alltrim(Abkkm[lnI])+"',1,0)) As N(4)) "+Alltrim(Abkkm[lnI])+Iif(lnI<lnRow,",","")
    lcStr2=lcStr2+"Sum("+Abkkm[lnI]+")"+Iif(lnI<lnRow,",","")
Endfor

Select *,&lcStr From ls2 Order By 报名点代码 Into Cursor Temp ReadWrite
Scan
   For lnI=3 To Alines(Abkkm,报考科目,",")+2
       Replace Record Recno() (Abkkm[lnI-2]) With Abkkm[lnI-2]
   EndFor
Endscan
Select 报名点代码,&lcStr1,00000 小计 From Temp Group By 报名点代码 Into Cursor Tj ReadWrite
Insert Into Tj Select "合计",&lcStr2,0 From Tj
lcStr=""
For lnI=2 To Fcount()-1
    lcStr=lcStr+Field(lnI)+Iif(lnI<Fcount()-1,"+","")
EndFor
Replace All (Field(Fcount())) With &lcStr
Browse

坚守VFP最后的阵地
2014-05-23 14:06
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 

坚守VFP最后的阵地
2014-05-23 14:08
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
太完美了,谢谢!又可学习新东西了。
2014-05-23 17:17



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




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

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