在DBGrid中所撈取的資料是否可以改變自己想要的資料 |
尚未結案
|
MidasFan
一般會員 發表:41 回覆:22 積分:12 註冊:2004-06-03 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ DBGrid元件的作用僅在于顯示資料集元件擷取到的資料﹐相關的處理還是要針對資料集元件﹒
例﹕在DataSet元件的AfterOpen事件中﹕
方法一(如ADOTable1)﹕
begin ADOTable1.First; While Not ADOTable1.Eof do begin if ADOTable1.FieldByName('店名').AsString := 'cd' then begin ADOTable1.Edit; ADOTable1.FieldByName('店名').AsString := '北部'; end else if ADOTable1.FieldByName('店名').AsString := 'ef' then begin ADOTable1.Edit; ADOTable1.FieldByName('店名').AsString := '南部'; end; ADOTable1.Post; ADOTable1.Next; end; ADOTable1.Close; ADOTable1.Open; end;方法二(如ADOQuery1)﹕ begin ADOQuery1.Close; ADOQuery1.SQL.Add('Update 資料表 Set 店名='北部' Where 店名='cd'); ADOQuery1.ExecSQL; ADOQuery1.Close; ADOQuery1.SQL.Add('Update 資料表 Set 店名='南部' Where 店名='ef'); ADOQuery1.ExecSQL; ADOQuery1.Close; ADOQuery1.Open; end;========================= 大病初愈﹐休養調整中... ========================= 發表人 - cashxin2002 於 2004/10/15 12:47:11
------
忻晟 |
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
cashxin2002 大大!是使用修改資料的方式。 不使用到修改資料。
可以在 DBGRID 的 ONDrawColumnCel 直接替代原來顯示文字 procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
CellStr :String;
begin
if SameText(Column.FieldName,'店 名') then
begin
CellStr := '';
if Column.Field.asString='CD' then CellStr := '北部'
else if Column.Field.asString='EF' then CellStr := '南部'; if CellStr<>'' then
begin
DBGrid1.Canvas.TextRect(Rect,Rect.Left 2,Rect.TOP 2,CellStr);
end;
end;
end;
|
kadee
高階會員 發表:11 回覆:141 積分:165 註冊:2002-03-20 發送簡訊給我 |
我提供另一個作法,寫在該欄位的ongettext procedure TFINLotEdit.table1field1GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
if table1field1.value = 'CC' then
text := '南部';
if table1field1.value = 'DD' then
text := '北部'; end; Kadee_BigRed
------
Kadee/BigRed Ent. www.tw165.com |
fangwy
中階會員 發表:99 回覆:139 積分:62 註冊:2003-09-10 發送簡訊給我 |
看了两遍,还是不很明白MidasFan的目的.说一种做法,看看是不是你要的.
在你的Table或Query中New一个Calculated Field,如命名为aaa,
在OnCalcFields中加入:
if FieldByName('店名').AsString = 'cd' then
FieldByName('aaa').AsString = '北部'
else if FieldByName('店名').AsString = 'ef' then
FieldByName('aaa').AsString = '南部';
然后在DBGrid中添加新字段aaa,不添加字段'店名',这样在DBGrid中看到的就是
'南部','北部',而不是'cd','ef'. 不过,如果还想编辑这个栏位会麻烦点.
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |