原文來自http://www.clariba.com/blog/loading-message-solution-for-xcelsius/comment-page-1/#comment-9529,覺得不錯譯之.
xlf檔案:http://www.clariba.com/blog/wp-content/uploads/2010/11/test_v3.zip
線上示範:http://www.clariba.com/blog/wp-content/uploads/2010/11/loading-message_solution.swf.
xcelsius開發中最大的問題莫過於效能問題,效能問題有時可以通過修改串連選項,修改查詢,減少xcelsius中的組件個數,或者減少excel中的公式數.儘管如此xcelsius還是會花很長時間載入.事實上,諸如sumif和vlookup這樣的公式會花上好幾秒鐘的時間.既然不能減少等待的時間那就讓等待介面更友好點,使用進度條(loading progress)吧!
我建立的是一個載入按鈕,當使用者點擊此按鈕時會先顯示進度條然後再顯示資料,不過這個資料的進度不是真實反應載入進度,可以通過下載xlf檔案觀察.注意這裡的觸發點式在excel中完成的而不是通過xcelsius中的控制項.
我所使用的組件如下:
>> Combo box1:篩選選擇資料並插入到指定目的地中(使用篩選行設定)
>>Combo box2(隱藏在combo box1下面):只有當點擊了play按鈕的時候combo box2才會發生作用,因為用了filter row的必須是可見的情況下才起作用.剛開始見到這樣用combo box2挺奇怪,因為destination映射了兩行兩列,所以此combo box必須一直選擇1才可以顯示標題.然後通過combo box1中選擇到底是哪一行的數值,然後映射到spreadsheet table中.
>>spreadsheet table:只是顯示結果.
>>play control:它控制著combox2和載入訊息,選中auto rewind(自動倒帶).
>>background:只是為了有真實載入的狀態,注意選擇block mouse events.
>>text label:相當於提示訊息,內容可以任意修改.
>>水平進度條:表明載入進度不過並不是真實進度.
使用control play和進度條來類比進度真的挺不錯,之前就沒想過用這樣的方法,起碼讓報表有更好的使用者體驗,可以嘗試在以後的項目中使用.