delphi中怎么设置dbgrid中显示数据的格式?

lm溪 2013-08-14 10:36:24
就是怎么绑定dbgrid与数据库,使数据库中的状态标志在dbgrid中显示的是具体状态,如要查询的数据库中的表格的一列中表示状态,用数字表示的,0,1分别表示不同状态,0-没用完,1-已用完,怎么使查询后显示在dbgrid中的这一列是具体状态:没用完、已用完,而不是数字。谢谢大虾们!
...全文
478 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm溪 2013-08-15
  • 打赏
  • 举报
回复
引用 12 楼 chu_czx444 的回复:
[quote=引用 11 楼 u011689987 的回复:] [quote=引用 10 楼 chu_czx444 的回复:] 第一种:sql语句用 select case 某列 when 0 then '没用完' else 已用完 end from xxx 第二种:TAdoquery OnCalcFields事件中设置列 还有...
能不能介绍下再TAdoquery OnCalcFields事件中怎么设置列?能给点代码提示吗?[/quote] if adoquery1XXX.Value = 0 then adoquery1x.value = '没用完' else adoquery1x.value = '已用完'; x、XXX需在adoquery1组件中添加。[/quote]解决了,谢谢
chu_czx444 2013-08-15
  • 打赏
  • 举报
回复
引用 11 楼 u011689987 的回复:
[quote=引用 10 楼 chu_czx444 的回复:] 第一种:sql语句用 select case 某列 when 0 then '没用完' else 已用完 end from xxx 第二种:TAdoquery OnCalcFields事件中设置列 还有...
能不能介绍下再TAdoquery OnCalcFields事件中怎么设置列?能给点代码提示吗?[/quote] if adoquery1XXX.Value = 0 then adoquery1x.value = '没用完' else adoquery1x.value = '已用完'; x、XXX需在adoquery1组件中添加。
RayYan 2013-08-14
  • 打赏
  • 举报
回复
也可以在SQL语句中实现。不用delphi代码来判断。
工程菜鸟 2013-08-14
  • 打赏
  • 举报
回复
二楼三楼正解,读取数据库中的字段,判断=0,dbgrid写入'未用完',if =1写入'已用完'
  • 打赏
  • 举报
回复
可以在绑定的clientdataset中设定
lm溪 2013-08-14
  • 打赏
  • 举报
回复
又见月经贴。最简单的办法,就是在数据表中相关字段的OnGetText中写代码如下: procedure TForm1.ClientDataSet1dfdfdGetText(Sender: TField; var Text: string; DisplayText: Boolean); begin if Sender.AsInteger = 0 then Text := '没用完' else if Sender.AsInteger = 1 then Text := '已用完' else Text := '其他'; end; 我用的是ADOQuery和Dbgrid,上面的ongettext事件在哪?我是菜鸟,谢谢啊
董董 2013-08-14
  • 打赏
  • 举报
回复
又见月经贴。最简单的办法,就是在数据表中相关字段的OnGetText中写代码如下: procedure TForm1.ClientDataSet1dfdfdGetText(Sender: TField; var Text: string; DisplayText: Boolean); begin if Sender.AsInteger = 0 then Text := '没用完' else if Sender.AsInteger = 1 then Text := '已用完' else Text := '其他'; end;
feiba7288 2013-08-14
  • 打赏
  • 举报
回复
在SQL中修改,如果你用的ORACLE,可以用DECODE函数
lm溪 2013-08-14
  • 打赏
  • 举报
回复
引用 10 楼 chu_czx444 的回复:
第一种:sql语句用 select case 某列 when 0 then '没用完' else 已用完 end from xxx 第二种:TAdoquery OnCalcFields事件中设置列 还有...
能不能介绍下再TAdoquery OnCalcFields事件中怎么设置列?能给点代码提示吗?
chu_czx444 2013-08-14
  • 打赏
  • 举报
回复
第一种:sql语句用 select case 某列 when 0 then '没用完' else 已用完 end from xxx 第二种:TAdoquery OnCalcFields事件中设置列 还有...
lm溪 2013-08-14
  • 打赏
  • 举报
回复
引用 8 楼 ddqqyy 的回复:
在ClientDataSet中,可以导入数据库表的字段信息,OnGetText是某个字段对象上的事件,不是ClientDataSet的。
clientdataset需要和什么控件搭配用吗?比如ADOquery、datasourse、dbgrid?或者说clientdataset用的时候要怎么连接?
董董 2013-08-14
  • 打赏
  • 举报
回复
在ClientDataSet中,可以导入数据库表的字段信息,OnGetText是某个字段对象上的事件,不是ClientDataSet的。
lm溪 2013-08-14
  • 打赏
  • 举报
回复
引用 2 楼 ddqqyy 的回复:
又见月经贴。最简单的办法,就是在数据表中相关字段的OnGetText中写代码如下: procedure TForm1.ClientDataSet1dfdfdGetText(Sender: TField; var Text: string; DisplayText: Boolean); begin if Sender.AsInteger = 0 then Text := '没用完' else if Sender.AsInteger = 1 then Text := '已用完' else Text := '其他'; end;
这个个gettext在哪,ClientDataSet中没有gettext事件啊

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧