如何让dbgrid 表格中显示的是字符 而数据表(table)对应的字段是数字 ( 积分: 30 )

  • 主题发起人 主题发起人 xiaoma224
  • 开始时间 开始时间
X

xiaoma224

Unregistered / Unconfirmed
GUEST, unregistred user!
简单的说举例就是 界面的表格中(dbgrid)中显示的性别是字符男或女 而实际数据库表中入的是1和0 修改的时候用下拉框规定几个选项(如男,女)供用用户选择输入! 当用户选"男"时候入库的数据是整型1. 对原来表格中性别字段 在表格(dbgrid)中显示的也是"男","女" 字符 而不是直接显示字段实际值1,0
 
1 在sql中搞定:
select case Field when '0'then '男' when '1'then'女';
2 在界面中搞定
if adoQuery1.fieldbyName('sex').asInteger = 1 then
combobox1.items[0].text:= '男';
combobox1.items[1].text:= '女';
。。。
 
用一个计算字段,非常方便。这样的问题一般都采用计算字段解决。如果是SQLSERVER或者ORACLE这样的数据库,用一个SQL解决更方便,当然要用到数据库中的函数。
 
自由灵活,所见即所得的表格组件,开发环境下设计表格内容,独有的单据和Excel两种界面风格,可设计出各种类型的界面,配合强劲的打印功能,轻松解决自由界面和报表难题。其显著特性包括:
. 提供了单据, Excel ,Grid 三种界面风格。
. 开发环境下设计表格,所见即所得。
. 支持数据库和分组。
. 既可以作为普通表格使用,又可以作为数据感知组件使用,或者两者同时使用。
. 独特的双数据源连接,轻松实现单记录布局和主从表连接。
. 除了通过数据集本身的方法来访问数据库的记录之外,还可以通过读取单元格的Text属性来实现,这样就不 必在数据集间来回移动记录。
. 支持unicode文本。
. 提供了列排序,移动行列,隐藏行列,增删行列等功能。
. 提供了 Excel 样式的过滤功能。
. 方便的查找对话框。
. 提供了单元格合并,单元格命名,只读单元格,锁定单元格等功能。
. 提供了列对象,用于控制整列单元格。
. 支持虚表,公式(包括自定义公式), RTF 格式文本,Ole 对象和图表。
. 提供了按钮、下拉框、复选框、单选钮、日期、超链接、数值类等多种输入方式。
. 支持整形、正整形、负整形、浮点数、正浮点数、负浮点数等输入方式。可自动处理千分位,可设置小数位 数。
. 九种文本和图形对齐方式,还可通过单元格边距控制输出位置。
. 导入/导出 Excel 文件,相互粘贴数据。
. 提供了自动调整行高,垂直文本输出功能。
. 可以设置单元格掩码,附有掩码编辑器。
. 设置单元格的 PasswordChar。
. 单元格内容字符数限制。
. 单元格支持图形,并且可以拉伸,层叠图形。
. 可以显示/隐藏单元格的边框、可以设置边框的类型、大小、颜色。
. 支持单元格斜线。
. 3D 外观的单元格。
. 设置单元格的光标和提示。
. 支持自绘画单元格。
. 设置固定行和列。
. 保存到文件和流。
. 提供了复制/粘贴区域功能。
. VCL 版本可以插入其它可视 VCL 组件。

http://www.anylib.com
 
我是这样写的!!

procedure TF_User.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if TDBGrid(Sender).DataSource.DataSet.FieldByName('sex').AsInteger=0 then
TDBGrid(Sender).Canvas.TextRect(Rect,Rect.Left+10,Rect.Top+2,'男')
else
TDBGrid(Sender).Canvas.TextRect(Rect,Rect.Left+10,Rect.Top+2,'女');
end;
 
DrawColumnCell这种方式不太好,会非常耗资源,你想一下是不是?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
844
DelphiTeacher的专栏
D
D
回复
0
查看
854
DelphiTeacher的专栏
D
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部