zoukankan      html  css  js  c++  java
  • 巧用锐浪报表:用报表脚本实现动态显示小数位数

     

    需求概述

    在某些统计报表中,某类数字其值取值范围相当大,为了让超大的数据总的显示位数不要太多,而较小的数据又要显示有足够的精度,即根据数据的大小,显示不同的小数位数,这有点类似计算机中表示带小数数据的浮点数机制。

    在锐浪报表中可以通过设置数据的“格式”属性来实现数字按规定格式显示出来,但上面的要求并不能直接通过设置格式来实现,而是要借助报表脚本功能来实现。

    实现说明

    首先设置数据的格式为输出需要的最多小数位数,如格式为“#,##0.000000”,表示数据始终显示5位小数。然后利用报表脚本根据数据值的大小确定要输出的小数位,将后面多余的小数位截掉,这样就得到需要的显式文字。

    在字段或统计框的“获取显示文字脚本”属性上写报表脚本可以设置其显示文字,举例脚本代码:

    //根据值确定要显示的位数
    var v = Sender.Value;
    var digit = 0;
    if (v>2000)
      digit = 0;
    else if (v>1500)
      digit = 2;
    else if (v>800)
      digit = 3;
    else
      digit = 5;

    var Text = Sender.DisplayText;  //得到根据格式化串生成的苏剧显示文本,如:123.45600 
    var Index = Text.indexOf(".");  //确定小数点位置
    if (digit > 0)
      Index = Index + digit + 1;
    else
      Index = Index;
    Sender.DisplayText = Text.substr(0, Index);  //截取显示文字,并设置为数据的显示文本

    示例下载(http://www.rubylong.cn/download/samples/FloatDecimal.grf)


    锐浪报表Grid++Report源自2003年,经过多年持续不断发展,是拥有最多软件开发者的报表工具。易学易用,功能丰富,成熟稳定,支持各种编程环境下的报表开发。

  • 相关阅读:
    ANSI C 与 C99的不同
    字符串中含有空格的注意事项
    巧用printf函数
    求数列的和
    数值统计
    平方和与立方和
    求奇数的乘积
    第几天?
    细节之重
    用%*c滤掉回车,ASCII码排序
  • 原文地址:https://www.cnblogs.com/report/p/1790190.html
Copyright © 2011-2022 走看看