| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3438 人关注过本帖
标题:请教:如何将表1的数据(根据fz和dc这两列)转换成表2中的样式
只看楼主 加入收藏
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10541
专家分:42927
注 册:2014-5-20
收藏
得分:4 
做成这样是输出格式用的吧
模拟了一下
图片附件: 游客没有浏览图片的权限,请 登录注册

USE k0110_6 ALIAS db IN 0
CALCULATE MAX(fz) TO n
CREATE CURSOR tt (c11 C(10),c1 C(10),c2 C(10),c3 C(10),c4 C(10),c5 C(10),c6 C(10),c7 C(10),c8 C(10))
FOR i=1 TO n*4
    APPEND BLANK
ENDFOR
FOR i=1 TO n
    REPLACE c11 WITH TRANSFORM(i) RECORD i*4-3
ENDFOR
SELECT db
SCAN FOR fz>0
    REPLACE ("c"+TRANSFORM(db.dc)) WITH db.name RECORD db.fz*4-3  IN "tt"
    REPLACE ("c"+TRANSFORM(db.dc)) WITH TRANSFORM(db.hm) RECORD db.fz*4-2  IN "tt"
    REPLACE ("c"+TRANSFORM(db.dc)) WITH db.dwjc RECORD db.fz*4-1  IN "tt"
ENDSCAN
SELECT * FROM tt
2018-08-14 19:50
hqc2002
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2011-5-17
收藏
得分:0 
回复 11楼 吹水佬
还有这样的数据,
K0910_10.rar (1.23 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2018-8-15 12:45编辑过]

2018-08-14 20:21
红星二锅头
Rank: 8Rank: 8
等 级:贵宾
威 望:46
帖 子:491
专家分:754
注 册:2016-8-25
收藏
得分:0 
楼主的题意应该属于矩阵转置问题,参考:https://bbs.bccn.net/viewthread.php?tid=461355&extra=&highlight=%D0%FD%D7%AA&page=2

团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2018-08-14 20:25
hqc2002
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2011-5-17
收藏
得分:0 
回复 13楼 红星二锅头
不是只有一个表,数据应该挺多的,只是形式是一样的,所以用代码输出更好些。

[此贴子已经被作者于2018-8-14 20:39编辑过]

2018-08-14 20:38
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9803
专家分:26906
注 册:2012-2-5
收藏
得分:0 
楼主的问题还没有结束

坚守VFP最后的阵地
2018-08-14 20:39
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10541
专家分:42927
注 册:2014-5-20
收藏
得分:0 
以下是引用hqc2002在2018-8-14 20:21:17的发言:

还有这样的数据,

变样了?这是另外一个问题吧
还有多少样子?都详细说说各单元格数据的摆放规则
2018-08-14 21:13
红星二锅头
Rank: 8Rank: 8
等 级:贵宾
威 望:46
帖 子:491
专家分:754
注 册:2016-8-25
收藏
得分:0 
Select Name, Hm, Dwjc From K0110_6 Order By Fz Where Fz = 1 Into Array gaArray  && 过滤条件:Fz = 1,2,3,,,,循环

Clear
? "原始数组:"
R1 = Reccount()
=Matrix_Show(@gaArray)

? "============================"
? "转置数组:"
=Matrix_Transpose(@gaArray, @R1)
=Matrix_Show(@R1)


Function Matrix_Show(A1)
    * 数组显示 - Display array data
    Local nRow, nCol

    For nRow = 1 To Alen( A1, 1 )
        ?
        For nCol = 1 To Alen( A1, 2 )
            ?? A1[ nRow, nCol ], " "
        Endfor
    Endfor
    ?
    Return
Endfunc


Function Matrix_Transpose(A1, R1)
    * 矩阵转置/对称矩阵 : 左上角-右下角翻转
    * 定义:如果A(I, J)=A(J, I),则 A 是对称矩阵.
    Local nRow, nCol

    Dimension R1[Alen(A1, 2), Alen(A1, 1)]
    For nRow = 1 To Alen( A1, 1 )
        For nCol = 1 To Alen( A1, 2 )
            R1[nCol, nRow] = A1[nRow, nCol]
        Endfor
    Endfor
    Return
Endfunc

团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2018-08-14 21:22
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10541
专家分:42927
注 册:2014-5-20
收藏
得分:0 
看似是按fz分组,按CEILING(dc/8)定行,按dc%8定列
2018-08-14 21:57
hqc2002
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2011-5-17
收藏
得分:0 
回复 16楼 吹水佬
就这两种数据,用两种代码分别输出可以吗

[此贴子已经被作者于2018-8-14 22:39编辑过]

2018-08-14 22:29
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10541
专家分:42927
注 册:2014-5-20
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

CREATE CURSOR td (c11 C(10),c1 C(10),c2 C(10),c3 C(10),c4 C(10),c5 C(10),c6 C(10),c7 C(10),c8 C(10))
CREATE CURSOR tp (c11 C(10),c1 C(10),c2 C(10),c3 C(10),c4 C(10),c5 C(10),c6 C(10),c7 C(10),c8 C(10))
USE k0910_10 ALIAS db IN 0
CALCULATE MAX(fz) TO n IN "db"
FOR i=1 TO n
    SELECT dwjc,hm,name,fz,dc FROM db WHERE fz==i INTO CURSOR tmp
    SELECT tmp
    CALCULATE MAX(dc) TO m
    FOR j=1 TO CEILING(m/8)*3+1
        APPEND BLANK IN "tp"
    ENDFOR
    REPLACE tp.c11 WITH TRANSFORM(i) RECORD 1 IN "tp"
    SCAN
        nr = CEILING(dc/8)*3-2
        nc = dc%8
        nc = IIF(nc==0, 8, nc)
        REPLACE ("c"+TRANSFORM(nc)) WITH TRANSFORM(tmp.hm) RECORD nr IN "tp"
        REPLACE ("c"+TRANSFORM(nc)) WITH tmp.name RECORD nr+1 IN "tp"
        REPLACE ("c"+TRANSFORM(nc)) WITH tmp.dwjc RECORD nr+2 IN "tp"
    ENDSCAN
    INSERT INTO td SELECT * FROM tp
    SELECT tp
    ZAP
ENDFOR
SELECT * FROM td
2018-08-15 08:24
快速回复:请教:如何将表1的数据(根据fz和dc这两列)转换成表2中的样式
数据加载中...
 
   



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

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