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年,经过多年持续不断发展,是拥有最多软件开发者的报表工具。易学易用,功能丰富,成熟稳定,支持各种编程环境下的报表开发。

  • 相关阅读:
    那些陌生的C++关键字
    从实现装饰者模式中思考C++指针和引用的选择
    单例模式(Singleton)
    命令模式(Command)
    抽象工厂模式(Abstract Factory)
    《Effective C++》读书摘要
    桥接模式(Bridge)
    适配器模式(Adapter)
    设计模式学习心得
    黑客常用WinAPI函数整理
  • 原文地址:https://www.cnblogs.com/report/p/1790190.html
Copyright © 2011-2022 走看看