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

如何讓 DBGrid 的Boolean欄位顯示 ' 是' 或 '否' ?

尚未結案
cancer
高階會員


發表:58
回覆:319
積分:190
註冊:2004-07-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-23 20:57:28 IP:210.201.xxx.xxx 未訂閱
名位大大,    如何把 DBGrid 的 Boolean 欄位以 是或否 的方式顯示 ? 在 Access 的一個資料表建立了一個 Boolean 欄位,雖然 Access 容許自定 Boolean 欄位的顯示方式,但我不知道怎麼設定,就算我會設定,這種設定 只有在使用 Access 看資料時有用。如果使用 Delphi 的 DBGrid 來展示這個 資料表裡面的 Boolean 欄位,所顯示的,還是 true/false,並非 是/否 。 DBGrid 的欄位有個設定可以讓 boolean 位產生一個下拉式選單,裡面的可以設定為是和否,但當我選擇 '是' 或者 '否'之後,只要讓資料集 Post,就馬上傳回錯誤說 並非資料表欄位合法的值 或 並非資料表欄位合法的值 要怎麼設定 DBGrid 欄位的顯示方式,才能使欄位顯示 '是' 而 Post 時會自動轉換為 true ? 謝謝各位
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-23 21:52:55 IP:220.132.xxx.xxx 未訂閱
參考 < href="http://forum.vclxx.org/topic.php?TOPIC_ID=786&FORUM_ID=5&CAT_ID=2&Topic_Title=dbgrid%AA%BA%B8%EA%AE%C6%C5%DC%C3C%A6%E2%3F%3F&Forum_Title=Database">http://forum.vclxx.org/topic.php?TOPIC_ID=786&FORUM_ID=5&CAT_ID=2&Topic_Title=dbgrid%AA%BA%B8%EA%AE%C6%C5%DC%C3C%A6%E2%3F%3F&Forum_Title=Database 努力會更接近成功
------
努力會更接近成功
cancer
高階會員


發表:58
回覆:319
積分:190
註冊:2004-07-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-23 23:02:20 IP:210.201.xxx.xxx 未訂閱
pceyes 大大, 謝謝您提供的連結,雖然沒有得到一模一樣的解決方法,但我卻得到大方向,我會朝 DBGrid 的 Event 著手,應該能夠解決。
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-08-24 09:06:46 IP:210.65.xxx.xxx 未訂閱
插一下花!也可以這樣做:    設定 TBooleanField 的 DisplayValues TBooleanField(ClientDataSet1.FieldByName('tf')).DisplayValues := '是;否' http://delphi.ktop.com.tw/topic.php?topic_id=54077 或是在該欄位的 OnGetText 中指定 Text http://delphi.ktop.com.tw/topic.php?topic_id=32981 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
cxg
中階會員


發表:116
回覆:192
積分:76
註冊:2004-02-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-08-24 09:52:21 IP:222.35.xxx.xxx 未訂閱
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState); VAR S : STRING; begin with (sender as tdbgrid) do if field.DataType=ftBoolean then BEGIN canvas.FillRect( rect); IF FIELD.ASBOOLEAN THEN S := '是' ELSE S := '否'; CANVAS.TextRect( RECT, RECT.Left, RECT.Top, S); end; end;
cancer
高階會員


發表:58
回覆:319
積分:190
註冊:2004-07-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-08-24 12:21:48 IP:210.201.xxx.xxx 未訂閱
Fishman 大大, 還是你提供的第一個方法最簡單實用, 打開資料集的欄位編輯器,選取該欄位, 設定它的 DisplayValues,直接了當又不用寫事件程序。 謝了
系統時間:2024-06-25 13:43:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!