【PB】提取動態交叉報表動態標題名和動態列值

//提取動態交叉報表動態標題名和動態列值:
String    ls_Str, ls_Str1, ls_Name, ls_Name_Text, ls_Text
Long        ll_Cnt, ll_CntTmp, i, ll_Row
dwobject ldwo
environment env
 
GetEnvironment(env)
ll_Cnt = Long(dw_2.Describe('DataWindow.Column.Count'))
//設置靜態模式
dw_2.Modify('datawindow.crosstab.staticmode=yes')
ll_CntTmp = Long(dw_2.Describe('DataWindow.Column.Count'))
 
FOR i = 0 To ll_CntTmp - ll_Cnt
    ls_Name = dw_2.Describe('#' + String(ll_Cnt) + '.Name')
    //獲取動態標題名
    IF i = 0 THEN
        ls_Name_Text = ls_Name + '_t'
        ls_Text = dw_2.Describe( ls_Name_Text + '.Text')
    ELSE
        ls_Name_Text = ls_Name + '_t_' + String(i)
        ls_Text = dw_2.Describe( ls_Name_Text + '.Text')
    END IF
    //獲取動態列名
    ls_Name = dw_2.Describe('#' + String(ll_Cnt + i) + '.Name')
    //當前pb版本
    IF env.PBMajorRevision > 6 THEN
        //返回dwobject
        ldwo = dw_2.Object.__get_attribute( ls_Name, True )
    ELSE
        //pb6使用get_attribute返回dwobject
        ldwo = dw_2.Object.get_attribute( ls_Name, True )
    END IF
    //獲取動態列值
    ls_Str1 = ''
    FOR ll_Row = 1 To dw_2.RowCount()
        ls_Str1 += String( ldwo.Primary[ll_Row] ) + ','
    NEXT
    ls_Str += '標題:' + ls_Name_Text + '~t標題名:' + ls_Text + &
                 '~t列:' + ls_Name + '~t列值:' + ls_Str1 + '~r~n'
NEXT
//設回動態模式
dw_2.Modify('datawindow.crosstab.staticmode=no')
 
MessageBox( '', ls_Str )

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章