設計原理

5 試算表-設計原理

所有報表都基於如下三種基礎報表而實現:可能是某種報表的衍生,或者是某兩種報表結合的結果。因此從歸整為零的角度,我們先瞭解這三種基礎報表的實現就能總結出所有報表的實現原理。

類型

列頭/欄頭式

列欄交叉式

表單分散式

圖例

http://wiki.smartbi.com.cn:18081/download/thumbnails/42010222/image2018-12-17%2016%3A21%3A8.png?version=1&modificationDate=1545121254000&api=v2

http://wiki.smartbi.com.cn:18081/download/thumbnails/42010222/image2018-12-18%2015%3A14%3A25.png?version=1&modificationDate=1545117241000&api=v2

http://wiki.smartbi.com.cn:18081/download/thumbnails/42010222/image2018-12-18%2015%3A3%3A8.png?version=1&modificationDate=1545116563000&api=v2

說明

此類型的報表格樣式,有固定的列頭或欄頭,並且向右 或向下呈現類別或資料。

此類型的報表格樣式,列欄交叉顯示類別,交叉區域通常顯示資料。

此類型的報表樣式,欄位列和欄位欄呈內在規律性分佈, 類別或資料根據欄位的分佈進行組織。

設計原理分析

1、在這類型的報表中,固定的列頭或欄頭,是通過在 固定儲存格手動輸入文字,設計實現。

2、欄頭下方的資料清單,通過綁定的欄位擴展實現。

http://wiki.smartbi.com.cn:18081/download/thumbnails/42010222/image2018-12-19%2013%3A58%3A40.png?version=1&modificationDate=1545199107000&api=v2

1、在這類型的報表中,交叉表頭,是通過在固定單元 格中輸入表頭實現。

2、列頭和欄頭,都是通過綁定的類別欄位擴展實現, 且實現內容的組合以欄位間的父儲存格屬性為依據。

3、交叉區域中的數值結果,是系統按照內建計算方法 統計而得。

http://wiki.smartbi.com.cn:18081/download/thumbnails/42010222/image2018-12-19%2014%3A15%3A11.png?version=1&modificationDate=1545200097000&api=v2

1、在這類型的報表中,固定顯示的內容儲存格,如圖例 中所有藍色底儲存格(“姓名、專業“等),是通過在固定儲存格中輸入內容實現。

2、固定內容儲存格的描述資訊,通過綁定欄位擴展而來, 且實現內容以“張三”所在儲存格為父儲存格為依據進行組合。

http://wiki.smartbi.com.cn:18081/download/thumbnails/42010222/image2018-12-19%2014%3A34%3A7.png?version=1&modificationDate=1545201234000&api=v2

無論試算表-報表範例中任何一個報表都是基於以上三種報表的衍生或綜合或變化。因此,綜上所述:試算表設計報表的實現原理,主要涉及如下三個方面:

  • 附屬屬性:附屬屬性的設定體現了儲存格間的依賴關係,子儲存格擴展出來的內容取決於它從屬的父儲存格。詳情請參見試算表-附屬屬性章節。

  • 擴展屬性:擴展包含了對儲存格綁定欄位,擴展出來的內容進行擴展方向和擴展方式的處理。詳情請參見試算表-擴展屬性章節。

  • 資料設定:資料包含了對擴展出來的內容的組織或處理方式,包含:分組、列表、匯總。詳情請參見試算表-資料設定章節。

這三個方面不是獨立存在的,相互結合應用才能保證實現報表格樣式及資料的正確性。

5.1 試算表-擴展屬性

擴展在試算表實現過程中實際上是決定了欄位內容的擴展情況,包含了擴展方向和擴展方式。

從使用者的瀏覽習慣出發,擴展方向支援從左向右或者從上向下;擴展方式支援插入儲存格或覆蓋儲存格。

擴展方向和擴展方式無法獨立運用,必須結合使用。

儲存格擁有擴展屬性的前提條件:必須綁定了欄位。

綁定欄位

綁定欄位的儲存格是擴展的起始點,我們綁定欄位的方法是:在試算表設計介面中,拖拉資料集或資料表中的欄位到某個儲存格上。如下圖所示:

我們從右側“資料集面板”中拖拉欄位“區域”到儲存格D3,則我們說:單元D3綁定了“區域”欄位。

綁定的欄位預設有一個向下的箭頭,表示該欄位的內容是預設從上向下擴展。

功能入口

對綁定了欄位的儲存格,我們可以設定擴展方向和擴展方式。

擴展在試算表中的設定入口有如下兩個:

設定入口

入口圖示

工具列

屬性面板

1、工具列中按一下屬性

2、開啟“屬性”面板:

C:\Users\Administrator\AppData\Local\Temp\SNAGHTML16f8a1e5.PNG

擴展圖例

我們以如下欄位及其欄位內容為範例來詳細講解擴展。

上圖中,“區域”是欄位名,需要與試算表中具體儲存格進行綁定;“華北、華東......”等作為“區域”欄位的內容,將以綁定欄位的儲存格為起始點進行擴展呈現。

上圖中的欄位及內容,擴展方向及擴展方式的效果詳情如下:

擴展類型

定義及效果

設定方法

擴展方向-從上至下

表示從绑定欄位儲存格起始,從上往下擴展内容,此時绑定的欄位左側 會以向下的箭頭標識。

擴展方向-從左至右

表示從绑定欄位儲存格起始,從左往右擴展内容,此時绑定的欄位左側 會以向右的箭頭標識。

擴展方式-插入儲存格

表示從绑定欄位儲存格為起始,每擴展出一列或一欄資料,就新插入一列 或一欄用於填充這些資料呈現。

以下範例中,我們在绑定欄位的儲存格後一列增加橘色底色進行標識,可 以發現該橘色列一直被插入的列或欄往後推移,没有被欄位擴展的内容填 充。

擴展方式-覆蓋儲存格

表示從绑定欄位儲存格起始,每擴展出一列或一欄資料,就直接在接下来 的列或欄中填充這些資料呈現。

以下範例中,我們在绑定欄位的儲存格後一列增加橘色底色進行標識,可 以發現該橘色行在擴展出第二欄資料時就被填充了。

不擴展

不擴展是並不是指不擴展內容,只是說在表現形式上不會將每擴展出來的一條記錄填充到新的列或欄儲存格上,而是將所有擴展出來的內容集中顯示在一個儲存格中。

我們可以把它看作擴展內容的一項特殊應用:對於字元型的內容,不擴展的應用意義不大;但是對於數值型的內容,可以通過不擴展並進行匯總等計算對資料進行處理。

適用場景:通常用於對資料(也叫數值內容)進行匯總、平均值、計數等計算。

注:不擴展設定必須與資料設定中的匯總結合使用。

功能入口

不擴展的設定入口在試算表中有如下兩個:

設定入口

入口圖示

工具列

屬性面板

1、工具列中按一下屬性

2、開啟“屬性”面板:

C:\Users\Administrator\AppData\Local\Temp\SNAGHTML172ba76b.PNG

效果範例

原始資料

設定

效果

下表是查詢出來的不同區域各類商品的銷售量明細資料:

系統根據內建求和演算法對不同區域中所有銷售量資料進行合計,結果如下:

銷售量資料所在儲存格的分類計算取決於其父儲存格“銷售區域”所綁定欄位的儲存格,父儲存格內容及設定詳情請參見試算表-附屬屬性章節。

延伸

延伸是指設定儲存格是否根據擴展儲存格進行資料延長展示。

適用場景:在交叉表中應用,用於取消標題列或參數等其它表格外的報表元素隨表格擴展而顯示的延伸效果。

功能入口

延伸的設定入口只有如下一個:

1、工具列中按一下屬性

2、開啟“屬性”面板:

效果範例為了更好的瞭解延伸的效果,下面顯示了未延伸設定和延伸設定後的效果對比:

試算表設計介面

未延伸設定效果

延伸設定效果

不勾選延伸設定選項。

勾選延伸設定選項。

5.2 試算表-附屬屬性

附屬屬性是試算表實現的基本原理之一,它用來確定儲存格間的父子關係,這種父子關係決定著儲存格擴展的樣式效果。因此附屬屬性必須與擴展屬性結合使用,子儲存格一般隨著父儲存格進行擴展過濾,且隨著父儲存格的擴展,子儲存格通過新增或覆蓋列欄的方式被複製。

只允許擁有“擴展”屬性的儲存格才能被設為父儲存格。

我們瀏覽報表的視覺方向都是從左至右,從上至下,因此父儲存格只分為三種:

  • 無父儲存格:表示儲存格之間沒有附屬關係。

  • 左父儲存格:表示以左側具有擴展屬性的儲存格為父儲存格。

  • 上父儲存格:表示以上方具有擴展屬性的儲存格為父儲存格。

功能入口

父儲存格設定在試算表中的設定入口有如下幾個:

設定入口

入口圖示

工具列

屬性面板

1、工具列中按一下屬性

2、開啟“屬性”面板:

上圖中父儲存格的設定詳情請參見“父儲存格設定”內容。

父儲存格設定

通常情況下,子儲存格會根據預設找尋原則找到預設父儲存格,子儲存格會根據左父儲存格進行上下擴展,根據上父儲存格進行左右擴展;不設定父儲存格,則子儲存格不會隨著父儲存格的擴展而進行值的過濾和擴展。

父儲存格設定效果

下面我們將以如下資料表來演示不設定父儲存格的效果及與左父儲存格、上父儲存格的擴展效果對比情況:

資料表

對比效果

不設定父儲存格及效果

左父儲存格設定及效果

上父儲存格設定及效果

父儲存格設定為“無”:

效果:

注:

以上範例由於儲存格C3上方沒有具有擴展屬性的儲存格,因此不需要設定C3的上父儲存格,只需要保持預設設定即可。

左父儲存格設定:

效果:

上父儲存格設定:

效果:

父儲存格適用情況

由於父儲存格包含了“無父儲存格”、“左父儲存格”和“上父儲存格”三項內容,因此父儲存格設定包含的類型及適用情況如下:

類型

適用情況

參考範例

無父儲存格:既無左父儲存格也無上父儲存格

1、交叉表的交叉表頭。

交叉報表

只有左父儲存格

1、從上向下擴展的清單表。

2、一個表格只記錄一條資料的情況,例如單據、表單、簡歷等。

清單報表

迴圈擴展報表

只有上父儲存格

1、從左向右擴展的清單表。

2、一個表格只記錄一條資料的情況,例如單據、表單、簡歷等。

清單報表

迴圈擴展報表

既有左父儲存格也有上父儲存格

1、交叉表的資料區。

交叉報表

父儲存格設定方法

系統支援父儲存格如下三種設定:

  • 無:表示沒有父儲存格,只有當子儲存格左方或者上方有擴展屬性的儲存格,又不想子儲存格進行擴展時,需要將子儲存格設定成“無”。

  • 預設:表示按照系統預設的尋找父儲存格方式設定父儲存格。

  • 自訂:表示以使用者指定的儲存格為父儲存格。

下面,我們詳細介紹預設父儲存格和自訂父儲存格設定的內容。

預設父儲存格

通常在設計試算表時,預設使用儲存格預設的父儲存格即可。

預設父儲存格的確認原則是:子儲存格將向左或向上尋找離其最近的,具有擴展屬性的儲存格為其左父儲存格或上父儲存格。

預設父儲存格的設定方法如下:

設定入口

圖示

工具列中設定

屬性面板中設定

自訂父儲存格

自訂父儲存格通常用於實現小計合計、循環擴展等一些比較特殊的報表格樣式。

下表列出了通過自訂父儲存格實現的幾例常用特殊報表格樣式:

5.3 試算表-資料設定

資料設定用於設定欄位擴展後的內容組織方式,主要包含了分組、列表和匯總三種類型。

類型

定義

分組

表示以父儲存格內容作為分組依據:內容相同的列或欄為一組,且父儲存格以多欄或多欄合併顯示。

系統支援分組方式詳情請參見分組方式內容。

關於父儲存格的詳情請參見附屬屬性章節。

列表

表示按照原始資料順序以清單的樣式來顯示擴展內容。

匯總

將擴展出來的內容進行匯總方式計算,該項只針對“不擴展”而言,且只對數字列有意義。

注:進行資料設定的前提條件:儲存格必須綁定了欄位。

功能入口

資料設定在試算表中的設定入口有如下幾個:

設定入口

入口圖示

工具列

屬性面板

1、工具列中按一下屬性

2、開啟“屬性”面板:

分組

分組是將父儲存格內容相同的子儲存格以組劃分顯示,各子儲存格的劃分只以其父儲存格為依據。

由於子儲存格是依賴於父儲存格的,因此分組的操作物件是父儲存格。

下圖是一個常見的分組報表格樣式。

上圖中,“區域”是劃分“城市”分組的依據,因此把屬於相同區域的城市分為一組;“城市”是劃分“銷量”的依據,因此把屬於相同城市的銷量資料分為一組;從“區域”到“銷量”前者依次是後者的左父儲存格,因此分組顯示也是層層遞進的。

系統支援的分組方式劃分詳情如下:

1、按照重複記錄的處理方式分類,可以劃分為:預設和連續兩種方式。

2、按照劃分依據分類,可以劃分為:系統分組和自訂分組,其中“系統分組”是我們對“預設”和“連續”兩種方式的統稱,因為這兩種類型的分組,其依據都是系統取得父儲存格內容進行判斷的;而“自訂分組”的劃分依據是由使用者自己定義的。

“預設”、“連續”和“自訂”三種分組方式的對比情況如下:

類型

原始資料

效果及設定方法

特點

預設

效果:

設定方法:

選中父儲存格(即綁定了“區域”欄位的儲存格), 在“屬性面板”中選擇分組>預設

將原始資料表中所有屬於目前父儲存格內容的子儲存格集中顯示。

連續

效果:

設定方法:

選中父儲存格(即綁定了“區域”欄位的儲存格), 在“屬性面板”中選擇分組>連續

按照原始資料順序,將屬於目前父儲存格內容的連續的或單個的子儲存格分組顯示,若再次出現該父儲存格內容則再新分一個組顯示。

自訂

效果:

設定方法:

1、選中父儲存格(即綁定了“區域”欄位的儲存格), 在“屬性面板”中選擇分組>自訂

2、按一下自訂按鈕,彈出“自訂分組”視窗,進行如下自訂分組設定:將“華北”和“東北”區域的所有城市分為一組,且命名為“北方”。

使用者對父儲存格進行自訂劃分

以上設定內容中擴展面板設定詳情請參見;附屬面板設定詳情請參見。

列表

清單是指對父儲存格內容不進行重複合併,按照原始資料順序以清單展示。

其效果及設定如下:

原始資料

效果

設定方法

1、在工具列中的資料設定項中選擇列表

2、在“擴展面板”的“資料設定”中選擇列表

匯總

匯總是指以父儲存格為單位,將同一單位下所選欄位列中的內容進行匯總計算,顯示匯總結果。

系統支援的匯總方式有:求和、平均、計數、唯一計數、最大值、最小值。其中求和、平均只支援數值型別的資料列欄位。

匯總設定必須結合儲存格“不擴展”屬性使用。

匯總效果及設定如下:

原始資料

效果

設定方法

1、工具列中設定“擴展方向”必須設為“不擴展”,“資料設定”必須設為“匯總”,“匯總”選項選擇。

2、在“擴展面板”的“擴展方向”上必須選擇“不擴展”,“資料設定”中選擇“匯總”且確定匯總方式。

Last updated

Was this helpful?