在delphi中,数据库中的数据状态为数字,如何在查询时grid控件动态显示为中文?

2025-05-14 08:43:48
推荐回答(4个)
回答1:

不知你具体使用哪个Grid控件,不好说。Delphi自带的StringGrid和DBGrid是定义CustomDrawCell事件,在事件中判断是否任务状态列。是,则用canvas.DrawTextRect函数将转换后的中文画上去;否,则调用DefaultDrawCell

回答2:

你可以建一个两个字段的任务状态表
把0:新增,1:开始,2:完成,3:未完成存在里面
然后在dbgrid的dataset中新增一个lookup字段,指向任务状态表,然后dbgrid中删掉原来的数字字段,增加状态中文显示字段就可以了。这样以后任务状态表变化了,代码也不用维护。

回答3:

你可以在查询的时候,调整数据库的查询语句,使记录集返回的字段和你要求的一致即可。
不知道你的查询语句是什么样的结构,你可以参考如下写法。

select name from TWork as t,
( select '0' as id,'新增' as name
union select '1' ,'开始'
union select '2' ,'完成'
union select '3' ,'未完成'
) as p
where t.state=p.id ;

*TWork是你的表名称
*name 是要在Dbgrid中要显示的字段名要设置的

回答4:

最简单的方法是在sql语句中做判断,如case col1 when 0 then '新增' when 1 then ‘开始' when 2 then '完成' when 3 then ‘未完成' end,当然方法有很多,看你怎么用