I am using an XML to render a report. Each row should display a single amount per case; for example:
row 1 .---> validation number caseid payee name check amount check no
row 2 .---> 13331 1234 john_name 120 blank
row 3 .---> 13332 1234 john_name 240 blank
row 4 .---> 13333 1234 john_name 340 blank
row 5 .---> 13334 2222 Mark_name 10 blank
row 6 .---> 13335 2222 Mark_name 20 blank
row 7 .---> 13336 2222 Mark_name 30 blank
But it is display wrongly like this:
The Expression code looks like:
a!localVariables( local!data: reject( fn!isnull, a!forEach( ri!reportData, if( rule!CheckIsNullOrEmpty(fv!item.paymentRefValidationNo), if( index(fv!item,"checkPrtSeq",{})=1, fv!item, null ), {} ) ) ), local!xml: { "<report>" & "<name>" & cons!RPT_NAME_003_op_CHECK_REGISTER & "</name>" & "<runDate>" & todate(local(now(), "America/Chicago")) & "</runDate>" & "<runTime>" & totime(local(now(), "America/Chicago")) & if( isindaylightsavingtime(todate(now()), "America/Chicago"), " CDT", " CST" ) & "</runTime>" & "<totalField>" & "Total: " & dollar( if( rule!APN_isBlank(local!data), 0, sum(index(local!data, "paymentAmt", {})) ) ) & "</totalField>" & "<reportDate>" & tostring(todate(ri!reportDate)) & "</reportDate>" & "<columnOneName>" & "Batch No" & "</columnOneName>" & "<columnTwoName>" & "Validation Number" & "</columnTwoName>" & "<columnThreeName>" & cons!DRO_CSO_FIELD_HEADER_CASE_ID & "</columnThreeName>" & "<columnFourName>" & "Payee Name" & "</columnFourName>" & "<columnFiveName>" & "Check Amount" & "</columnFiveName>" & "<columnSixName>" & cons!DRO_CSO_FIELD_HEADER_CHECK_PRT_NO & "</columnSixName>" & "<columnSevenName>" & " " & "</columnSevenName>" & "<columnEightName>" & " " & "</columnEightName>" & "<columnNineName>" & " " & "</columnNineName>" & "<columnTenName>" & " " & "</columnTenName>" & "<columnElevenName>" & " " & "</columnElevenName>" & "<columnTwelveName>" & " " & "</columnTwelveName>" & "<columnThirteenName>" & " " & "</columnThirteenName>" & "<columnFourteenName>" & " " & "</columnFourteenName>" & "<columnFifteenName>" & " " & "</columnFifteenName>" & "<columnSixteenName>" & " " & "</columnSixteenName>" & a!forEach( items: local!data, expression: { "<row colOneData='" & index(fv!item, "batchNo", {}) & "' " & "colTwoData='" & index(fv!item, "paymentValidationNo", {}) & "' " & "colThreeData='" & index(fv!item, "caseId", {}) & "' " & "colFourData='" & stripwith(index(fv!item, "payeeName", {}), "'") & "' " & "colFiveData='" & if( rule!APN_isBlank(index(local!data, "paymentAmt", {})), " ", dollar(index(local!data, "paymentAmt", {})) ) & "' " & "colSixData='" & index(local!data, "checkPrtNo", {}) & "' " & "colSevenData='" & " " & "' " & "colEightData='" & " " & "' " & "colNineData='" & " " & "' " & "colTenData='" & " " & "' " & "colElevenData='" & " " & "' " & "colTwelveData='" & " " & "' " & "colThirteenData='" & " " & "' " & "colFourteenData='" & " " & "' " & "colFifteenData='" & " " & "' " & "colSixteenData='" & " " & "'/>" } ) & "</report>" }, local!output: stripwith(tostring(local!xml), ";"), local!output )
Any help will be greatly appreciated.
Thank you.
Discussion posts and replies are publicly visible
I think your line 34 should reference fv!item instead of local!data.
dollar(index(fv!item, "paymentAmt", {}))
I updated it to fv!item; but it seems to be returning the same output from the test rule. I will generate the report and see if it makes any difference.
thanks
Same with the local!data references on line 32 and 35, essentially all references within the a!foreach() should reference fv!item, otherwise they are pointing to the entire data set, vs the row being evaluated.