What I was recommending was actually bypassing the printWhenExpression. Please review the code below and see if it works. There isn't anything wrong with printWhenExpression, but because of your mentioning your beginning with this, I meant to give you a string to replace your existing string with. printWhenExpression needs to return evaluate to true/false, and is like a switch that enables printing or not printing. What I gave to you always prints, just it prints nothing if the result is 0 or greater. I hope this helps. Cheers, CHgsd Code: <variable name="STK_RTOT" class="java.lang.String" resetType="Group" incrementType="Group" incrementGroup="SOHNUM_0" resetGroup="ITMREF_0" calculation="Sum"> <variableExpression><![CDATA[($F{TOTSTK} - $V{STK_CNT} < 0)?$F{TOTSTK} - $V{STK_CNT}:""]]></variableExpression> <initialValueExpression><![CDATA[0]]></initialValueExpression> </variable>