線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3741
推到 Plurk!
推到 Facebook!

如何使Dbgrid的記錄分頁顯示?

缺席
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-26 18:54:31 IP:61.134.xxx.xxx 未訂閱
各位先進好! 我用ADOquery將查詢的結果在Dbgrid顯示(將veritical的ScrollBar隱藏),不知道能否使用使用ADO的RecordSet分頁瀏覽的功能將查詢的結果在Dbgrid分頁顯示. 謝謝! ... variant1:variant variant2:variant ... variant1:=CreateOLEObject('ADODB.Connection'); variant1.Open('Provider=Microsoft.Jet.OLEDB.4.0;.....'); variant2:=CreateOLEObject('ADODB.RecordSet'); variant2.Open('RECORDS',variant1,3,1); variant2.PageSize:=10;//每頁顯示記錄個數 ....
pgdennis
資深會員


發表:41
回覆:526
積分:443
註冊:2002-05-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-27 10:30:58 IP:218.163.xxx.xxx 未訂閱
目前測試的結果是只有在formcreate event中放入以下的code有用外,放在其他地方均無效??,你可以自行試試看,還試不出像 class="code"> procedure TForm1.FormCreate(Sender: TObject); begin adoquery1.Open; adoquery1.Recordset.PageSize:=5; adoquery1.Recordset.AbsolutePage:=3; end; 永遠追不上技術更新的速度
------
星期一,二...無窮迴圈@@
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-28 16:10:39 IP:61.134.xxx.xxx 未訂閱
首先感謝前輩的熱心回應!  其次將這兩天查找資料的結果如下:         目前還沒有找到在DBgrid分頁顯示的方法,但是找到一個在StringGrid分頁顯示的方法.(完整的內容可以參閱李維大師的delphi5.x資料庫三部曲之專業程式設計篇中的fTesTMain.pas範例,我稍做改變):    請各位先進指點,看是否能將DBgrid也可以分頁顯示,謝謝!     在Uses中加入: ADOInt 
//首先設定PageSize,取出PageCount
procedure TForm1.Button1Click(Sender: TObject);
begin
  ADoquery1.Recordset.PageSize :=spinedit1.Value;
  Edit1.Text := IntToStr(ADoquery1.Recordset.PageCount);
  ShowData(spinedit2.Value);
end; 
 
//然後將AbsolutePage的資料乾坤大挪移到StringGrid1中 
procedure TForm1.ShowData(page:integer);
var
  iRow, iCol, iCount : Integer;
  rs : ADOInt.Recordset;
begin
  ADoquery1.Recordset.AbsolutePage:=Page;
  Currpage:=page;        iRow := 0;
  iCol := 1;
  stringgrid1.Cells[iCol, iRow] := 'FixedCol1';
  Inc(iCol);
  stringgrid1.Cells[iCol, iRow] := 'FixedCol2';
  Inc(iRow);
  Dec(iCol);      rs := adoquery1.Recordset;
  for iCount := 1 to SpinEdit1.Value do 
  begin
    stringgrid1.Cells[iCol, iRow] := rs.Fields.Get_Item('FieldName1').Value;
    Inc(iCol);
    stringgrid1.Cells[iCol, iRow] := rs.Fields.Get_Item('FieldName1').Value;
    Inc(iRow);
    Dec(iCol);
    rs.MoveNext;
  end;
   
//上一頁 
procedure TForm1.Button2Click(Sender: TObject);
begin
  If (CurrPage)<>1 then
   ShowData(CurrPage-1);
end;    //下一頁
procedure TForm1.Button3Click(Sender: TObject);
begin
  If CurrPage<>ADoquery1.Recordset.PageCount then
    ShowData(CurrPage 1);
end;
Ps: 折騰半天,無意間想起去翻翻李維大師的這本書,發現大師早就談過這個問題.還是那幾段話,原來看上去感覺幹巴巴的,現在覺得字字珠璣,句句都鞭辟入理.感覺是既興奮又懊悔. 發表人 - mathewzhao 於 2003/08/28 16:15:17 發表人 - mathewzhao 於 2003/08/28 18:20:51
reebokmonkey
一般會員


發表:44
回覆:73
積分:23
註冊:2003-08-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-28 16:22:56 IP:61.149.xxx.xxx 未訂閱
不行!DBGrid1没有Cells这个方法
系統時間:2024-11-25 16:51:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!