 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
lzm
註冊時間: 2006-02-14 文章: 8 來自: 北京
第 1 樓
|
發表於: 星期日 七月 09, 2006 7:39 pm 文章主題: vfp自身交叉表的改进 |
|
|
*****交叉表函数
CREATE cursor kk (ry c(10) ,xm c(10),je n(10,2))
INSERT INTO kk VALUES ('张三','西药',1.00)
INSERT INTO kk VALUES ('李四','中药',2.00)
INSERT INTO kk VALUES ('王五','检查',3.00)
INSERT INTO kk VALUES ('刘六','治疗',4.00)
INSERT INTO kk VALUES ('张三','治疗',5.00)
INSERT INTO kk VALUES ('李四','西药',6.00)
INSERT INTO kk VALUES ('王五','中药',7.00)
INSERT INTO kk VALUES ('刘六','检查',8.00)
brow
SELECT ry,xm,je ORDER BY 1,2 FROM kk INTO CURSOR lsk
mxab=xtab('lsk','xk',3) &&&源表,目标表,mtotal=0 无合计,1 水平合计,2垂直合计,3 水平+垂直合计
SELECT * FROM xk INTO CURSOR temp
brow
FUNCTION Xtab
PARAMETERS mxtable,mxtable2,mtotal
Select * From &mxtable Into Cursor Sys(2015)
m8=ICASE(mtotal=2 Or mtotal=3,.t.,.f.)
Do (_Genxtab) With mxtable2,.T.,.T.,.F.,1,2,3,m8,0,0
IF m8=.t.
ALTER TABLE &mxtable2 RENAME COLUMN total TO 合计
ENDIF
mf=Field(1)
If mtotal=1 Or mtotal=3
Total To _hjk On 1
Update _hjk Set &mf = ' 合计'
Append From _hjk
Use In _hjk
Delete File _hjk.Dbf
ENDIF
RETURN mxtable2
* Parameters:
*
* Parm1 - output file/cursor name (default "xtab.dbf")
* Parm2 - cursor only (default .F.)
* Parm3 - close input table after (default .T.)
* Parm4 - show thermometer (default .T.)
* Parm5 - row field (default 1)
* Parm6 - column field (default 2)
* Parm7 - data field (default 3)
* Parm8 - total rows (default .F.)
* Parm9 - totaling options (0-sum, 1-count, 2-% of total)
* Parm10 - display Null values |
|
回頂端 |
|
 |
siger1762
註冊時間: 2005-04-01 文章: 13 來自: 台灣 台中
第 2 樓
|
發表於: 星期三 七月 26, 2006 4:50 pm 文章主題: |
|
|
VFP 6.0沒有ICASE(),需使用IF判斷。 |
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|