水晶报表中动态显示小数位
from<http://learningtips.spaces.live.com/blog/cns!a48ecc897d8e2e57!132.entry>
大家都知道,在水晶报表里,小数点的保留是个比较讨厌的问题。因为在数字字段的格式化中,小数点格式化的位数是固定的。也就是说要么保留两位,要么保留三位……,要么一位都不保留。其实在很多时候,客户更希望的是服务器端是几位就保留几位。曾经有N 个人问过我这个问题如何解决,今天又有人问了,干脆写了一个函数解决这个问题,以后再有客户有这样的需求,直接套用这个函数就行了。
其实我以前也说过,解决这个问题有一个方法就是在服务器端直接把这个数字字段转换成字符型,这样在水晶报表这边就不需要做任何处理了。但是这种办法有个不好的地方就是要去改服务器端视图,这样有可能会影响其他业务的操作。虽然可以创建一个新的视图来在它基础上做此报表,但是为了一个字段而新建个视图有时候也比较郁闷。
另外一个办法就是在水晶报表中添加一个公式字段,对那个数字字段进行处理。思路就是先把这个字段转换成字符型,然后把小数点后面多余的0去掉。水晶报表有个数字转换字符的函数“ToText”,这里就有一个问题,这个函数可恶之处就是它必须要指定小数位数,如果不指定,它就保留两位小数。如果非要指定那就指定吧,但是它又说了,小数不能超过10位,“ToText(123.456, 11)”是通不过的,真是昏死!
水晶报表中的函数代码如下:
Local StringVar strTemp := ToText({FLEX_PURCH_REQ_REP\.ORIGINAL_QTY}, 10);
Local NumberVar i;
Local StringVar str := "";
Local NumberVar strLen := Length (strTemp);
For i := strLen To 1 Step -1 Do
(
If strTemp[i] = "." Then
( //Integer,we should delete the point
str := Left(strTemp, i-1);
Exit For
)
Else If strTemp[i] <> "0" then
(
str := Left(strTemp, i);
Exit For
)
);
//Leading Zero
If str[1] = "." Then
(
str := "0"+str;
);
Str
在使用的时候,只要新建一个公式,把上面代码拷贝进去,然后修改一下要转换的字段(蓝色字)就可以了。这里有个要注意的地方是:不能转换超过10位小数的数字,这是水晶报表的限制,在水晶报表客户端没有办法解决。我们到数字字段的格式化里去看,那里也最多格式化10位。如果将来真要有家客户需要保留10位以上小数,我们只好还是采用第一种方法 ―― 改服务器端视图。
分享到:
相关推荐
水晶报表动态显示图片水晶报表动态显示图片水晶报表动态显示图片水晶报表动态显示图片水晶报表动态显示图片水晶报表动态显示图片
实现将图片动态加载到水晶报表中,解决水晶报表添加图片的问题。
制作水晶报表显示制作水晶报表显示制作水晶报表显示
水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表
水晶报表数字金额转中文大写,用于水晶报表中将数字金额转换为中文大写的金额
Visual C++源代码 169 如何在水晶报表中显示比例数据Visual C++源代码 169 如何在水晶报表中显示比例数据Visual C++源代码 169 如何在水晶报表中显示比例数据Visual C++源代码 169 如何在水晶报表中显示比例数据...
水晶报表动态添加字段类的介绍,以及类的使用。
在水晶报表中使用SQL数据库 在水晶报表中使用SQL数据库
Visual C++源代码 167 如何在水晶报表中使用计算公式Visual C++源代码 167 如何在水晶报表中使用计算公式Visual C++源代码 167 如何在水晶报表中使用计算公式Visual C++源代码 167 如何在水晶报表中使用计算公式...
Visual C++源代码 165 如何在水晶报表中添加合计字段Visual C++源代码 165 如何在水晶报表中添加合计字段Visual C++源代码 165 如何在水晶报表中添加合计字段Visual C++源代码 165 如何在水晶报表中添加合计字段...
Visual C++源代码 171 如何在水晶报表中添加水印图像Visual C++源代码 171 如何在水晶报表中添加水印图像Visual C++源代码 171 如何在水晶报表中添加水印图像Visual C++源代码 171 如何在水晶报表中添加水印图像...
水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例
Vb.net 水晶报表 动态数据源 分组 动态参数
水晶报表例子水晶报表例子水晶报表例子水晶报表例子水晶报表例子水晶报表例子水晶报表例子
水晶报表中文手册!水晶报表中文手册!
水晶报表工具栏显示为红叉 通过vs内部运行没有问题,通过IIS部署运行后水晶报表工具栏图片出来,是因为IIS没有水晶报表样式。
水晶报表中插入图片,只提供方法,水晶报表,无非就是在Microsoft Visual Studio 2005/08/10等里面拖拉控件。 水晶报表两个插件:CrystalReportViewer、ReportDocument
asp.net Crystal Reports水晶报表安装包,服务器和开发环境必须安装。
水晶报表 实现列的动态增加 水晶报表 实现列的动态增加