DBGrid來顯示資料時,如可以看到的是對應之實際內容 |
尚未結案
|
Paicaso
中階會員 發表:140 回覆:124 積分:52 註冊:2002-09-04 發送簡訊給我 |
資料料表中常代碼的方式來表示,到顯示的時再以實際的內容呈現
如稅別的表示方式
1.外加 2.內含 3.免稅 4.零稅
(1)於使用DBGrid來顯示資料時,如可以看到的是對應之實際內容,如"外加",
而不是代碼...
procedure Trate.DBGridDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
If QUERY.FieldByName('e_Inx').AsString = '1' then
DBGrid.Columns[2].FieldName:='外加' ;
DBGrid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
以上是否哪裡有誤? (2)又如代碼對應之內容為另一資料表,又該如何 是否將其改為入下
R_Type := QUERY.FieldByName('e_Inx').AsString; DBGrid.Columns[2].FieldName:=R_Type;
|
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
(1):
我的做法提供給你做參考
打開欄位編輯器 選取稅別所代表的欄位
在它的 OnGetText 事件寫判斷即可
if //--稅別是 1 then text := '外加' else if //--稅別是 2 then text := '內含' else if //--稅別是 3 then text := '免稅' else if //--稅別是 4 then text := '零稅';(2) 如法炮製 天行健 君子當自強不息~~@.@
------
天行健 君子當自強不息~~@.@ |
FrederickPau
資深會員 發表:4 回覆:161 積分:268 註冊:2002-11-04 發送簡訊給我 |
(1) 我的做法是在 Query 裡加入一個 Calculated field (比如叫 s_Inx) 在 Query 的 OnCalcFields 的 Event 裡加 If QUERY.FieldByName('e_Inx').AsString = '1' then
QUERY.FieldByName('s_Inx').AsString := '外加'
else If QUERY.FieldByName('e_Inx').AsString = '2' then
QUERY.FieldByName('s_Inx').AsString := '內含'
else If QUERY.FieldByName('e_Inx').AsString = '3' then
QUERY.FieldByName('s_Inx').AsString := '免稅'
else If QUERY.FieldByName('e_Inx').AsString = '4' then
QUERY.FieldByName('s_Inx').AsString := '零稅'; 你可以將 e_Inx Invisible, s_Inx 設為 Visible, 就可以顯示了 (2) 我會用 SQL command Join 的方式 (如果兩個 Table 之間有對應的欄位的話)
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |