1. 程式人生 > >報表開發思路之主格(主格屬性)

報表開發思路之主格(主格屬性)

單元格的擴充套件是針對具體的某一個單元格,當報表主體中綁定了多個單元格時,單元格間會天然存在某種關係,使單元格間存在資料過濾關係,並且跟隨擴充套件,這就是主子格,前面的單元格稱之為主格,後面的單元格稱之為子格,也就是說子格的資料會根據主格的資料進行過濾分組顯示,並且還會跟隨主格的擴充套件方向而擴充套件;主格與子格之間是相對關係,不存在絕對的主子關係;一個單元格既可以作為某個單元格的子格,也可以作為某個單元格的主格;主格分兩種:左主格、上主格;下面分別詳細講解左主格、上主格、主子格之間的關係。

 第一節:左主格

(1)、當A單元格縱向擴充套件時,B單元格被同步複製,此時A單元格稱為B單元格的左主格,B單元格稱為A單元格的附屬單元格(或稱為子格);

(2)、左主格擴充套件時,附屬單元格(子格)被縱向同步複製,並且與左主格的相對位置保持不變,附屬單元格(子格)本身的附屬單元格也將被複制。複製時,複製出來的新的單元格的所有屬性都引用被複制單元格的屬性。

(3)、在預設的情況下,一個縱向擴充套件的單元格,當其縱向擴充套件時,其右邊的單元格會自動跟隨它擴充套件。即其右邊的單元格自動是其附屬格(子格)。或者說,一個單元格,會把它左邊第一個(從右向左數)縱向擴充套件格作為其左                 主格,跟隨著它進行縱向擴充套件。

(4)、在實際應用中,當單元格縱向擴充套件時,有時候需要跟著被複制的單元格不一定在該單元格的右邊,此時需要對被動複製的單元格設定左主格。

(5)、當單元格進行縱向擴充套件時,同一維度範圍是指當前主動縱向擴充套件的單元格所在的行範圍內的所有單元格;在實際應用中,附屬單元格往往是主格在同一維度上的更細的劃分,或者是主單元格當前維度的聚集,有時候附屬

             單元格可能是主單元格的標題。

圖例1:

A1單元格縱向擴充套件,B1單元格將被動跟隨A1單元格進行縱向複製,B1單元格的左主格我們可以不設定,根據《2.1.3 規則認定》可以知道B1的左主格是A1,所以B1跟隨A1縱向複製擴充套件;此時我們稱為A1單元格為B1單元格的左主格,B1稱為A1單元格的附屬單元格(或者子格);

圖例2:

 

   A2單元格主動縱向擴充套件,A3單元格跟隨A2單元格進行縱向擴充套件,同時A3單元格自身縱向擴充套件,A4單元格跟隨A3單元格執行縱向擴充套件;

  從上可見:A2是A3的左主格,A3是A2的附屬單元格(子格);A3又是A4的左主格,A4屬於A3 的直接附屬格,A4又屬於A2的間接附屬格;

   A3與A2不屬於同一維度,所以需要我們手工定義A3的左主格;同理A4也需要手工定義左主格為A3;

   如上圖所示,可以體現附屬單元格是主單元格在同一維度上的更細劃分;

圖例3:

 

   A2自身縱向擴充套件,B2跟隨A2縱向擴充套件,則A2是B2的左主格,B2即為A2附屬格;同時對B2執行自身的縱向擴充套件;A3 需要跟隨A2進行縱向擴充套件,即每一個季度有一個小計行;

   則A3為A2的附屬格,A2為A3的左主格;那麼A2的直接附屬格為B2,A3;

   A2與B2屬於同一維度,所以B2的左主格可以手工設定為A2,也可以不設定,但是A3與A2不屬於同一維度,需要我們手工定義A3的左主格為A2;如果A3不定義左主格,那麼就不會進行跟隨擴充套件,只在最後顯示一行小計;

   綜上所示,可以體現附屬單元格是主單元格在當前維度的聚集;

第二節:上主格

(1)、當A單元格橫向擴充套件時,B單元格被同步複製,此時A單元格稱為B單元 格的上主格,B單元格稱為A單元格的附屬單元格(或稱為子格);

(2)、上主格擴充套件時,附屬單元格(子格)被橫向同步複製,並且與上主格的相對位置保持不變,附屬單元格(子格)本身的附屬單元格也將被複制。複製時,複製出來的新的單元格的所有屬性都引用被複制單元格的屬性。

(3)、在預設的情況下,一個橫向擴充套件的單元格,當其橫向擴充套件時,其下邊的單元格會自動跟隨它擴充套件。即其下邊的單元格自動是其附屬格(子格)。或者說,一個單元格,會把它上邊第一個(從下向上數)橫向擴充套件格作為其              上主格,跟隨著它進行橫向擴充套件。

(4)、在實際應用中,當單元格橫向擴充套件時,有時候需要跟著被複制的單元格不一定在該單元格的下邊,此時需要對被動複製的單元格設定上主格。

(5)、當單元格進行橫向擴充套件時,同一維度範圍是指當前主動橫向擴充套件的單元格所在的列範圍內的所有單元格;在實際應用中,附屬單元格往往是主格在同一維度上的更細的劃分,或者是主單元格當前維度的聚集,有時候附屬               單元格可能是主單元格的標題。

圖例1:

 

A1單元格設定為橫向擴充套件,A2單元格預設跟隨A1單元格被動橫向複製;此時A2單元格就被稱為A1單元格的附屬格,A1就被稱為A2單元格的上主格;根據主格認定規則

A2單元格的上主格我們可以不設定(因為在A1單元格的下面),根據《2.1.3 規則認定》可以知道A2的上主格是A1,所以A2跟隨A1橫向複製擴充套件;

圖例2:

 

A1單元格主動橫向擴充套件(年度),A2單元格跟隨A1單元格進行橫向擴充套件,同時A2單元格自身也橫向擴充套件(季度),A3單元格跟隨A2單元格執行橫向擴充套件;

同時A3單元格自身也橫向擴充套件(月份),A4單元格跟隨A3單元格擴充套件;從上可見:A1是A2的上主格,A2是A1的附屬格;A2又是A3上主格,A3是A2的附屬單元格(子格);A3又是A4的上主格,A4屬於A3的直接附屬格;A4又可以稱為A1或A2的間接附屬格;A1、A2、A3、A4屬於同一維度,可以不需要手工指定對應的上主格;如上圖所示,可以體現附屬單元格是主單元格在同一維度上的更細劃分;

圖例3:

 

 A1單元格主動橫向擴充套件(年度),A2單元格跟隨A1單元格進行橫向擴充套件,同時A2單元格自身也橫向擴充套件(季度),A3單元格跟隨A2單元格執行橫向擴充套件;

同時A3單元格自身也橫向擴充套件(月份),A4單元格跟隨A3單元格擴充套件;從上可見:A1是A2的上主格,A2是A1的附屬格;A2又是A3上主格,A3是A2的附屬單元格(子格);A3又是A4的上主格,A4屬於A3的直接附屬格;A4又可以稱為A1或A2的間接附屬格;B1單元格需要跟隨A1單元格同步擴充套件;因為他們不在同一維度,所以需要手工指定B1單元格的上主格為A1;同理讓B4也跟隨A1擴充套件,則上主格為A1;A1、A2、A3、A4屬於同一維度,可以不需要手工指定對應的上主格;B1、B4不屬於同一維度,所以需要手工指定上主格A1;

 綜上所示,可以體現附屬單元格是主單元格在當前維度的聚