jljyczy 发表于 2014-12-27 08:00:40

数据窗口如何实现行列转置?

数据窗口如何实现行列转置?
例如:
a1   a2   a3   a4
b1b2    b3    b4
c1c2    c3   c4
转置成:
a1    b1    c1
a2    b2    c2
a3    b3    c3
a4    b4    c4

swimchen 发表于 2023-9-25 06:58:54

//获得Source的列数
LONG ll_Column
ll_Column=Long(dw_Source.Describe("DataWindow.Column.Count"))

//获得Dest的列数
LONG ll_Limit
ll_Limit=Long(dw_Dest.Describe("DataWindow.Column.Count"))

//插入到Dest的行中
LONG ll_Index
FOR ll_Index=1 TO ll_Column
        dw_Dest.InsertRow(0)
NEXT

//声明变量
LONG ll_Row

//矩阵转换赋值,建议最好都是String,且Source行数小于等于Dest列数
ANY la_Data[]
FOR ll_Row=1 TO dw_Source.RowCount()
        la_Data[]=dw_Source.Object.Data
        FOR ll_Index=1 TO ll_Column
                IF ll_Index>ll_Limit THEN EXIT //判断Source.Row是否超过Dest.Column
                dw_Dest.SetItem(ll_Index,ll_Row,String(la_Data))
        NEXT
NEXT


唉,又是手敲代码,没验证,但是应该不会错,网上没有的

ehxz 发表于 2014-12-27 18:28:58

数据窗口没这个功能吧,把相应的SQL提前处理掉吧。

lizf_hn 发表于 2015-5-8 09:07:24

用存储过程转好了,dw读

jljyczy 发表于 2023-10-4 14:42:43

swimchen 发表于 2023-9-25 06:58
//获得Source的列数
LONG ll_Column
ll_Column=Long(dw_Source.Describe("DataWindow.Column.Count"))


感谢指点。非常感谢。:handshake
页: [1]
查看完整版本: 数据窗口如何实现行列转置?

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com