I have 2 number fields in crystal reports that I want to concatenate using a formula field, so in my formula I created a field and added ToText({Table.TOTAL_QTY}) & " / " & ToText({Table.BOX_COUNT}) as the formula. Works fine but the numbers appear with decimals, "9.00 / 12.00". How do I remove the 0's in the formula field?
ToText supports various formatting options. You can pass the number of decimals in the second parameter when the first parameter is a number:
ToText({Table.TOTAL_QTY}, 0) & " / " & ToText({Table.BOX_COUNT}, 0)
From Crystal Reports 2008: The Complete Reference:
ToText (n1, n2, s1, s2)
n1 – a numeric value to be converted to a string.
n2 – a numeric value indicating the number of decimal places to use when converting n1.
This argument is optional.
s1 – a string value indicating the character or characters to use as a thousands separator
when converting n1. This argument is optional.
s2 – a string value indicating the character or characters to use as a decimal separator when
converting n1. This argument is optional.
Related
I need to do this for multiple fields and text
So in one field I would want it be TEXT FIELD TEXT FIELD TEXT FIELD
So it would be L 12 X W 12 X 12
The letters would be static text and the numbers would be an actual field
Thanks
You would use a Formula Field to do this. Within the Formula Field you can concatenate plain text with database fields. Here is an example of a formula for a Formula Field.
"This is my custom string." & {table.column} & " more custom text.";
This formula will concatenate the first string contained within the double quotes, the value of {table.column}, and the second string contained within double quotes. If we assume the value of {table.column} is "Delta365", then the output of the formula field would be the following:
This is my custom text. Delta365 more custom text.
EDIT: Response to follow-up question.
To remove the decimal from a numeric value while using a formula to concatenate the numeric value to a string of text you should use one of the overloaded ToText() function. ToText(x,y) is the most commonly used versions of this function. Here is a breakdown of the arguments for this function.
x is a Number or Currency value to be converted into a text string.
y is a Format String that determines how the value of x will be
displayed.
There are two ways to use this function to remove the decimal point. Here is an example of each method using the same example I used previously.
"This is my custom string." & ToText({table.column},0) & " more custom text.";
Or
"This is my custom string." & ToText({table.column},"#") & " more custom text.";
The difference between these two formulas is the value of the y argument. When y = 0, the value of {table.column} will be rounded to the nearest whole number. When y = "#", the value of {table.column} is not rounded and instead will truncate and not show any digits beyond the decimal point.
=if(Fields!Type6.Value="S","",Sum(Fields!Col6.Value))
this is above is a expression which i used for a Sum of column which don't Contains "S"
What I have tried:
this Expression return #Error
Hide Copy Code
if(Fields!Type6.Value="S","",Sum(Fields!Col6.Value))
This Works Fine But it will sum up also alphanumeric column numeric characters
Hide Copy Code
if(Fields!Type6.Value="S","",Val(Sum(Fields!Col6.Value)))
i have used dynamic column so i don't know which is numeric column or string
so plz help me to out from this
By entering "" and a sum you are causing SSRS to try and add a string and a number. Change it to
=if(Fields!Type6.Value="S",cint(0),Sum(Fields!Col6.Value))
or
=if(Fields!Type6.Value="S",cdec(0),Sum(Fields!Col6.Value))
I have dimension string value stored in the following format: 0' 0"
I need a formula to check whether the value is greater than zero (0' 0"). Can anyone please advise what I need? I am just starting with Crystal Reports.
Use the Val() function.
Val (str)
Arguments
str is a text string.
Returns
Fractional Number
Action
The Val (str) function reads a string containing Numbers (example: an address, phone number, or social security number) and converts them to a decimal value. Val stops reading the string when it finds the first character in the string that it finds that it cannot recognize as a number or as a space.
I'm printing the following year as a string in a report but it prints as 2,018.00. How do I have it print as a four digit year string without decimals or the comma? The Truncate() didn't seem to work.
CStr (Year({Date}) + 1)
You can either omit the CStr-function and set the number format on the formatting tab or, if the formula needs to return a string, you can use the arguments of the CStr- or ToText-function (which are equivalent).
Either set the second argument to define the number format:
CStr(Year({Date}) + 1, "####")
Or
Set the second and third argument to set the number of decimals to 0 and an empty string as thousands separator:
CStr(Year({Date}) + 1, 0, "")
What is happening is the Year() function converts the data into a Number, complete with thousands separator, decimal, and 2 significant digits after the decimal.
To get around this what I have found that works is to remove the CStr() function from your formula. This allows you to access the Formatting tab for a Number data type by right clicking the field and selecting Format Field. Then from the Number tab you can set the Style of the field to one of the styles that doesn't use a separator or decimal in the display.
If you are needing to concatenate this value with another string, then you can get a little more creative and use the LEFT() and REPLACE() functions like this.
Left(Replace(Cstr(Year({Date}) + 1), ",", ""), 4)
I want to convert int to string and then concatenate dot with it. Here is the formula
totext({#SrNo})+ "."
It works perfectly but not what i want. I want to show at as
1.
but it shows me in this way
1.00.
it means that when i try to convert int to string it convert it into number with precision of two decimal zeros. Can someone tell me how can i show it in proper format. For information i want to tell you that SrNo is running total.
ToText(x, y, z, w) Function can use
x=The number to convert to text
y=The number of decimal places to include in result (optional). The value will be rounded to that decimal place.
z=The character to use as the thousands separator. If you don’t specify one, it will use your application default. (Optional.)
w=The character to use as the decimal separator. If you don’t specify one, it will use your application default. (Optional.)
Examples
ToText(12345.678) = > “12345.678″
ToText(12345.678,2) = > “12345.67″
ToText(12345.678,0) = > “12345″
You can try this :
totext({fieldname},0)
Ohhh I got the answer it was so simple.
totext takes 4 parameters
First parameter is value which is going to be converted
Second parameter is number of decimal previsions.
Third parameter is decimal separator. like (1,432.123) here dot(.) is third parameter.
Forth parameter is thousand separator. like (1,432) here comma(,) is forth parameter.
Example{
totext("1,432.1234",2) results 1,432.12
totext("1,432.1234",2,' " ') results 1,432"1234
totext("1,432.1234",2,' " ', ' : ') results 1:432,1234
}
Although i think this example may be not so good but i just want to give you an idea. This is for int conversion for date it has 2 parameters.
value to be converted and format of date.