动态控制水晶报表中数字栏位的值显示的小数位数

来源:互联网 发布:centos限制用户目录 编辑:程序博客网 时间:2024/06/10 04:41

代码写在设置格式部分的【数字】--->【自定义样式】--->【十位】的公式栏位中,另外【十位】中的格式选定所需的最长格式,并且,【四舍五入】中选定最大的小数位数。

注意:水晶报表最多保留10位小数,系统默认格式保留2位小数。

方法一:

if Right(ToText((数字栏位),总小数位数), 4)='0000' then 0
else if Right(ToText((数字栏位), 总小数位数),3)='000' then 1  
else if Right(ToText((数字栏位), 总小数位数),2)='00' then 2  
else if Right(ToText((数字栏位), 总小数位数),1)='0' then 3  
else 4
注意:该处需将【起始0】选项勾上,否则当数值大于0小于1时,显示的数值将会默认去掉个位上的0。

方法二:

Local StringVar strTemp := ToText({数字栏位},总小数位数);
Local NumberVar i;
Local StringVar str := "";
Local NumberVar strLen := Length (strTemp);
For i := strLen To 1 Step -1 Do
(
   If strTemp[i] = "." Then
   (  //如果当前值是小数点,则终止循环
      str := Left(strTemp, i-1);
      Exit For
   )
   Else If strTemp[i]  <> "0" then
   (//从字符串最后一位取值,取小数点后最后一个不为0的值
      str := Left(strTemp, i);
      Exit For
   )
);

//设置起始0

If str[1] = "." Then
(
str := "0"+str;
);
Str

原创粉丝点击