DBGrid 显示 字段 问题 (解决后给100分)
各位高人:
我的项目中有大量的字段是数据库定义的 比如:
'0' : 未处理;
'1' : 确认成功;
'2' : 确认失败;
'5' : 逐笔否决;
'8':临时导入
(还有很多其他的,都保存在数据字典表中)
数据库里面保存的是数字 ,显示的时候需要显示成对应的中午意义,查入得时候又要变成对应的数字。
现在问题分解成两个问题 1. DBGrid怎么显示成对应的中文 2.怎么查入时候变成对应的数字。
希望能有合理的解决办法。
解决一个也给分!
谢谢!
------最佳解决方法--------------------
Delphi(Pascal) code
procedure TForm1.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
var
showStr : String;
begin
if Column.Title.Column.FieldName='OutTypeText' then
begin
case DBGridEh1.DataSource.DataSet.FieldByName('OutTypeText').AsInteger of
0 : ShowStr:='未处理';
1 : ShowStr:='确认成功';
2 : ShowStr:='确认失败';
5 : ShowStr:='逐笔否决';
8 : ShowStr:='临时导入';
else
ShowStr:='';
end;
DBGridEh1.Canvas.TextRect(Rect,Rect.Left+2,Rect.Top+2,ShowStr);
end;
end;
------最佳解决方法--------------------
SELECT
caption= CASE WHEN c_custtype IS NOT NULL THEN (SELECT c_caption FROM tdictionary WHERE L_keyno = 1001 AND c_keyvalue = c_custtype )
END
FROM vaccoinfo