How to check if SSRS Textbox text equals "0" - reporting-services

I would like to know if there is a way to created some kind of a function is SSRS that checks the value of a given textbox. If the value == "0", then, change it's text to "" (empty).
The idea here is to hide the content if the value is 0. The value comes from the database query results.
I would need a generic function because I have to apply this to a lot of textboxes.

If these textboxes are going to have numbers in them, you can change the number formatting to not show the zeros. There's an option on the Text Box Properties/Format/Number for "Show zero as" and you can choose a blank. You could then copy that format to your other textboxes.

"I would like to know if there is a way to created some kind of a function is SSRS that checks the value of a given textbox. If the value == "0", then, change it's text to "" (empty)."
You can use the ReportItems collection to access the textbox.
It is used in the same way as the Fields collection:
=ReportItems!TextboxName.Value
So in your case the expression would be:
=IIF(ReportItems!TextboxName.Value = 0, "",ReportItems!TextboxName.Value)

Related

Microsoft Access IF statement

I was wondering if you can make an if statement in Microsoft Access.
The idea is you have 2 columns. 1st one is called "Quantity" (type is number) and 2nd one is called "In stock" (type Yes/No) and want to make the statement:
"if quantity > 0 then "In stock" should be tick otherwise no tick."
I was trying:
iff([quantity] = 0, [in stock] = "No", [in stock] = "Yes")
also tried this
iff([quantity] = 0, [in stock] = false, [in stock] = true)
Hopefully you get it, can someone help or tell me if its possible to make this?
Thanks in advance
If you are using a version of MS Access which offers the Calculated field type, this task is relatively simple and does not require queries or code.
Simply configure your In Stock field to be a Calculated field, calculated using the expression:
[Quantity] > 0
Set the Result Type to Yes/No to indicate that the result will be that of a Boolean field.
The Format may be set as appropriate for your application (Yes/No I would assume).
all editions of Microsoft Access support calculated values in queries. It is a matter of implementing it correctly. i.e.:
In Stock: iff([quantity] = 0, "No", "Yes")
This is put in and creates the new field: In Stock
Firstly, you can't use the IIf function to change the value of a checkbox or a bound control.
If what you want to do is simply determine which item/product is in stock and which isn't, you don't actually need have any field such as the [In Stock] field to be in the table. A more elegant method is to simply evaluate the Quantity field and use an unbound text box to display Yes or No.
Set the unbound textbox's control source to:
=IIf([Quantity] > 0, "In Stock", "Out of Stock")
A slight alternative is:
=IIf([Quantity] > 0, "Yes", "No")
In the case of the slight alternative above, you change the label or header label of the unbound textbox to "In Stock". This way, the Yes or No that will be displayed for each product will make sense to all users and viewers. Please note that the equal sign (=) is part of what you will type.
If for some reason you need to store the [In Stock] field as as a Yes/No data type in the underlying table and you want to update this value to Yes or No (tick or untick), then you could use a macro. In this macro, you would use the traditional If Then Else statement together with the SetValue action. I can't post screenshots/illustrations at the moment because I am currently using a phone. The statement will be as follows:
If [Quantity] > 0
Then SetValue [In Stock] =Yes
Else: SetValue [In Stock] = No
NOTE: you could also subtitle 1 for Yes and 0 for No.

SSRS limiting number of characters for a parameter

How can I limit the number of characters a user can type for a parameter in SSRS?
For example, if the Data Type is set to TEXT, how to limit the user to type only 6 characters after Default value of "CL/" OR limit to total of 9 characters.
Unfortunately you can't perform validation as people write values, you can only handle them when the report is run. You can however use Code behind the report to perform some validation on your Parameters at run-time. Based on the result of this you can then either display the required data to instead return an error message.
To insert some code behind you right click the area around the report, Choose Report Properties, then Code.
Enter something like this into the code panel
Function Validate(param) as Boolean
If len(cstr(param)) <= 9 Then
Return"True"
Else
Return "False"
End if
End Function
You can then refer to the result of this from a text box that displays an error as follows
Right click the text box and set the visibility to be
=iif(Code.Validate(Parameters!myInput.Value) = True, True, False)
Then if you enter a string of 9 or fewer characters you will get an error that you can use to inform the user of the proper format of your desired input string.
Instead of just making text boxes visible/invisible, you could also apply this to rectangles that store your report information. Also, you can use visual basic coding to alter the Code behind to perform more complicated parameter validation to check for you "CLI" string for example.
I hope this helps, let me know if you require further help.

Microsoft Access - query checkbox based on textbox

I have a field text field containing dates.
I also have a checkbox named "Delivered"
If the text field contains a date, I would like the "Delivered" checkbox value to be "True" / ticked.
If the text field isNull, the checkbox value must be "false" / not ticked
I have tried the following in the query expression builder of my checkbox:
IIf([DateField]="";False;True)
but I keep getting an error about the expression being built incorrectly?
You are trying to store a Calculation/dependent value in a table based on a field in the same table, this is not advisable and should not be carried forward. Calculations should be done when and where required, like display on Forms, Query to export or Reports to show. More info on Calculation field is available here : http://allenbrowne.com/casu-14.html
If you really want to then you can create an UPDATE Query as,
UPDATE
tableName
SET
DeliveredFieldName = IIF(Len(DateFieldName & '') = 0, False, True);

How to change the representation of data in SSRS

I am working on a SSRS Report.
In the report , i need do display a field of type: boolean that is either true or false.
When I try to display it on the report , it's showing as true/false.
But, I would like to represent it as yes if value is true and no if false.
I think one way of doing is by changing the query that gets data to report.
But I would like to know, is there any way we can write that condition in the report itself
to change representation.
You can use an expression field, add a textbox, right click => expression and use something like this: =IIF(Fields!LineTotal.Value = True, "This is true", "This is False")

Format each letter in a field that I get back from database with SSRS

I have a requirement where I want to format a field that is returned from the database based on what it contains. Specifically, if the value of the field is "Other 3", I need to display the "Other" in 12pt and the "3" in 8pt.
Any help is greatly appreciated.
You could reference the field in two textboxes. Use Mid & IndexOf to select either side of the field for each textbox. Then just set the fonts of each textbox to 12pt and 8pt.
If it is mandatory that entire string exist in one textbox, (and you're using SSRS 2008) you can use placeholders as described here.