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

用程式執行 Fields editor 的動作

尚未結案
cykuo
一般會員


發表:5
回覆:10
積分:3
註冊:2003-04-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-26 17:04:23 IP:211.21.xxx.xxx 未訂閱
請教諸位 DELPHI 提供 Fields editor 讓USER可以增加刪除欄位 可不可以 用程式去控制呢
cykuo
一般會員


發表:5
回覆:10
積分:3
註冊:2003-04-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-26 17:06:18 IP:211.21.xxx.xxx 未訂閱
引言: 請教諸位 DELPHI 提供 Fields editor 讓USER可以增加刪除欄位 可不可以 用程式去控制呢
補充說明 procedure TMainForm.qryPpctBeforeOpen(DataSet: TDataSet); var InvField : array [1..10] of TField; begin InvField[1]:=TIntegerField.Create(DataSet); with InvField[1] do begin Name:='InvAmount_1'; FieldKind:= fkCalculated; FieldName:='InvAmount_1'; Index:=0; end; end; 我的程式碼參考如上 請問觀念對嗎? 還有事件點對嗎?
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-26 18:22:38 IP:202.39.xxx.xxx 未訂閱
http://bdn.borland.com/article/0,1410,16467,00.html http://delphi.ktop.com.tw/topic.php?TOPIC_ID=25854 http://greatis.com/delphi/databases-adsdfield.html
procedure TForm1.Button1Click(Sender: TObject);
var
  Field: TField;
  i: Integer;
begin
  Table1.Active:=False;
  for i:=0 to Table1.FieldDefs.Count-1 do
    Field:=Table1.FieldDefs[i].CreateField(Table1);      Field:=TStringField.Create(Table1);
  with Field do
  begin
    FieldName:='New Field';
    Calculated:=True;
    DataSet:=Table1;
  end;
  Table1.Active:=True;
end;
發表人 - hagar 於 2004/04/26 18:23:28
cykuo
一般會員


發表:5
回覆:10
積分:3
註冊:2003-04-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-26 22:22:48 IP:210.202.xxx.xxx 未訂閱
看第一個迴圈 應該是加入已經存有的FIELD 可是我在測試時 使用BDE TABLE 必須先ACTIVE 這部分才會正常(有FIELD) 事先TABLE沒有ACTIVE Table1.FieldDefs.Count-1會=0    如果我用ADOquery SQL 是動態指定 不可能事先設為ACTIVE     請問我的測試有錯嗎 如果沒有 問題該如何解決呢    謝謝         
引言: http://bdn.borland.com/article/0,1410,16467,00.html http://delphi.ktop.com.tw/topic.php?TOPIC_ID=25854 http://greatis.com/delphi/databases-adsdfield.html
procedure TForm1.Button1Click(Sender: TObject);
var
  Field: TField;
  i: Integer;
begin
  Table1.Active:=False;
  for i:=0 to Table1.FieldDefs.Count-1 do
    Field:=Table1.FieldDefs[i].CreateField(Table1);      Field:=TStringField.Create(Table1);
  with Field do
  begin
    FieldName:='New Field';
    Calculated:=True;
    DataSet:=Table1;
  end;
  Table1.Active:=True;
end;
發表人 - hagar 於 2004/04/26 18:23:28
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-27 08:31:37 IP:202.39.xxx.xxx 未訂閱
先 Active 後得到 FieldDefs.Count 有什麼問題嗎? 或者您可以用另一個 TTable 或 TADOQuery (然後 TableName 或 SQL 相同) 用這 TTable/TADOQuery 來取得 FieldDefs.Count.
cykuo
一般會員


發表:5
回覆:10
積分:3
註冊:2003-04-03

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-27 08:40:25 IP:211.21.xxx.xxx 未訂閱
引言: 先 Active 後得到 FieldDefs.Count 有什麼問題嗎? 或者您可以用另一個 TTable 或 TADOQuery (然後 TableName 或 SQL 相同) 用這 TTable/TADOQuery 來取得 FieldDefs.Count.
先 Active 後得到 FieldDefs.Count 有什麼問題嗎? 欄位無法正確對應顯示資料 必須加入 FieldDefs.Update; 已經測試OK囉 謝謝
系統時間:2024-07-07 9:41:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!