In my Crystal Report, I want to show the Field values in Upper Case.Is there any way to do this?
You don't need to create a separate Formula Field to achieve this result.
Instead, add the following to the field's Display String conditional formula:
UpperCase(CurrentFieldValue)
Here you go ... http://www.crystalreportsbook.com/Forum/forum_posts.asp?TID=8823
You will notice in this example they are using the UpperCase function of Crystal Reports. So, all you need to do is say UpperCase(some field name) and that take care of it for you.
Related
I have a section in a Crystal Report that I want to suppress. I need to suppress it if there are 0 rows in a particular table in the dataset I am using. How would I do this? The Record Number special field provided appears to be an internal count of records in the report, and does not relate to the rows in the underlying data table.
I am creating the report from C#, but I cannot suppress the section from the code (it doesn't fit the project structure) - I must be able to do it from the report itself. The table concerned is definitely being passed to the report in the dataset, but it contains 0 rows. There must be a way to establish this inside the report itself.....
Can anyone please point me in the right direction?
In the Crystal Reports designer, view the properties of your section and there should be an option to Suppress, which you can give it a formula to return the appropriate boolean value.
You could then use the Count() function within that formula and (I believe) you can pass the name of your dataset to the Count() function to get the number of rows in that dataset.
I did the same thing on a complex report about 3 months ago but I don't have access to the report any more having changed jobs so I'm sorry I cannot be more specific, but hoepfully this gives you a starting point.
Just had a quick Google - try this.
If the section does only contain database fields and f.e. no text fields, then you could use the setting "Suppress Blank Section" in the "Section Export" (rightclick section) for that section.
As an alternative you could use the following formula in the "Suppress" in the "Section Export" for that section:
IsNull({table.field})
"{table.field}" is one of the fields in the dataset.
Hope this helps.
Go to "Section Expert" and click "Supress (No Drill-Down)" and try adding this:
IF {"DragYourFieldHere"} = "" then true else false
Create one dummy group,check on its header for each page,add the header in the group header of the dummy group.
I'm helping a friend with a winforms app loaded with crystal reports (two things I generally try to avoid so pardon my ignorance). Anyhow if I have a varchar database field:
2123456789
And want to display it on the **crystal**report as:
(212)-345-6789
How would I go about that without changing the stored procs, or the database data type (not trying to open that can of worms). From what I've been apply to surmise if it was a numeric or int field then I would be able to use the Format Object number tab. However this is not an option due to the datatyping.
EDIT
My goal is Formatting the data in the crystal report or back end code of the crystal report not the database or t-sql. Thanks
Set the field's display-string formula to:
Picture(CurrentFieldValue,"(XXX) XXX-XXXX")
try this:
Mid("2123456789",1,3)+" - "+Mid("2123456789",4,3)+" - "+ Mid("2123456789",7,4)
Why does a value from a certain Winform change when passing to a report?
for example from a form I have a string 1311-0015 but when I pass it to a Formula Field it becomes 1,296.00
http://i.imgur.com/oeIwrAU.jpg
Passing it to a TextObject doesn't change the value it's still 1311-0015 but I can't use TextObjects in formulas in Crystal Report.
Would like to know why this is happening and how to remedy the problem.
this is the code from the winForm:
report.DataDefinition.FormulaFields["SOS"].Text = transactionId; ((TextObject)report.Section2.ReportObjects["Text3"]).Text = transactionId;
the value I was passing to the crystal report:
public string transactionId = "1311-0015";
You said you are passing the value to a formula field. If there is nothing in the formula, and you pass 1311 - 15 to the formula, it will evaluate it. Instead of a formula field, use a text box or modify the string so it doesn't come out like an equation. For your transactionID value try something like:
""1311" & "-" & "0015""
You may need to have two separate public string transactionId variables.
You can pass this string as parameter.
First, create a parameter field in you Crystal Reports editor. (Right button, New...)
Code something like this:
string transactionID = "1311-0015";
yourRpt.SetDatasource(youDataSource);
yourRpt.Parameters.SetParameterValue("transactionID", transactionID);
Now, you just need to drag and drop the parameter field into the report.
You should create a parameter and use its value inside the formula.
In order to avoid showing parameters dialog box make sure that the parameter value is set (you should do this in your code) and set:
yourReport.EnableParameterPrompting = false;
I am using record number from formula field for SerialNO.Recordenumber shows the values in decimal format like 1.00,2.00 etc, but I like show that in 1,2 etc.
How can I do this?
Why not use the field formatter? Crystal reports field formatter (right click the field and from the context menu, select format) and set how the number should be shown.
Since it's not really a number, but more of an index you can treat it as text:
ToText({SerialNO.Recordnumber},0)
I have added a parameter to my report with the option "Allow Multiple Values" checked.
This is a status column (IE, Proposed, In Progress, Completed, Canceled), and I want the user to be able to select which (and how many) different OrderStatus to report on.
How I normally set parameters is:
report.SetParameterValue("#dtBegin", dtBegin.DateTime);
What I tried to do for the multiple values was something like this:
//pseudo loop
foreach(int intOrderStatus in intSelectedOrderStatuses)
{
report.Parameter_OrderStatus.CurrentValues.AddValue(intOrderStatus);
}
I have checked it does add the values to the OrderStatus parameter, but when the report runs, the CrystalReports dialog pops up and asks me to enter values for the OrderStatus parameter. So it seems as though the values aren't "commited" to the parameter. I have done a number of searches and can't figure out why it's not working.
Thanks,
Just set the parameter value with an array of ints.
report.SetParameterValue("#OrderStatus", new int[]{1,2,3});
in the select expert you would use the in operator.
{table.order_status_id} in {?#OrderStatus}
What you can do is, make a normal parameter field,i.e without multiple values, only discreet values true, all you need to pass is 1,2,3,4. "," is the delimiter for separation use what ever you think works for you, then in record selection formula simply put
{table.order_status_id} in split({#OrderStatus}, ",")
all you need to pass from you page is the string 1,2,3,4 and it should work
Have you set the parameter to Hidden in the Crystal Reports parameter options?
I haven't tried this, but I think that you should be able to add intOrderStatus to either a ParameterDiscreteValue or ParameterRangeValue and pass that into Parameter_OrderStatus.CurrentValues instead of intOrderStatus.
Well i have same issue. The work around is very simple. Don't add data source after parameters. e.g
report.SetParameterValue("#dtBegin", dtBegin.DateTime);
report.SetParameterValue("#dtBegin2", dtBegin.DateTime1);
//Note datasource is assigned after parameters
report.SetDatasource(dataset);
The crystal report will refresh parameters before applying data source to report.
The below is the not popup discrete dialog box
//Note Datasource is applied before parameters
report.SetDatasource(dataset);
report.SetParameterValue("#dtBegin", dtBegin.DateTime);
report.SetParameterValue("#dtBegin2", dtBegin.DateTime1);
Following is tested in Crystal Reports version 13.0.20:
1) In Parameter Fields section add new parameter as follow:
Name: ParamMultipleOrderStatus
Type: Number
Value Options:
Allow multiple values: true
2) Choose the Select Expert Record ... in Crystal Reports and code may like this (use = operator):
{Orders.OrderStatus} = {?ParamMultipleOrderStatus}
3) Use following code:
foreach (int intOrderStatus in intSelectedOrderStatuses)
{
report.ParameterFields["ParamMultipleOrderStatus"].CurrentValues.AddValue(intOrderStatus);
}