7

我正在制作报告,我需要精确的十进制值。一个数字可以有 2 位小数,一个数字可以有 10 位。如果我将小数范围设置为 10 位,则该列将始终显示 10 位小数,大部分为 0。如果它们存在,我如何忽略值中的 0?例如,我喜欢这样显示的数据:

123.24
98.234
1212.678432

代替:

123.2400000000
98.2340000000
1212.6784320000
4

4 回答 4

12

请执行下列操作:

  • 右键单击要应用此格式的“详细信息”文本框
  • 点击“格式化字段”
  • 单击“数字”选项卡
  • 点击“自定义...”
  • 设置适当的“小数”和“舍入”值以反映馈入此报告的表格的小数位数
  • 单击“小数”公式按钮
  • 粘贴以下代码,并确保更改 {myproc;1.col1} 以反映您的过程/列:

    stringVar number := ToText({myproc;1.col1}, 8); 
    while (right(number, 1) = "0") do 
    number := left(number, len(number) - 1);
    len(number) - InStr(number, ".");
    

重要

  1. 用您正在使用的实际变量更改“{myproc;1.col1}”。
  2. 最后一行是一个公式,指示要显示多少小数位。因此,在删除所有多余的零之后,它通过用修剪字符串的长度减去句点的位置来计算它。
于 2013-06-24T21:36:06.507 回答
5

最简单的方法是在 format filed->Number->Customize-> Decimals Code Part 尝试下面的代码:

if CurrentFieldValue=Int(CurrentFieldValue)  then
    0
else
    2

数字“2”是您的小数位,您可以自己替换它。

于 2014-12-30T02:40:50.850 回答
0

如果您没有对该字段进行任何计算而只是报告它,您可以将其作为字符串而不是数字输入到您的报告中吗?

于 2013-06-24T21:38:27.740 回答
0

这将允许您将字段保留为数字,而不必转换为文本。此解决方案是小数点处的格式更改。

•右键单击要应用此格式的“详细信息”字段

•单击“格式字段”

•单击“数字”选项卡

•单击“自定义...”

从要保留的最大小数位开始,然后向后复制该行。例如,如果您知道要保留的最大小数位数以该数字开头,即 1.2345600,您将从 5 开始。如果数字为 0,您必须首先考虑这一点,否则您将收到错误

“字段名称”是您要更改其格式的数据库字段名称。

If {"Field Name"} = 0 then 2 else 
if((({"Field Name"})/(truncate({"Field Name},4)))>1) then 5 else
if((({"Field Name"})/(truncate({"Field Name},3)))>1) then 4 else
if((({"Field Name"})/(truncate({"Field Name},2)))>1) then 3 else
2
于 2015-04-28T14:07:54.433 回答