数据窗口如何实现行列转置?
数据窗口如何实现行列转置?例如:
a1 a2 a3 a4
b1b2 b3 b4
c1c2 c3 c4
转置成:
a1 b1 c1
a2 b2 c2
a3 b3 c3
a4 b4 c4
//获得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
唉,又是手敲代码,没验证,但是应该不会错,网上没有的 数据窗口没这个功能吧,把相应的SQL提前处理掉吧。 用存储过程转好了,dw读 swimchen 发表于 2023-9-25 06:58
//获得Source的列数
LONG ll_Column
ll_Column=Long(dw_Source.Describe("DataWindow.Column.Count"))
感谢指点。非常感谢。:handshake
页:
[1]