報表載入大資料時顯示進度條

2021-06-16 21:57:33 字數 1148 閱讀 9448

由於某些報表長度非常大,如果要生成或執行非常大的報表,需要一段時間,這段時間可能是幾秒,最長也可能達到幾十秒,這時進度條的需求就出現了。終端使用者需要乙個進度條來顯示 報表生成的進度,不然終端使用者可能將正常報表生成時間理解為應用系統的不穩定。

activereports允許開發者將乙個使用者顯示報表生成進度的進度條整合到報表瀏覽器中,類似一下效果:

我們需要windows forms progressbar 這個控制項,此外還需要乙個標籤控制項用於顯示進度的百分比和提示報表生成完成。

首先要確定報表記錄數來確定進度條的最大值,activereports支援多種型別的資料來源,所以還要確定報表使用的資料來源型別,下面的**示例就是建立乙個getnoofrecords函式來計算記錄數,這種方式適用於常見資料來源。

public int getnoofrecords(object ds)

con.close();

}else if (ds.gettype().tostring() == "grapecity.activereports.data.oledbdatasource")

con.close();

}else if (ds.gettype().tostring() == "grapecity.activereports.data.xmldatasource")

else if (ds.gettype().tostring() == "system.data.datatable")

else

return noofrecs;

}

在得到記錄數後,需要將其值設定為最大進度數,並在乙個單獨的執行緒中執行的activereports。在單獨程序執行報表能夠實現報表的後台執行而 且能獲取報表進度。接下來定義乙個在fetchdata事件中遞增的變數recordcount,這個變數將用來控制進度條的運動,示例**如下所示:

private void checkprogress(object sender, eventargs e)

else

}

以上**中的label1是用來顯示進度百分比的。**中也包含了停止和重啟報表生成的按鈕。

Android網路載入時顯示進度條

在聯網獲取資料時,用乙個進度條提示使用者正在載入資料,以下講一下我是如何實現這種效果的。由於android的介面更新只能通過自己的ui執行緒進行操作,所以我們需要用到handler在進行更新介面的操作。1 宣告變數 private handler handler new handler privat...

進度條顯示

最近的專案需求中涉及到了顯示進度的圖示,因此就簡單實現了一下,拿出來獻醜了 方法實現很簡單,主要是使用了framelayout的特殊性來實現的疊加顯示的 有次需求的同學們可以參考一下呦3 成功的 失敗的 進行中的 初始化 param attrs private void initview attri...

Flash載入進度條

第一種 1 在場景圖層1,先選擇文字工具,把屬性改為 動態文字 然後在舞台畫出乙個文字框,在屬性裡,在 變數 欄裡填上 bfb 2 再新建乙個影片剪輯,選擇矩形工具,不要填充顏色,只留筆觸顏色,在舞台繪製乙個矩形。選中矩形複製,再建一新圖層2,貼上到當前位置,然後選擇圖層2的矩形,關掉比觸顏色,開啟...