可以在dbgrid.drawcolumncell事件中处理 if dbgrid.datasource.dataset.fieldbyname('name').asstring='1' then dbgrid.Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, '好');
在上面的数据之前 DBGRID.DefaultDrawColumnCell(Rect, DataCol, Column, State); if dbgrid.datasource.dataset.fieldbyname('name').asstring='1' then dbgrid.Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, '好'); 另外,还可以用固定字段方法 在数据集,的评价字段的
用SQL语句实现 select case Field1 when '1' then '好' when '2' then '一般' when '3' then '差' else Field1 end as '评价' …… from yourTable其中Field1为你的'评价'字段名,yourTable为你的表名 …… 这样效率高些
在query对应的onGetText事件中处理 begin if query1.fieldbyname('评价').asstring='1' then begin text:='好' end; if query1.fieldbyname('评价').asstring='2' then begin text:='一般' end; if query1.fieldbyname('评价').asstring='3' then begin text:='差' end;
if dbgrid.datasource.dataset.fieldbyname('name').asstring='1' then
dbgrid.Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, '好');
DBGRID.DefaultDrawColumnCell(Rect, DataCol, Column, State);
if dbgrid.datasource.dataset.fieldbyname('name').asstring='1' then
dbgrid.Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, '好');
另外,还可以用固定字段方法
在数据集,的评价字段的
select
case Field1 when '1' then '好'
when '2' then '一般'
when '3' then '差'
else Field1
end
as '评价'
……
from yourTable其中Field1为你的'评价'字段名,yourTable为你的表名
…… 这样效率高些
在对应的DbGrid1.Columns[0].pickList中写入
好
一般
差
即可。
begin
if query1.fieldbyname('评价').asstring='1' then
begin
text:='好'
end;
if query1.fieldbyname('评价').asstring='2' then
begin
text:='一般'
end;
if query1.fieldbyname('评价').asstring='3' then
begin
text:='差'
end;
sousouwjh的方法,我找不到onGetText事件
select
case Field when '1' then '好'
when '2' then '一般'
when '3' then '差'
else Field
end
as '评价'
……
from Table其中Field为你的'评价'字段名,Table为你的表名
……