I'm making a report and I need precise decimal values. A number could have a value of 2 decimal places and a number could have a value of 10. If I set the decimal range to 10 places that column will always show 10 decimal places of mostly 0's. How do I ignore 0's in the value if they are present? For example I like the data to show like this:

123.24
98.234
1212.678432

instead of:

123.2400000000
98.2340000000
1212.6784320000
有帮助吗?

解决方案

Do the following:

  • Right-click the "Details" textbox you want to apply this formatting to
  • Click "Format field"
  • Click the "Number" tab
  • Click "Customize..."
  • Set the Appropriate "Decimals" and "Rounding" values to reflect the DECIMAL scale of the table that feeds into this report
  • Click the "Decimals" formula button
  • Paste the following code, and make sure to change {myproc;1.col1} to reflect your procedure/column:

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

Important:

  1. Change the "{myproc;1.col1}" with the actual variable you are using.
  2. The last line is a formula that dictates how many decimal place would be shown. So after removing all the excess zero, it compute it by subtracting the position of the period with the length of the trimmed string.

其他提示

A simplest just try the code below at format filed->Number->Customize-> Decimals Code Part:

if CurrentFieldValue=Int(CurrentFieldValue)  then
    0
else
    2

The number '2' is decimal place of yours and you can replace it by your own.

If you are not doing any calculations on this field and just reporting it, can you feed it into your report as a string and not as a number?

This will allow you to keep the field as a number and not have to convert to text. This solution is a formatting change at the decimal point.

•Right-click the "Details" field you want to apply this formatting to

•Click "Format field"

•Click the "Number" tab

•Click "Customize..."

Start with the largest decimal place that you want to keep and then duplicate the line backwards. For example if you know the maximum decimal position that has a value you want to keep start with that number, i.e. 1.2345600 you would start with 5. If the number is 0 you must account for this first as otherwise you will get an error

The "Field Name" is the database field name that you are wanting to change the formatting for.

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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top