全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1620
推到 Plurk!
推到 Facebook!

Infopower中的wwdbrid如何用

答題得分者是:James
kaisheng
一般會員


發表:26
回覆:47
積分:14
註冊:2003-11-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-30 14:13:36 IP:210.64.xxx.xxx 未訂閱
我買了infopower, 但其附的書所寫的說明, 實在是太少了 是否有其它的參考書, 或是文章 kaisheng
------
Number One
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-30 14:17:29 IP:210.66.xxx.xxx 未訂閱
你可以參考『C:\Program Files\Woll2Woll\ip4000vcl7\demos\maindemo』下之Demo程式去學習! Ian
kaisheng
一般會員


發表:26
回覆:47
積分:14
註冊:2003-11-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-31 13:22:13 IP:210.64.xxx.xxx 未訂閱
引言: 我買了infopower, 但其附的書所寫的說明, 實在是太少了 是否有其它的參考書, 或是文章 kaisheng
謝謝您的回答!! 我大概DEMO了一下, 大致都有我要的說明 可是有一個功能找不到, 就是 能在wwdbgrid上按其title就能sort其欄位的record, 請問, 這個只要設屬性就好了, 還是要寫程式 新竹的小凱
------
Number One
James
高階會員


發表:10
回覆:290
積分:220
註冊:2002-07-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-12-31 13:26:02 IP:61.218.xxx.xxx 未訂閱
這個要寫程式, Grid 的 TitleButton 按下會觸發事件 ,你自己在去更改 Grid.datasource.dataset 的 Index 屬性就可以了
kaisheng
一般會員


發表:26
回覆:47
積分:14
註冊:2003-11-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-12-31 18:15:37 IP:210.64.xxx.xxx 未訂閱
引言: 這個要寫程式, Grid 的 TitleButton 按下會觸發事件 ,你自己在去更改 Grid.datasource.dataset 的 Index 屬性就可以了
Thank your answer!! 我找了一下,grid.datasource.dataset沒有index屬性 您指的屬性是什麼 ? wwdbgrid的title的欄位有好幾個, 請問用這個方法能讓按到不同的欄位也能sort 資料嗎? 新竹的小凱
------
Number One
James
高階會員


發表:10
回覆:290
積分:220
註冊:2002-07-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-12-31 22:04:52 IP:218.162.xxx.xxx 未訂閱
我指的是 Index 的那幾個 Property , 像是 IndexfieldNames
kaisheng
一般會員


發表:26
回覆:47
積分:14
註冊:2003-11-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-01-05 10:25:20 IP:210.64.xxx.xxx 未訂閱
引言: 我指的是 Index 的那幾個 Property , 像是 IndexfieldNames
james, 及版主您好: 您說在wwdbGrid的wwDBGrid1TitleButtonClick事件中, 更改wwGrid.datasource.dataset 的 IndexfieldNames屬性 要如何寫才能逹到"使用者一按title"就能sort資料呢? 新竹的小凱
------
Number One
James
高階會員


發表:10
回覆:290
積分:220
註冊:2002-07-25

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-01-05 12:02:46 IP:61.218.xxx.xxx 未訂閱
看來這個分數還真難賺...  :)    
  object wwDBGrid1: TwwDBGrid
    Left = 32
    Top = 72
    Width = 521
    Height = 313
    DataSource = DataSource1
    TitleButtons = True
    OnTitleButtonClick = wwDBGrid1TitleButtonClick
  end
  object DataSource1: TDataSource
    DataSet = ClientDataSet1
  end
  object ClientDataSet1: TClientDataSet
    Active = True
    ProviderName = 'DataSetProvider1'
  end
  object Table1: TTable
    DatabaseName = 'DBDEMOS'
    TableName = 'employee.db'
  end
  object DataSetProvider1: TDataSetProvider
    DataSet = Table1
    Constraints = True
  end
上面是一些dfm 的設定 ,於是你的程式碼很簡單 , 只要寫
procedure TForm1.wwDBGrid1TitleButtonClick(Sender: TObject;
  AFieldName: String);
begin
  ClientDataSet1.IndexFieldNames := AFieldName ;
end;
這是比較簡單的做法, 你可以自己再去變化做成可以遞增和遞減...
kaisheng
一般會員


發表:26
回覆:47
積分:14
註冊:2003-11-17

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-01-05 13:39:07 IP:210.64.xxx.xxx 未訂閱
引言: 看來這個分數還真難賺... :)
  object wwDBGrid1: TwwDBGrid
    Left = 32
    Top = 72
    Width = 521
    Height = 313
    DataSource = DataSource1
    TitleButtons = True
    OnTitleButtonClick = wwDBGrid1TitleButtonClick
  end
  object DataSource1: TDataSource
    DataSet = ClientDataSet1
  end
  object ClientDataSet1: TClientDataSet
    Active = True
    ProviderName = 'DataSetProvider1'
  end
  object Table1: TTable
    DatabaseName = 'DBDEMOS'
    TableName = 'employee.db'
  end
  object DataSetProvider1: TDataSetProvider
    DataSet = Table1
    Constraints = True
  end
上面是一些dfm 的設定 ,於是你的程式碼很簡單 , 只要寫
procedure TForm1.wwDBGrid1TitleButtonClick(Sender: TObject;
  AFieldName: String);
begin
  ClientDataSet1.IndexFieldNames := AFieldName ;
end;
這是比較簡單的做法, 你可以自己再去變化做成可以遞增和遞減...
James前輩, 這種作法使用者按每一個title都會sort資料嗎? 還有AFieldName 是代表什麼意思? 新竹的小凱
------
Number One
James
高階會員


發表:10
回覆:290
積分:220
註冊:2002-07-25

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-01-05 15:25:34 IP:61.218.xxx.xxx 未訂閱
你自己試試看囉...
kaisheng
一般會員


發表:26
回覆:47
積分:14
註冊:2003-11-17

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-01-05 17:59:11 IP:210.64.xxx.xxx 未訂閱
引言: 你自己試試看囉...
謝謝James前輩的幫助!! 新竹的小凱
------
Number One
kaisheng
一般會員


發表:26
回覆:47
積分:14
註冊:2003-11-17

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-01-06 14:31:44 IP:210.64.xxx.xxx 未訂閱
我改用ado元件來用在gridontitleclick的事件下  adoquery1.Sort :=wwdbgrid1.SelectedField.FieldName  + 'ASC'; 不過會出現"item cannot be found in the collection corresponding to th erequested name or ordinal"的訊息!!     新竹的小凱
------
Number One
kaisheng
一般會員


發表:26
回覆:47
積分:14
註冊:2003-11-17

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-01-06 16:14:30 IP:210.64.xxx.xxx 未訂閱
ASC字串前面要加空白, 就不會有這個問題了, 可是這樣還是不知sort其資料 新竹的小凱
------
Number One
kaisheng
一般會員


發表:26
回覆:47
積分:14
註冊:2003-11-17

發送簡訊給我
#14 引用回覆 回覆 發表時間:2004-01-07 09:07:07 IP:210.64.xxx.xxx 未訂閱
來自網路網友的解答, 其指令應為 adoquery1.Sort:=AFieldName ' ASC' ; 寫了這一行之後就能正常WORK了, 可是我想 讓使用者再按一下title時能變為DEC不知該如何做 新竹的小凱
------
Number One
James
高階會員


發表:10
回覆:290
積分:220
註冊:2002-07-25

發送簡訊給我
#15 引用回覆 回覆 發表時間:2004-01-07 09:26:26 IP:61.218.xxx.xxx 未訂閱
 
procedure TForm1.wwDBGrid1TitleButtonClick(Sender: TObject;
  AFieldName: String);
begin
  if adoquery1.Sort = AFieldName   ' ASC' then
    adoquery1.Sort = AFieldName   ' DESC' 
  else
    adoquery1.Sort = AFieldName   ' ASC' ;
end;
系統時間:2024-06-18 9:38:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!