今天有個客戶提出一個比較有意思的需求,請看下面的表格先,從E列到AI列是一個月的范圍,需要填上工時。根據實際工程進度,** 可能還要在AI列后面增加N個月(每個月12列)** 。而且總共多少列是不確定的,怎樣設置模板?
這個問題比較典型,對于比較大的表格(通常是指列數比較多)在定義模板的時候比較麻煩,即使花九牛二虎之力設置好,每次填報或查看時,系統反應也比較慢,而且這么大一個表格,填寫也不方便,不能充分體現勤哲EXCEL服務器系統的優勢。
解決方案A
針對這種情況,如果多列為重復性質的內容(例如,本例從E列到AI列都是日期對應的工時),可以考慮使用勤哲的交叉表,使用交叉表可以同時向下,向右拓展行數和列數,而且在定義列的重復數據項(本例E列到AI列)時候不需要定義N個字段,只要定義一個字段(本例為工時)。但這種方案也有一個缺點,填報體驗沒有改善,另外會大量消耗數據庫存儲空間。
解決方案B
我們先從傳統的表格轉模板的思路中跳出來,思考一下,我們上系統的目的是什么? 目的之一是提高效率,對吧! 進一步說是數據錄入的時候盡量簡單和簡潔,減少重復錄入,結果(數據報表)更加及時,好看,準確。
有了這個認識,我們可以考慮把數據錄入與報表分開來實現。數據錄入進數據庫以后,可以使用非常方便,強大的勤哲表間公式或數據庫的結構化查詢語言工具SQL(其實勤哲表間公式歸根結底也是SQL語句)來生成各種需要的報表(結果)。
具體實現步驟
-
我們觀察這個任務,其實就是審核員要記錄自己每天在哪些工程審計上面花了多少時間。所以,首先定義一個工時錄入的簡單模板。
為了提高錄入效率,填報人設置為新建表單時自動填入登錄者姓名,另外在工程名稱列設置了一個列表選項,點擊列表選項的時候,系統會自動彈出該審核者名下未完成的工程相關信息,選擇一個或多個工程名稱,系統自動填入與工程相關的其他信息(例如編號,開始時間要求完成時間),錄入者只需要在對應的工程名稱后面填入在某天(工作日)和多少工時。
拆分出來的工時填報模板 - 填完工時,怎樣按照客戶原始表格格式體現結果呢? 我們可以考慮用數據透視表,透視表是EXCEL本身的一個超級強大的數據統計工具。透視表的數據源設置為服務器數據庫剛才錄入的《工時錄入表》。
a)在本地新建一個空白EXCEL表,選擇數據菜單,現有連接,瀏覽更多..., 新建源,
b) 選擇Microsoft SQL Server, 進入下一步.
c) 填寫數據庫服務器名稱或IP, 填寫數據庫登錄用戶名和密碼
d) 選擇數據透視表進入透視表的操作過程,透視表怎樣格式化這里就不具體講了。
結果就是這樣,當然還可以選擇不同的格式,在透視表里面,可以按照月份,年份匯總,點擊月份前的"+"就可以展開當月的明細。在設置數據源的過程中可以選擇保存密碼,這樣下次打開報表的時候自動同步數據庫里面的數據(需設置為自動同步),或者在表格內按右鍵,選擇刷新,即可和同步數據庫里面的數據。
也可以在EXCEL服務器里面新建一個查詢模板,選擇用剛才做好透視表的EXCEL文件做模板,不需要定義其他數據項,直接設置權限,保存就可以,這樣在EXCEL服務器菜單下面也可以打開這個透視表。