1.用SQL处理 SELECT CASE WHEN TRUE THEN '真的' else '假的' end FROM TABLE1 2.在Query的GetText事件中处理
Query有gettxt事件吗? 楼上的代码运行出错。
1.双击Query->Add all Fields->选择布尔型字段->按F11->事件栏中即可找到GetText事件 2.对不起,我不知道你的字段或表,所以给出的仅仅是示意代码
直接在 dbgrid里的 DBGrdResultDrawColumnCell事件里这样 var ShowStr : String ; begin inherited; if UpperCase(Column.FieldName) = UpperCase(你需要修改的字段名) then begin if DBGrdResult.DataSource.DataSet.FieldByName(Column.FieldName).ASInteger= 0 then ShowStr := '真的' else if DBGrdResult.DataSource.DataSet.FieldByName(Column.FieldName).ASInteger= 1 then ShowStr := '假的'; DBGrdResult.Canvas.TextRect(Rect, Rect.Left + 3, Rect.Top + 3, ShowStr); end;
end;
DECLARE @T TABLE(ID VARCHAR(20)) INSERT @T SELECT 'TRUE' SELECT CASE WHEN ID='TRUE' THEN '真的' ELSE '假的' END FROM @T
SELECT CASE WHEN TRUE THEN '真的' else '假的' end FROM TABLE1
2.在Query的GetText事件中处理
楼上的代码运行出错。
2.对不起,我不知道你的字段或表,所以给出的仅仅是示意代码
var
ShowStr : String ;
begin
inherited;
if UpperCase(Column.FieldName) = UpperCase(你需要修改的字段名) then begin
if DBGrdResult.DataSource.DataSet.FieldByName(Column.FieldName).ASInteger= 0 then ShowStr := '真的'
else if DBGrdResult.DataSource.DataSet.FieldByName(Column.FieldName).ASInteger= 1 then ShowStr := '假的';
DBGrdResult.Canvas.TextRect(Rect, Rect.Left + 3, Rect.Top + 3, ShowStr);
end;
end;
DECLARE @T TABLE(ID VARCHAR(20))
INSERT @T SELECT 'TRUE'
SELECT CASE WHEN ID='TRUE' THEN '真的' ELSE '假的' END FROM @T