我以前是用PB的,这个问题在PB当中非常简单。不过,在Delphi当中我没法子实现这一点。由于有很多数据库字段的值只有几种可能,但要显示的值却非常的长,如果不用这种方法,怕数据冗余实现不必要的扩大。
各位大虾,快帮帮小弟。实在非常的急。
各位大虾,快帮帮小弟。实在非常的急。
解决方案 »
- 请问在哪里能下载到TXPMenu
- PrintDBGridEh打印DBGridEh第一列的“总计”怎么为0啊?!解决问题后独立开帖散分啊……
- 请高手指点一下,怎样从DLL中返回string型的二维数组
- 各位大侠帮帮小弟,这样的动态库函数如何调用(C语言写的),在线等!!!!!!!!!!!!
- 为什么用QuickReport打出来的东西是歪的?(在线)急!!
- 请问那里可以得到ExpressInspector Suite 阿?
- 高级问题:delphi封面那位女神叫什么名字?
- 请问怎样判断ftp服务器接收到的一个文件的写入是否结束
- ClientDataSet加载XML文件取值问题
- 我想把acrobat的文件转换成word,怎么办?有可以转换的软件吗?
- 怎样用过程条显示下载的进度?
- 有关dbgrid多行选 择问题,在线等待。。。。。。。。。。。。。。。
select case gender when 1 then '男' else '女' end as gendername from table
1 小学
2 初中
3 高中或中专
4 大专
5 大学
6 硕士及以上
7 不详在customer(客户)表中记录学历信息只要记录上面表的ID就行了显示的时候用SQL 语句来查询显示结果!这样做的好处是具有扩展性,且做到了与程序代码的无关性,无论你的代码怎么改,所有信息都 在数据库中
procedure TForm1.ADOTable1MSGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
if Sender.AsBoolean then
Text:='男'
else
Text :='女';
end;
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
if field.FieldName='YourFirld' THEN begin
DBGRID1.Canvas.FillRect(RECT);
IF FIELD.AsString='1' THEN
DBGRID1.Canvas.TextOut(rect.Left+2,rect.Top+2,'男') else
DBGRID1.Canvas.TextOut(rect.Left+2,rect.Top+2,'女');end;
end;
使用Boolean型字段,假设ThisColumn为DbGrid中对应该字段的TColumn
with DbGrid do
begin
if ThisColumn.Field.DataType=ftBoolean then
(ThisColumn.Field As TBooleanField).DisplayValues:='男,女';
end;
表一:
SexID: integer;
…………//你的表字段
表二://用于设置编号与性别的关连
SexID: integer//性别编号
Sex: string//性别中文“男”,“女”;
用两个table控件分别连接两个表。
在表一的table中新建一字段:
field properties-type为string
field type为lookup
然后设置definition就可以了如果还不明白,留下mail,我发个范例给你