反饋已提交

網絡繁忙

雙向擴展層次座標

一、概述

1
應用場景。
  1. 當資料同時由縱向擴展和橫向擴展而來,也就是 交叉表 的情況下,層次座標該怎麼寫呢?

  2. 相對層次座標,如圖1所示;

  3. 絕對層次座標,如圖2所示;

  4. 只獲取某一欄或某一列:也是絕對層次座標應用的一種,如圖3所示。

3
公式寫法。
  1. 雙向擴展場景下,不管是相對層次座標還是絕對層次座標,都要使用縱向和橫向的組合寫法,且要遵循【先縱向後橫向】的原則。

層次座標型別公式寫法計算結果參數解釋
相對層次座標Cellx[Celly:-k ;Cellz:p]
第 p 相對偏移 -k

Cellx:橫縱向同時擴展出來的交叉資料儲存格。

Celly:縱向擴展儲存格,Cellx 的左父格。

Cellz:橫向擴展儲存格,Cellx 的上父格。

k:數字。

p:數字。

Cellx[Celly:+k ;Cellz:p]第 p 欄相對偏移 +k
Cellx[Celly:p ;Cellz:-k]第 p 列相對偏移 -k
Cellx[Celly:p ;Cellz:+k]
第 p 列相對偏移 +k
絕對層次座標Cellx[Celly:k ;Cellz:p]第 k 列第 p 欄交叉處的值
Cellx[Celly:k ;Cellz:!-p]第 k 列倒數第 p 欄交叉處的值
Cellx[Celly ;Cellz:k]
獲取第 k 欄所有值
Cellx[Celly:k ;Cellz]
獲取第 k 列所有值

二、建立範例範本

  1. 此處我們建立一個交叉報表,用於下面示範雙向擴展時相對層次座標和絕對層次座標的寫法。

1
準備資料。
  1. 建立資料集 ds1,SQL 語句為:【SELECT * FROM 銷量】,如下圖所示。

2
設計表格。
  1. 將【産品】欄位拖到 B1 儲存格,設定為橫向擴展。

  2. 將【銷售員】欄位拖到 A2 儲存格,設定為縱向擴展。

  3. 將【銷量】欄位拖到 B2 儲存格,設定為不擴展,此時 B2 儲存格就是根據 B1 和 A2 雙向擴展出來的資料。

3
效果預覽。
  1. 交叉表設計好後,分頁預覽看下效果。

三、相對層次座標寫法

  1. 按照下圖1所示在相應儲存格中填寫相對層次座標的公式。實際計算結果如下圖2所示。下面給出每個層次座標的解譯。

所在儲存格公式公式解析最終效果
C2B2[A2:-1 ;B1:1]

;B1:1:橫向絕對層次座標,是爲了鎖定第一欄。

A2:-1:縱向相對層次座標,是爲了實現縱向負偏移。

第一相對偏移 -1
D2B2[A2:+1 ;B1:2]

;B1:2:橫向絕對層次座標,是爲了鎖定第二欄。

A2:+1:縱向相對層次座標,是爲了實現縱向正偏移。

第二相對偏移 +1
B3B2[A2:1 ;B1:-1]

A2:1:縱向絕對層次座標,是爲了鎖定第一列。

;B1:-1:橫向相對層次座標,是爲了實現橫向負偏移。

第一列相對偏移 -1
B4B2[A2:2 ;B1:+1]

A2:2:縱向絕對層次座標,是爲了鎖定第二列。

;B1:+1:橫向相對層次座標,是爲了實現橫向正偏移。

第二列相對偏移 +1

四、絕對層次座標寫法

  1. 按照下圖1所示在相應儲存格中填寫絕對層次座標的公式,其中 B4~B6 都設定為不擴展,且左父格和上父格都設定為無。實際計算結果如下圖2所示。下面給出每個層次座標的解譯。

所在儲存格公式公式解析最終效果
B4B2[A2:4 ;B1:2]

A2:4:縱向絕對層次座標,鎖定第四列。

;B1:2:橫向絕對層次座標,鎖定第二欄。

返回第四列和第二交叉處的值
B5B2[A2:6 ;B1:4]

A2:6:縱向絕對層次座標,鎖定第六列。

;B1:4:橫向絕對層次座標,鎖定第四欄。

返回第六列和第四交叉處的值
B6B2[A2:!-1 ;B1:!-1]

A2:!-1:縱向絕對層次座標,鎖定倒數第一列。

;B1:!-1:橫向絕對層次座標,鎖定倒數第一欄。

返回倒數第一列和倒數第一交叉處的值

五、只獲取某一欄或某一列

  1. 按照下圖1所示在相應儲存格中填寫層次座標公式。實際計算結果如下圖2所示。下面給出公式解析。

所在儲存格公式公式解析最終效果
C2B2[A2 ;B1:1]

A2:返回 A2 儲存格縱向擴展的所有值。

;B1:1:橫向絕對層次座標,鎖定第一欄。

返回第一所有值
B3B2[A2:1 ;B1]

A2:1:縱向絕對層次座標,鎖定第一列。

;B1:返回 B1 儲存格橫向擴展的所有值。

返回第一列所有值

六、範本下載

  1. 已完成範本可參見:

    【%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doctw\Advanced\Coordinate\交叉表相對層次座標.cpt】;

    【%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doctw\Advanced\Coordinate\交叉表絕對層次座標.cpt】;

    【%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doctw\Advanced\Coordinate\獲取交叉表某一欄或某一欄的值.cpt】。

  2. 點選下載範本:

    交叉表相對層次座標.cpt

    交叉表絕對層次座標.cpt

    獲取交叉表某一欄或某一欄的值.cpt

附件列表


主題: 報表專題
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉