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

請問DELPHI有沒有方法可以用關鍵字去判斷需要的欄位~

答題得分者是:pedro
l730626
一般會員


發表:22
回覆:21
積分:8
註冊:2009-03-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-05-19 23:57:49 IP:140.127.xxx.xxx 訂閱
如題~
我想請問各位高手~
DELPHI有沒有方法可以用關鍵字去判斷需要的欄位~
因為我的資料表裡有很多欄位
例如~
總和9602960897019702970398019805

我希望DBGRID只顯示出開頭"98"的欄位和"總合"欄位~
可是其他的欄位在資料庫裡我仍然還要保留不要刪掉~
只是在DBGRID不要顯現出來~
然後在總合欄位裡計算出所有開頭有"98"欄位的總和~
好像有點複雜~~麻煩高手指點我~
不需要寫出程式碼~
只需要跟我說方法和需要用到的指令~
其他的我自己可以慢慢摸
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-05-20 00:12:46 IP:61.224.xxx.xxx 未訂閱
DBGrid有個Column屬性,在這屬性裡是要顯示的欄位,可以在運行時去增加或移除欄位
總合的欄位是一個計算欄位,在DBGrid裡對的DataSet裡建立虛欄位

===================引 用 l730626 文 章===================
我希望DBGRID只顯示出開頭"98"的欄位和"總合"欄位~
可是其他的欄位在資料庫裡我仍然還要保留不要刪掉~
只是在DBGRID不要顯現出來~
然後在總合欄位裡計算出所有開頭有"98"欄位的總和~
只需要跟我說方法和需要用到的指令~
其他的我自己可以慢慢摸
l730626
一般會員


發表:22
回覆:21
積分:8
註冊:2009-03-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-05-20 00:56:20 IP:140.127.xxx.xxx 訂閱
Column屬性我知道!~只是我想知道欄位名稱可不可以用關鍵字的方式加進去
通常關鍵字是找尋欄位底下的資料錄~可是我想用關鍵字的方式把符合條件的欄位加進去DBGRID裡@@
請問DELPHI可以做到這樣嗎??~如果可以~可不可以教我!!!!!謝謝你們
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-05-20 08:34:11 IP:122.116.xxx.xxx 未訂閱
您好,

在程式中用字串操作的語法去組成
連到 dbgrid 的 dataset (假設為query) 的
query1.sql.text



design time : 雙擊 dbgrid, 加入所要的欄位



afield := dbgrid1.columns.add 動態加入欄位
然後用
afield.fieldname := ...
去設定您所需的欄位, 可依需要用關鍵字去組成欄位名
參考
http://delphi.ktop.com.tw/board.php?cid=30&fid=71&tid=93475
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
編輯記錄
st33chen 重新編輯於 2009-05-20 08:38:54, 註解 無‧
st33chen 重新編輯於 2009-05-20 08:43:21, 註解 無‧
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-05-20 08:55:47 IP:60.248.xxx.xxx 未訂閱
st33chen兄已經講出做法

我就寫一段讓您參考,您可根據實際需要再微調
DataSet.OnCalcFields事件是去計算加總欄位

[code delphi]
uses StrUtils;
procedure TForm1.FormCreate(Sender: TObject);
var
i:Integer;
col:Tcolumn;
begin
DBGrid1.Columns.Clear;
for i :=0 to ADOTable1.FieldCount-1 do
begin
if LeftStr(ADOTable1.Fields[i].FieldName,2)='98' then
begin
col:=DBGrid1.Columns.Add;
col.Field:=ADOTable1.Fields[i];
end;
end;
end;

procedure TForm1.ADOTable1CalcFields(DataSet: TDataSet);
var
i,sum:Integer;
begin
sum:=0;
for i :=0 to ADOTable1.FieldCount-1 do
begin
if LeftStr(ADOTable1.Fields[i].FieldName,2)='98' then
begin
Inc(sum,ADOTable1.Fields[i].AsInteger);
end;
end;
//ADOTable1SubTotal.Value:=Sum;
end;
[/code]

===================引 用 l730626 文 章===================
Column屬性我知道!~只是我想知道欄位名稱可不可以用關鍵字的方式加進去
通常關鍵字是找尋欄位底下的資料錄~可是我想用關鍵字的方式把符合條件的欄位加進去DBGRID裡@@
請問DELPHI可以做到這樣嗎??~如果可以~可不可以教我!!!!!謝謝你們
編輯記錄
pedro 重新編輯於 2009-05-20 09:00:06, 註解 無‧
l730626
一般會員


發表:22
回覆:21
積分:8
註冊:2009-03-29

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-05-21 12:28:32 IP:140.127.xxx.xxx 訂閱
謝謝你們~你們都說得很清楚~
我也已經學會了~~非常感謝你們的熱心指導
系統時間:2024-04-26 2:10:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!