以下是引用sylknb在2014-5-20 22:15:44的发言:
有多少科有多少条命令太不理想
不情愿“有多少科有多少条命令”的思路,那就用循环嘛
有多少科有多少条命令太不理想

只求每天有一丁点儿的进步就可以了
程序代码: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," 各科报考情况统计 ")

程序代码: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
