论坛首页 综合技术论坛

格式化输出(日期型字段、布尔型字段、数值型字段、计算字段)显示

浏览 3290 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-06-11  


1、在布尔字段中,常用的一种方法是用其来表示性别,但在显示给用户看时,最好又能显示成男、女,以方便用户。
 双击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;

2、数值型字段,有时我们喜欢用数值型来表示一些选值,例如: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;

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

   发表时间:2010-06-11  
老天,又见delphi
0 请登录后投票
   发表时间:2010-06-12  
justlive 写道
老天,又见delphi

工作需要,只得搞Delphi了。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics