|CrossTab Cell formating [message #1051719]
||Mon, 29 April 2013 06:35
| Harry Virtanen
Registered: April 2013
I have report with several graphs and one crosstab. The layout of the crosstab is as follows:
The data is produced by a database query and all computation is done (in Java) before pushing the data to the report.
Everything works okay, for the exception of the rows (and a specific columns) containing percentages. All data, including percentage is pushed in the double datatype from Java, i.e. 0.055 for 5.5%. The report design data type is decimal.
The requirement of the rows and columns containing percentages is that its shows the %-sign and if value is positive the color of the cell/number should be green, if negative then red.
I have managed to get the colors on the correct row and column cells containing the percentages. However I am unable to get the % sign into those same cells.
In the crosstab script I have:
function onCreateCell( cellInst, reportContext )
if( cellInst.getDataValue("columnName")=="ComparedToPreviousMonth" ||
if(cellInst.getDataValue("data_TypeGroup/dataType_columns/columnName") < 0)
if(cellInst.getDataValue("data_TypeGroup/dataType_columns/columnName") > 0)
This is how a small part of the rows for a DataFrom object with 5 dataTypes looks like without setNumberFormat in the if-block:
Clearly, the if-block works correctly and colors the specified row and column. But when I add ( remove the comment) the setNumberFormat into that same if-block, we get a contradiction and it looks like this:
How is it possible that an if-block colors correctly the specified rows and a column, but formats the percentages all over??
As Mr. S.Holmes would say: "....what ever remains must be the truth!" In my opinion, the setNumberFormat, when first set to a single cell, appears to be globally set to all cells!!
Any ideas? Should I redesign the crosstab? All data is pushed into the design from java-code with db queries. The crosstab should only show the data and format it!
Powered by FUDForum
. Page generated in 0.07905 seconds