crosstab 的问题,高手help!!!!在线等待
用crosstab retrieve数据,
比如columns是A,rows是B,value 是C
得到如下数据:
sum of val A
B 00001 10002 33003 40004 grand total
001 3.2 3.4 5.6 0 12.2
002 2.0 0 0 0 2
003 1.2 1.2 1.2 1.2 4.8
004 0 0 0 1 1
grand total .............................................
我想得到A的值,即如果限定第2列,我希望得到10002,第四列,我希望
得到40004,etc.通过数据窗口的属性吗??请高手详细指点,谢谢。
问题点数:100、回复次数:5Top
1 楼xingxing(xingxing)回复于 2002-04-27 11:55:02 得分 0
再详细点,好象是可以!!!Top
2 楼jaguarcts(xzh2000)回复于 2002-04-27 12:44:15 得分 0
绝对没朋问题。
查数据窗口对象的语法:
dw_1.object.datawindow.crosstab.catagory
之类,
你知道怎么查询SQL
语法吗?
menu:new--tools(datawindow syntax tools)
Top
3 楼cqulzh(Eexcelence)回复于 2002-04-27 12:45:25 得分 0
帮兄弟up一把!Top
4 楼zfyvc(新手上路中)回复于 2002-04-27 12:46:25 得分 0
我的意思就是因为A的值是检索出来的,我事先并不知道,所以
00001,10002,33003,40004....这些列头的值是数据检索完后,
我要通过某种方式来得到,比如我现在想知道第二个列头的值,
我可不可以通过某种方式来得到?就如能看到的,该值是10002。Top
5 楼llitcwl(中国龙)回复于 2002-04-27 13:06:22 得分 100
看一段代码:
//====================================================================
// DW_1 单击事件 在 w_sys_bzreport inherited from window
//--------------------------------------------------------------------
// 说明:交叉表得到记录测试
//--------------------------------------------------------------------
// 返回: ()
//--------------------------------------------------------------------
// 作者: cwl 日期: 2002.01.20
//变更日志:020302 改变对列值的取值方法
//====================================================================
string lsSubject, lsClass, lsValue, lsCol ,ls_clicked,ls_temp,ls_fristcol
int li_i
//至关重要:将数据窗口静态化
dw_1.object.datawindow.crosstab.staticmode='Yes'
ls_clicked = dw_1.GetObjectAtPointer()
if IsValid( dwo ) and row > 0 THEN
//列名
lsCol = string( dwo.name )
//值
lsValue = string( this.getitemnumber( row, lsCol ) )
if isnull( lsValue ) then lsValue = 'null'
// 本行第一列值
lsSubject = this.GetItemString( row, 1 )
// 相应列值
//原列名
li_i=pos(lscol,'_')
if li_i=0 then li_i=len(lscol)+1
ls_fristcol=mid(lscol,1,li_i - 1)
//得到分隔串
ls_temp=mid(lscol,len(ls_fristcol)+1,len(lscol))
messagebox( '',ls_fristcol + "_t"+ls_temp )
// 相应列值
lsClass = this.Describe( ls_fristcol + "_t"+ls_temp+".Text" )
messagebox( lscol,lsSubject + ' ' + lsClass + " " + lsValue )
end ifTop




