您好,登錄后才能下訂單哦!
度量快速開發平臺中,網格部件使用非常多,一般情況下,比如數據在1萬以內的,都可以直接快速查詢出來,如果數據量很大,考慮到一次性打開可能有效率影響,因此可能有網格部件顯示數據的分頁需求。
雖然數據量大后分頁顯示效率提高,但是查看數據還是不太方便。如果確實要分頁,那么分頁功能如何在度量快速開發平臺中來實現呢?
對于mysql數據庫,分頁還很好實現,在sql中直接就提供了limit分頁的功能。度量快速開發平臺一般是sqlserver或者是oracle,我們同樣可以利用sql語句來實現分頁效果。
主要實現思路就是利用sql語句查詢不同數據,再界面上構建類似上一頁,下一頁,指定頁的數據,以下是實現步驟:
1、建立業務表
業務表建立的時候,就需要考慮分頁的功能,下面代碼示例對oracle與sqlserver通用:
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表示每一行數據的序號,rowscount表示該查詢的所有記錄。
兩個整數型的業務表變量 PAGE,ROW 分別表示頁數,每頁顯示條數。
2、建立窗體
分別拖入一個網格部件,一個下拉選擇(頁選擇),兩個按鈕(上頁,下頁)。
網格部件選擇好上面建立的業務表。
2.1)窗體加載事件代碼:
'定義每頁顯示條數
dim PAGE_OF_ROW = 19
'定義頁數,默認查詢第一頁
dim PAGE_NUM = 1
Call("刷新")
'------------------------配置頁選項功能開始----------------------------
'頁選項刷新標志(0不刷新,1刷新)
dim RefreshGlag=0
'總條數
dim allCount=網格部件1.GetFocusedRowValue("ROWSCOUNT")
dim ALL_PAGE=0
'因為cint四舍五入了,為了保證有效行數,加0.4999,這樣,小數點后有值的,就表示要多一頁。
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 &" 條數據,每頁 "&PAGE_OF_ROW&" 條。 "
'------------------------配置頁選項功能結束----------------------------
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)刷新 功能代碼:
'刷新數據
網格部件1.SetVaribleValue("PAGE",PAGE_NUM)
網格部件1.SetVaribleValue("ROW",PAGE_OF_ROW)
網格部件1.RefreshData()
3、效果:
分頁還有多種方式,其他的請google查詢sql分頁
原文地址:http://bbs.delit.cn/thread-979-1-1.html
轉載請注明出處:
撰寫人:度量科技http://www.delit.cn
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。