2020-08-08

Delphi关于字段内容的格式化输出(日期型字段、布尔型字段、数值型字段、计算字段)显示

1、在SQLSERVER中,设字段类型为DATETIME,当输入时只是日期格式‘yyyy-mm-dd',但输出时就变成 'yyyy-mm-dd hh:nn:ss'
解决方式:
  在字段所关联的DATASET中,(假设是ADOquery1)双击,在弹出的窗体中添加静态字段,然后设置其Displayformat的属性,设它为'yyyy-mm-dd';
  还有一种方法在用ADOQUERY1从数据库中取出数据集时,直接在SQL语句中控制
  ADOquery1.sql.text:=select convert(varchar(10),日期型字段名称,120) AS FIELDNAME FROM TABLENAME;
2、在布尔字段中,常用的一种方法是用其来表示性别,但在显示给用户看时,最好又能显示成男、女,以方便用户。
 双击ADOquery,在弹出的窗体中生成静态字段,然后你点取这些静态字段,在OnGetText和OnSetText事件中做如下。(我一般习惯用男1女0,想像丰富一点,嘿)
procedure TfrmData.TADOquery1SEXGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
 if sender.Value=1 then Text := '男';
 if sender.Value=0 then Text := '女';
end;

procedure TfrmData.TADOquery1SEXSetText(Sender: TField;
const Text: String);
begin
 if Text = '男' then sender.value :=1;
 if Text = '女' then sender.value :=0;
end;

3、数值型字段,有时我们喜欢用数值型来表示一些选值,例如:1、小学生;2、中学生;3、大学生;等等,那么同样可以参照上面布尔型的方法

procedure TfrmData.TADOquery1studentTypeGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
 if sender.Value=0 then Text := '小学生';
 if sender.Value=1 then Text := '中学生';
 if sender.Value=2 then Text := '大学生';
...
end;

procedure TfrmData.TADOquery1studentTypeSetText(Sender: TField;
const Text: String);
begin
 if Text = '小学生' then sender.value :=0;
 if Text = '中学生' then sender.value :=1;
 if Text = '大学生' then sender.value :=2;
...
end;

5、有时还要根据需要生成一个在数据库中不存在的字段,用来显示一些汇总信息,这个叫计算字段的意思,现在你的DBGRIDEH所关联的DATASET中(假设是ADOQUERY1),双击,在弹出的窗体中生成一个计算字段,假设是 工资总额,然后在如下事件中写
procedure Tfrm_DBParamSet.ADOQuery1CalcFields(DataSet: TDataSet);
begin
Dataset.FieldByName('工资总额').Value:=
Dataset.FieldByName('奖金').Value+Dataset.FieldByName('补贴').Value;
end;

来源 http://www.delphibbs.com/keylife/iblog_show.asp?xid=17800

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值