数据显示问题,急(100分)

  • 主题发起人 主题发起人 redtea
  • 开始时间 开始时间
R

redtea

Unregistered / Unconfirmed
GUEST, unregistred user!
用DBGrid显示记录,有些字段datatype为float,
在显示时随数据值大小的不同需要显示不同
的小数位数,无法在dataset的字段editor里
设置统一的显示格式,不知该如何实现,哪位大虾
指点一下,多谢:)
 
一个笨办法仅供参考:
你建立一个计算字段,显示记录时不显示存储float值的那个字段,只是将存float
值的字段值复制给这个计算字段,然后就可以处理这个计算字段的值了,你可以根据
数值的大小进行格式转换,比如0.999变成0.99,10.9001变成10.9什么的,但是问题是
你需不需要将这些数值回写?如果需要的话,就复杂一些了,你需要对存储真实值的
字段进行操作,可能控制代码要写的多一些.
呵呵,办法比较笨...

 
为 DataSet 建立永久字段,在字段对象的 OnGetText 中写格式化代码:

procedure TForm1.Table1NAMEGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
Text := ... ;
end;
 
如果你的要求不复杂
直接在SQL语句里进行格式化
 
设置相应字段的DisplayFormat和EditFormat属性,比如'0.00'(两位小数)。
 
to kent: 呵呵,有创意:)好象不错啊,哈。试试看再说。正好本来就有计算字段的
显示格式也要转换,thx:)
to BaKuBaKu:多谢,本来就是打算写一个格式转换的函数,但就是不知道该在哪里调用
转换函数。
to 笑傲江湖:有点复杂,不规范,因为有合计的四舍五入问题,所以在sql server里已经
分情况做了设定,但是sql只能限定最多小数位数,不能限定小数位数必须
为多少,有的情况无法实现补0的要求,后来在中间件调用时分情况转换为
对应的字符串,但是,有些字段在客户端还要被计算字段调用,所以只好
在客户端最后显示时再统一转换。
to dp: 因为不确定要显示几位小数,所以没有办法统一设定。

多谢各位,我试试看回来再给各位加分,哪位处理过类似情况的还请继续指点。


 
多人接受答案了。
 
后退
顶部