題目
實現功能:
- 可以選擇數據庫中存在的所有年份
- 根據選擇的年份統計出該年下每個月的訂單總數、已付訂單數量、月銷量
- 根據統計的數據制作混合圖表,其中已付訂單數量使用折線圖,月銷量坐標軸在右側
- 分類軸日期傾斜顯示
- 統計表中日期從小到大排列
- 動態顯示標題:xx年各月份銷售業績表
使用數據:
- FRDemo中的訂單表與訂單明細
數據集設計要點
月銷量 = [訂單明細].[數量] * [訂單明細].[單價]
一個訂單ID對應有多張訂單,所以光統計[訂單]里ID的數量是達不到范例中的效果的
數據集中最好單獨統計出一列“年份”字段,方便后面在表格中接收參數
我在這里用了2個數據集,一個數據集統計“訂購數量”和“月銷售量”以及“訂購年月”,設置有‘$year’變量以提供參數查詢;另一個數據集統計數據庫中存在的所有年份,供年份控件使用。
以下是后兩個數據集的SQL語句:
SELECT strftime('%Y-%m', 訂單.訂購日期) AS 日期, COUNT(訂單.訂單ID) AS 訂單數量, sum(case when 訂單.是否已付='true' then 1 else 0 end) AS 已付訂單數量, SUM(訂單明細.數量*訂單明細.單價) AS 月銷量, strftime('%Y', 訂單.訂購日期) AS 年份 FROM 訂單, 訂單明細 WHERE 訂單.訂單ID = 訂單明細.訂單ID AND 年份 = '${year}' GROUP BY 訂購年月, 年份 ORDER BY 年份;
SELECT strftime('%Y', 訂單.訂購日期) AS 年份 FROM 訂單 GROUP BY 年份 ORDER BY 年份;
圖表設計
在此題中圖表才是真正的重點。該圖例要求我們使用“柱狀圖” + “折線圖”的組合圖形式進行設計,且折線圖的Y軸刻度必須隱藏,月銷量的Y軸置於圖表右側。
1、首先選中一塊區域合並,作為我們插入圖表的地方。右鍵單擊該區域,在 “單元格元素” 中選擇 “插入圖表” ,此時界面會彈出圖表類型選擇框,在左邊的類型中選擇組合圖 ,選擇第一個 “柱形圖 - 折線圖” 。
2、動態顯示標題:xx年各月份銷售業績表,綁定年份控件名的值即可。
3、創建好圖表后,我們需要讓圖表獨立顯示在當前頁面而不是跟着表格變動。故在此我們需要將圖表的父格改成無。在右側側邊欄找到 “單元格屬性” ,選擇 “擴展” 選項卡,把左父格和上父格改成無。
4、現在,讓我們把數據列加到圖表中。在右側側邊欄中找到 “單元格元素” ,選擇 “數據” 選項卡。注意,此處“數據”選項卡內有兩個子項,分別是“柱狀圖”和“折線圖”,接下來我們要分別把數據列輸進去。
首先在 “數據來源” 中選擇 “單元格數據” ,隨后在 “分類名” 輸入 “=A3”, 系列名與系列值 需要輸入兩組,一組是“=B2”和“=B3”,一組是“=D2”和“=D3”。折線圖同理。
分類名:x軸。
系列名:2個柱形、1根折線。
系列值:每個系列的值。
5、接下來,我們還需要對Y軸進行設置。在 “單元格元素” 中打開 “樣式” 選項卡,找到子項 “坐標軸” ,隨后點擊下方的“+”號,添加一列新的Y軸3,然后將Y軸2的軸標簽修改為 “隱藏” ,將Y軸2和Y軸3的位置修改為 “右側” 。
軸標簽位置的值代表着Y坐標軸是在左側還是右側,選擇0值會使坐標軸靠在最左側。
軸標簽的顯示和隱藏是表示該Y軸是否顯示在圖表中。從圖例中我們可以看到,左側顯示的是“訂購數量”的Y軸,右側顯示的是“月銷量”的Y軸,沒有“已付訂單”的Y軸2,所以在這里我們要隱藏Y軸2。
6、添加完Y軸之后,我們點擊 “樣式” 選項卡下的 “系列” 子項,在這里設置坐標軸對應的系列。
同樣,我們可以在這里看見“柱狀圖”和“折線圖”兩項。首選選擇“柱狀圖”,在 “堆積和坐標軸” 中點擊“+”號添加新項,界面上會彈出坐標軸設置窗口,在Y軸中選擇“Y軸3”,然后添加條件“系列序號 等於 2”,點擊屏幕上的空白處使修改生效。
注意,柱形圖用到的是y軸和y軸3,折線圖用到的是y軸2。
7、分類軸日期傾斜顯示。
8、改變柱形圖和折線圖顏色。在特效->條件顯示,添加條件。
到這里,我們的圖表已經基本符合我們題目的要求了。