`
songtianbao
  • 浏览: 29703 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

水晶报表中动态显示小数位

阅读更多

水晶报表中动态显示小数位

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位以上小数,我们只好还是采用第一种方法 ―― 改服务器端视图。

分享到:
评论

相关推荐

    水晶报表动态显示图片

    在水晶报表中动态显示图片是一项重要的功能,这使得报告更加生动且具有更高的信息传达效率。 在水晶报表中动态显示图片,通常涉及到以下几个关键知识点: 1. **数据链接**:水晶报表可以将图片存储在数据库中或者...

    水晶报表-动态加载图片

    在实际应用中,我们可以使用水晶报表动态加载图片技术来实现图片的加载,例如在报表中显示产品图片、员工照片等。这种技术可以提高报表的可读性和美观性,并且可以满足实际应用中的需求。 技术要点: * 使用水晶...

    在水晶报表中使用SQL数据库

    在这个主题中,我们将深入探讨如何在水晶报表中有效地利用SQL数据库来设计和展示数据。 1. **水晶报表简介**:水晶报表是Business Objects(现为SAP的一部分)的产品,它提供了丰富的报告设计环境,支持多种数据源...

    水晶报表例程(9.0 for ASP)

    水晶报表是一款强大的报表设计工具,尤其在企业级应用中广泛使用。标题提到的"水晶报表例程(9.0 for ASP)"表明这是一个基于水晶报表9.0版本,专为ASP(Active Server Pages)开发环境设计的示例程序或者教程。这个...

    CRRuntim_水晶报表运行包_64位+32位

    标题“CRRuntim_水晶报表运行包_64位+32位”指的是该压缩包包含了适用于64位和32位操作系统的水晶报表运行时环境。 在实际应用中,有时会出现客户端计算机因缺少必要的运行时组件而无法执行含有水晶报表的程序的...

    水晶报表二维码,code128,Ean-13

    在本主题中,我们主要关注的是如何在水晶报表中集成二维码,以及与之相关的Code128和Ean-13条形码格式。 二维码(Quick Response Code)是二维条形码的一种形式,它可以存储大量的信息,如网址、文本、联系信息等,...

    VB.net 水晶报表 动态数据源

    通常,这样的示例会包括一个VB.NET窗体,窗体上有按钮或下拉框供用户输入参数,以及一个用于显示水晶报表的控件。在代码中,会有相应的事件处理函数来生成并显示报告。 7. **最佳实践** - 确保在处理动态数据源时...

    水晶报表13.20 32位安装包

    【水晶报表13.20 32位安装包】是一款专为开发人员设计的报表解决方案,主要用于在Visual Studio环境中创建、设计和部署复杂的报表。这个安装包是32位版本,适用于那些需要在32位操作系统上运行的项目。其核心组件...

    C#动态水晶报表

    例如,用户可以选择查看特定时间段的销售数据,此时就需要在报表中设置日期参数,并在C#代码中传递这些参数值。 5. **报表渲染与显示**:最后,通过`ReportDocument.PrintToPrinter`或`ReportDocument....

    制作水晶报表显示制作水晶报表显示制作水晶报表显示

    下面将详细介绍如何制作和显示水晶报表,以及相关的关键知识点。 1. **水晶报表概述** 水晶报表(Crystal Reports)是SAP公司的一款产品,它允许用户从各种数据源(如SQL Server、Oracle、Excel等)获取数据,并...

    水晶报表数字金额转中文大写

    水晶报表数字金额转中文大写,用于水晶报表中将数字金额转换为中文大写的金额

    vb6.0水晶报表的制作学习资料

    水晶报表支持动态参数,允许用户在运行时输入值以过滤或定制报告。在设计阶段,可以添加参数字段,并设置其默认值、验证规则和提示信息。 编程交互。在VB6.0代码中,你可以控制水晶报表的行为,比如加载数据源、...

    条形码如何用在水晶报表中

    在水晶报表中,可以使用公式来动态生成条形码。具体做法是: - 创建一个文本框,并设置其内容为公式:`*+{Table.BarcodeField}+*`。其中,`{Table.BarcodeField}`是存储条形码数据的字段名,前后各加一个星号(`*`)是...

    水晶报表9动态库dll文件收集包

    在本文中,我们将深入探讨“水晶报表9动态库dll文件收集包”及其重要性,以及如何在使用水晶报表9时手动注册dll文件。 首先,我们要明白dll(Dynamic Link Library)文件在Windows操作系统中的作用。DLL文件是一种...

    Visual C++源代码 169 如何在水晶报表中显示比例数据

    Visual C++源代码 169 如何在水晶报表中显示比例数据Visual C++源代码 169 如何在水晶报表中显示比例数据Visual C++源代码 169 如何在水晶报表中显示比例数据Visual C++源代码 169 如何在水晶报表中显示比例数据...

    Code39——水晶报表中显示条形码必需

    在水晶报表中显示条形码时,需要该资源中的文件,其中包含一个dll文件和Code39的字体文件

    如何在水晶报表中动态添加字段

    水晶报表动态添加字段类的介绍,以及类的使用。

    水晶报表动态创建字段

    【水晶报表动态创建字段】是报表设计中的一种高级技巧,主要应用于那些字段数量不固定,需要根据业务需求动态调整的情况。下面将详细讲解如何实现这一功能。 首先,我们需要创建一个水晶报表模板。在Crystal ...

    水晶报表 水晶报表 水晶报表

    水晶报表是一款强大的报表设计工具,尤其在商务智能和企业级应用中广泛应用。它以其灵活性、易用性和功能全面性著称,能够帮助开发者创建复杂的报表并进行数据可视化。本篇文章将深入探讨水晶报表的主要特点、使用...

    水晶报表动态字段方法

    【水晶报表动态字段方法】是指在设计Crystal Reports时,根据用户的需求,能够在运行时动态地添加或显示不同的字段。这种方法通常用于处理不确定的或可变的数据结构,例如当报表的列数或列名需要根据用户输入或外部...

Global site tag (gtag.js) - Google Analytics