度量快速開發(fā)平臺中,網(wǎng)格部件使用非常多,一般情況下,比如數(shù)據(jù)在1萬以內(nèi)的,都可以直接快速查詢出來,如果數(shù)據(jù)量很大,考慮到一次性打開可能有效率影響,因此可能有網(wǎng)格部件顯示數(shù)據(jù)的分頁需求。
雖然數(shù)據(jù)量大后分頁顯示效率提高,但是查看數(shù)據(jù)還是不太方便。如果確實要分頁,那么分頁功能如何在度量快速開發(fā)平臺中來實現(xiàn)呢?
對于MySQL數(shù)據(jù)庫,分頁還很好實現(xiàn),在sql中直接就提供了limit分頁的功能。度量快速開發(fā)平臺一般是sqlserver或者是oracle,我們同樣可以利用sql語句來實現(xiàn)分頁效果。
主要實現(xiàn)思路就是利用sql語句查詢不同數(shù)據(jù),再界面上構(gòu)建類似上一頁,下一頁,指定頁的數(shù)據(jù),以下是實現(xiàn)步驟:
1、建立業(yè)務表
業(yè)務表建立的時候,就需要考慮分頁的功能,下面代碼示例對oracle與sqlserver通用:
瑪曲ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
select * from
(
select
ROW_NUMBER() over(order by id ) as rownum,
COUNT(*) over() rowscount,
ID,TITLE,HEIGHT , WIDTH, CREATE_TIME, CREATE_USER from form_list
) t
where rownum>= ([:PAGE] -1) * [:ROW] +1 and rownum< [:PAGE] * [:ROW]+1
說明:
rownum表示每一行數(shù)據(jù)的序號,rowscount表示該查詢的所有記錄。
兩個整數(shù)型的業(yè)務表變量 PAGE,ROW 分別表示頁數(shù),每頁顯示條數(shù)。
2、建立窗體
分別拖入一個網(wǎng)格部件,一個下拉選擇(頁選擇),兩個按鈕(上頁,下頁)。
網(wǎng)格部件選擇好上面建立的業(yè)務表。
2.1)窗體加載事件代碼:
'定義每頁顯示條數(shù)
dim PAGE_OF_ROW = 19
'定義頁數(shù),默認查詢第一頁
dim PAGE_NUM = 1
Call("刷新")
'------------------------配置頁選項功能開始----------------------------
'頁選項刷新標志(0不刷新,1刷新)
dim RefreshGlag=0
'總條數(shù)
dim allCount=網(wǎng)格部件1.GetFocusedRowValue("ROWSCOUNT")
dim ALL_PAGE=0
'因為cint四舍五入了,為了保證有效行數(shù),加0.4999,這樣,小數(shù)點后有值的,就表示要多一頁。
ALL_PAGE=cint(allCount/PAGE_OF_ROW+0.4999999)
dim stringset=""
for iLoop=1 to ALL_PAGE
stringset=stringset+cstr(iLoop)+","
next
if len(stringset)>0 then
stringset=left(stringset,len(stringset)-1)
頁選項.SetItems(stringset,false)
頁選項.Value=PAGE_NUM
else
stringset="1"
頁選項.SetItems(stringset,false)
頁選項.Value=PAGE_NUM
end if
RefreshGlag=1
文本標簽1.Text = "共計 "&allCount &" 條數(shù)據(jù),每頁 "&PAGE_OF_ROW&" 條。 "
'------------------------配置頁選項功能結(jié)束----------------------------
2.2)頁選項與上頁,下頁代碼:
'頁選項 的 值變化事件 事件代碼:
if RefreshGlag=1 then
PAGE_NUM = 頁選項.Value
Call("刷新")
end if
'上頁 的 單擊事件 事件代碼:
if cint(PAGE_NUM) > 1 then
PAGE_NUM = cint(PAGE_NUM) - 1
頁選項.Value= PAGE_NUM
end if
'下頁 的 單擊事件 事件代碼:
if cint(PAGE_NUM) < ALL_PAGE then
PAGE_NUM = cint(PAGE_NUM) + 1
頁選項.Value= PAGE_NUM
end if
2.3)刷新 功能代碼:
'刷新數(shù)據(jù)
網(wǎng)格部件1.SetVaribleValue("PAGE",PAGE_NUM)
網(wǎng)格部件1.SetVaribleValue("ROW",PAGE_OF_ROW)
網(wǎng)格部件1.RefreshData()
3、效果:
分頁還有多種方式,其他的請google查詢sql分頁
原文地址:http://bbs.delit.cn/thread-979-1-1.html
轉(zhuǎn)載請注明出處:
撰寫人:度量科技http://www.delit.cn