I've a vertical line that i want to suppress with a condition.
Unfortunately I don't see the condition option by a line.
When I use an empty textbox, all the other text is moved down.
Is there conditional another suppress option for a line?
You can't conditionally suppress a line in CR. I know of two options to get around that:
Put the line in its own section and then conditionally suppress the section.
Put a textbox over the line and then conditionally format the background of the textbox by right-clicking on the textbox -> Format Field -> Border tab -> check Background check box -> click "x+2" box to enter conditional formula, The formula would be something like if condition then crWhite else NoColor, where crWhite will hide the line, NoColor will show it.
Simple way,
Insert Text object increase the length of the object as required.
Go to Format Object -> select border property and choose Top or bottom lines.
Put some text (like under score or space) for object text and minimize the width of the object so that you can't see the provided data to the object but still border appears as a line.
As it worked for me.
I found an alternative to suppressing a line object, think this might help
CrystalReport1 cr1 = new CrystalReport1();
(cr1.ReportDefinition.ReportObjects["line_object_name"] as LineObject).LineStyle = CrystalDecisions.Shared.LineStyle.NoLine;
Related
I'm using a Crystal Report connected with VB.NET 2010, here I using a Line object, which I need to show or hide depending on data field. Where do I need to set the formula?
This project I use is running with SQL 2008 and VB.NET 2010. I've tried some Formula Field for this topic. But the result is not look like that I want to show.
I use the following code on Formula Field:-
IF isNull({PrintParticularList.CUST_INVOICE_No}) or {PrintParticularList.CUST_INVOICE_No}=""
THEN
""
ELSE
"--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
I also try this following Code :-
IF isNull({PrintParticularList.SLNO}) or {PrintParticularList.CUST_INVOICE_No}=""
THEN
Line25.Suppress=True
ELSE
Line25.Suppress=False
But here I got error on Line25.
A number, currency amount,boolean, date, time, date-time, or string is
expected here.
In the Report Designer use the Insert Line tool to draw the line where you want it to appear on your report. The right-click the line object and select "Format Line..." to open the Format Editor dialog box. On this window you will find a check box labeled "Suppress" with an X-2 button to the right. Click the X-2 button and this will open a Formula Workshop window where you will enter the formula that determines if this drawing object should be suppressed or not.
I would recommend the following formula based upon your previous attempts at creating one.
IF isNull({PrintParticularList.SLNO}) or {PrintParticularList.CUST_INVOICE_No}="" THEN
True
ELSE
False
-----EDIT-----
Since you don't have the X-2 button I have 2 more ideas.
1.) Take the 1 section you current have and split it into 3 sections. Then you could place all the content above the line in the first section, place the line in the second section, and the content below the line in the third section. They use the formula to suppress the second section when the line is not needed.
2.) Insert a blank text box in place of the line and set either the top or bottom border of the text box to a single line. Then use the suppress formula to determine if the text box should be shown or hidden.
In Crystal Report sometimes I need to use a field with Can Grow property set to true but when I add line object to separate the rows for better readability the line doesn't adjust with the field growth and it intersects with the text. How to make the line adjust itself with the field growth?
OK, after a lot of try and error I found this option which fulfill that requirement (for CR under Visual Studio):
Right click the line, select Format Object, then check the option: Move to Bottom of Section when printing.
Is there a good way to make horizontal lines actually line up in Crystal Reports? I can select text and field objects, right-click, and do various sizing and alignments. But that's not an option with a line. I need header fields underlined (and for whatever reason, our standard says to NOT use underline), and I want them to line up across the report.
It's a pain, but I've found one way to do it.
Both field and line items have a right-click menu option called "Size and Position". It doesn't take just any value, especially with Snap to Grid turned on (and doesn't always take exactly what you choose with it not turned on), but you can carefully make sure each line has the same Y value (for horizonal lines). And, if you want them to align and be the same length as the field headers they are underlining, compare each header field X and Width values, and make each line also match that.
In design mode, you can add horizontal guide lines by clicking in the ruler (the vertical one) fields will get sticky to it.
You can also select several fields, right click "Align > Bottoms" and them move the fields to the guide lines.
You can also format a single field to "lock its position and size", then Align the others to it
Another way is to select all the lines you want to left align, move them to the far left with the left cursor key until they hit the left margin and keep pressing the left key until they all align themselves. Just a trick!
Put a bottom border on the header Text Object.
I have a row in a tablex that I want to hide based on a condition. I can do this with the visibility property and also using CanShrink as well is an option.
I've tried both of these and the best I can do is hide the row (make it invisible), but it keeps the whitespace it takes up - I need to remove the whitespace too so if it is not shown that it doesn't take up paper/viewing space.
I have also made the height of the row very small and put cangrow=true so that that if i populate the field with data based on an expression it will grow to the right size but this is not ideal because there is still 0.03125in of space for the row that is always shown (minimim height) and if it grows it grows to fit the text but not neccessarily the set size I want.
I thought I had done this before in an older version of RS but I can't seem to get it to work correctly in this version (2008).
Any ideas?
Try to set the Hidden property of the Static Row Group under the Details Group, in this case the whole row will disappear instead of the content of the textboxes.
If you are using Report Builder, you need to switch to Advanced Mode (make sure that the Properties and the Grouping windows are displayed, go to the upper right side of the Grouping window and press the black triangle):
Click on the second "Static" item under the "(Details)" group and you can set the Hidden property on the Properties window.
Link to MSDN sample
A simpler way to get to this option for hiding a row is to right-click on the row header and select "Row Visibility". From there you will get a dialog where to can enter an expression.
I was able to make the rows go away by setting the following 2 properties
textbox.CanShrink
row.Hidden
I played w/ row.HideIfNoRows and it seems to have no effect in accomplishing the desired outcome described by op.
Click on textbox, these one is in the properties of the textbox
(if there are multiple columns, I assume you will have to make this setting for each cell/textbox, in my case, I only had 1 column)
CanShrink=false
For the next property, you have to go into ADVANCED MODE by clicking the down arrow at the right side of the Row Groups/Column Groups pane.
Click on the Row containing the line you would like to hide.
The Hidden property can be found in properties pane...
This is an alternate way to set Hidden, as opposed to right clicking the Row Header in the actual Tablix.
Hidden= <expression describing when you want the row hidden hidden>
One other note - If you right click the Row Header and choose 'Row Visibility' you get a dialgue. the Row Property dialog has a caption "Show or Hide Based on an expression".
The actual behaviour is It will HIDE the row if the expression evaluates to TRUE.
IMHO - this is misleading, at best ambiguous.
Once you understand the property you are actually setting is called HIDDEN, then this makes sense. Until then, I certainly assumed I was setting a property called Visisble... FWIW....
On the empty row you want to hide, go to the text box properties and go to expressions -> visibility, then show or hide based on an expression and use
=iif(first(Fields!.Value = ""),true,false)
Setting row visibility logic is important, but I've learned that sometimes a blank row will still appear, even though its contents are hidden. To solve this, I had to do the following non-intuitive steps, but I did in fact succeed in completely suppressing unwanted white space.
In the cell in the tablix region, use the Insert > Rectangle menu option.
In the rectangle, use the Insert > Textbox menu option. Resize as needed.
In the textbox, right-click and enter a placeholder.
Set the value of the placeholder expression to whatever you need.
I have a Crystal Report which is viewed via a CrystalReportViewer control on an .aspx page (using VS2008).
The report has two data-driven FieldObjects (which can contain a variable number of chars) which I would like to display on the same line beside each other.
Problem is when the text in the first FieldObject is too long it overlaps the text in the second FieldObject.
I have tried setting the 'CanGrow=True' and 'MaxNumberOfLines=1' on the first FieldObject to 'push' the second FieldObject further to the right, but this didn't work.
How do I get the second FieldObject to always display immediately after the first FieldObject regardless of the length of the text in the first?
Cheers in advance of any knowledge you can drop.
you can add a text object to the report. And while editing the text of the text object, drag the field you want to show from the object explorer into the text box. Then hit space, then drag the second field in to the same text box. Your two fields will always be one space a part. You could, of course, add more spaces or any other text you want.
Or you can create a function which returns field1 + " " + field2 and add the function to the report.