Multiple String Values in one SSRS expression - tsql

I am having an challenge with this SSRS expression. I need add REPORT_NAME "AIA1610U" in the expression to narrow my results down in the report.
Not Sure what I am doing wrong here. How would I go about doing that? Any Assistance would be great.
=SUM(IIf(Fields!NAME.Value = "TOTAL OUTSTANDING APPLICATIONS" ,Fields!DAYS_AGO.Value ,0),"rsOutstandingApplications")- SUM(IIf(Fields!NAME.Value = "ELECTION FORM RECEIVED" ,Fields!DAYS_AGO.Value ,0), "rsOutstandingApplications" )

I figured my issue out. Here are the results of the correct answer.
= SUM(IIf(Fields!NAME.Value = "TOTAL OUTSTANDING APPLICATIONS" AND Fields!REPORT_NAME.Value = "AIA1610U", Fields!DAYS_AGO.Value ,0),"rsOutstandingApplications") -
SUM(IIf(Fields!NAME.Value = "ELECTION FORM RECEIVED", Fields!DAYS_AGO.Value ,0), "rsOutstandingApplications" )

Related

i can't show space in formula in Crystal Report

I use this code to show the sum of my bank
if {?Bank} = {Bank.sum} then {#1} else 0
I have 6 bank accounts and when the bank = Bank has operations, then I show the sumand else I do not show anything.
I do not want to show "0" in my report.
I want to show " "(space), but when I change it to " ".
When I do it, I get the error
A number is required here
How can I fix it?
In that case, use:
if {?Bank} = {Bank.sum} then ToText({#1},0) else ""
The 2nd arg indicates zero decimal points. See online documentation of the ToText() function.
One option:
if {?Bank} = {Bank.sum} then ToText({#1}) else ""
Another option is to use formatting.

PayPal error "Currency amount must be non-negative number"

I'm trying to implement the CFC (coldfusion) code found here:
http://www.sitekickr.com/blog/integrating-paypal-payflow-pro-rest-api/
I'm still at the testing stage and haven't even tried passing my own variables, just using the CFSET example provided.
<cfset response = paypal.capture( card_type = "visa"
, card_number = "4556747948786484"
, card_exp_month = "12"
, card_exp_year = "2018"
, card_firstname = "Bob"
, card_lastname = "Smith"
, amount = 15.25
, description = "Order 1011"
)>
I'm getting this error:
{"name":"VALIDATION_ERROR","details":[{"field":"transactions[0].amount.total","issue":"Currency
amount must be non-negative number, may optionally contain exactly 2
decimal places separated by '.', optional thousands separator ',',
limited to 7 digits before the decimal point"}],"message":"Invalid
request - see
details","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#VALIDATION_ERROR","debug_id":"dfb7b0588d38e"}
It makes no sense because the currency value I'm passing is NOT a negative and contains only two decimal places. There is no obvious error with the "amount" value I'm passing.
So I'm stuck.
Here's how I solved my problem.
I discovered that in my PayPal developer account, I could go to the menu Sandbox/Transactions and get more details on transaction attempts.
Through this, I discovered the value I was actually passing for total was "15.25|||"
PayPal was receiving: "total": "15.25|||"
Upon further investigation, at line 57 of the CFC, I found
"total"= (NumberFormat(arguments.amount, "9.99")) & "|||",
I removed the: & "|||"
And got a successful response from PayPal's sandbox.

Summing Only Visible Rows in SSRS

I'm trying to sum only the visible rows for a report and I know the format is:
=Sum( iif( <use the condition of the Visibility.Hidden expression>, 0, Fields!A.Value))
In my report, I've set row visbility to:
=IIF(CInt(Fields!EM_ET.Value)=1 Or CInt(Fields!EM_ET.Value)= 2,True,False)
Not exactly sure what I'm missing, but when I use this as an expression:
=Sum(IIF(CInt(Fields!EM_ET.Value)=1 Or CInt(Fields!EM_ET.Value)= 2,True,False),0,Fields!EM_ET.Value)
I get this following error: Value expression for textrun'FTD1.Paragraph[0].TextRuns[0]' has a scope argument that is not valid for aggregate function.
You are giving the True/False as output to the SUM() from your expression.You need to change your expression as,
=Sum(IIF(CInt(Fields!EM_ET.Value) = 1 Or CInt(Fields!EM_ET.Value)= 2,0,Fields!EM_ET.Value))
Thanks coder of code.
I am getting some error message if i am using '0', so i replaced with nothing it's working. I thought it would be helpful.
=SUM(IIF(ISNOTHING(Fields!value1.Value) OR ISNOTHING(Fields!value2.Value),NOTHING,Fields!value1.Value))
I was having similar issues. I know this question has a marked answer, however it isn't entirely correct.
The following contains the code from the "marked correct" answer:
=Sum(IIF(CInt(Fields!EM_ET.Value) = 1 Or CInt(Fields!EM_ET.Value) = 2,0,Fields!EM_ET.Value))
The following snipit of code contains the code from above, with a slight tweak:
=Sum(IIF(CInt(Fields!EM_ET.Value) = 1 Or CInt(Fields!EM_ET.Value) = 2,NOTHING,Fields!EM_ET.Value))
By changing the "0" to "NOTHING" this will resolve any lingering issues with your formula. The formula I was having issues with was returning "#Error" in the cell that was supposed to return the sum of the visible cells in the column within the row group.
My formula originally looked like this:
=IIF(Sum(Fields!VCBitType.Value) <> 0 OR (Parameters!Details.Value = "Detail"), Sum(IIF((Fields!VCBitType.Value = 0) and (Parameters!Details.Value = "Dangerous"),0,Fields!VC.Value)), "")
I altered my formula after seeing Hari's comment above:
=IIF(SUM(Fields!VCBitType.Value) <> 0 OR (Parameters!Details.Value = "Detail"), SUM(IIF((Fields!VCBitType.Value = 0) and (Parameters!Details.Value = "Dangerous"),NOTHING, Fields!VC.Value)), "")
I wanted to set the cells value to "" (empty) rather than hide the cell entirely or set that cell's value to "0" in my report (due to the fact that not displaying the cell entirely made the report look really funky). Because I did this, using a "0" in my formula conflicted with the value of the cell which was "" (empty), causing the formula to break. The only change I made was to alter "0" to "Nothing", this resolved the issue I was having with the cell's formula.

Crystal Reports If Any Record Meets Condition, Exit Formula

I wish to create a formula that will read each record, and if a certain condition is met then the formula will stop reading records and return a specific label. I have tried the following code and the correct result is displayed at the detail level but not the footer. It appears the "exit for" isn't really working. Thanks for your help!
Current Code (I have placed in the report footer):
shared stringvar label := "";
local numbervar i;
for i := 1 to {#Count_Records} do
(
if ({report_data.return_code}[i] = "defective-exchange"
or {report_data.return_code}[i] = "defective") then
label := "Defective-Exchange Only";
exit for;
);
if label = "" then
label:="Pickup Credit Memo";
label;
To eliminate data, use a record-selection formula:
{report_data.return_code} = "defective-exchange" or {report_data.return_code} = "defective"
To format data, use a formula field:
// {#Return Code}
if {report_data.return_code} = "defective-exchange" or {report_data.return_code} = "defective" then
"Defective-Exchange Only"
else if {report_data.return_code} = "" then
"Pickup Credit Memo"
else
"something else"

Crystal Report Counting

My question is similar to the link.
Crystal Reports - Count Formula
The answer only works when the certain status type is giving to you.
Now I am wondering that what if the status type is not giving to you (You dont know what's inside this filed first), and the type of the status can be varied based what's in {statustype} field.
And I want to be able to list all distinct status type and calculate it's total appearance in the report.
Well its easy if you see it my way, I read that thread which you referenced.
Make different Formulas for all the status types that you may know of, I am pretty sure that they will be maximum 4 or 5. Make formula like
localvar int x;
if(statustype = 'Accepted')
(
x = x++;
)
x;
Or you can put all the formulas to one, using the same if clause but changing the display string, make sure that its a summary field or is placed at the report footer.
localvar int accept;
localvar int reject;
localvar int Pending;
if(statustype = 'Accepted')
(
accept= accept++;
)
else if
(
reject = reject ++;
)
else if
(
Pending = Pending++;
);
"Accepted "+ accept + " Rejected " + reject + " Pending "+ Pending;
Hope this helps,
I figured out that a easy way that we can create a placeholder in main report for subreport. And we can make the manipulation in the subreport