Package net.sf.jasperreports.engine.fill
Class JRFillElement
java.lang.Object
net.sf.jasperreports.engine.fill.JRFillElement
- All Implemented Interfaces:
Cloneable,DynamicPropertiesHolder,JRFillCloneable,JRChild,JRCloneable,JRCommonElement,JRElement,JRIdentifiable,JRPropertiesHolder,JRStyleContainer,JRStyleSetter,JRVisitable
- Direct Known Subclasses:
JRFillBreak,JRFillChart,JRFillComponentElement,JRFillCrosstab,JRFillFrame,JRFillGenericElement,JRFillGraphicElement,JRFillSubreport,JRFillTextElement
public abstract class JRFillElement
extends Object
implements JRElement, JRFillCloneable, JRStyleSetter, DynamicPropertiesHolder
- Author:
- Teodor Danciu (teodord@users.sourceforge.net)
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected JRFillBandprotected JRFillElementContainerprotected byteprotected JRStyleprotected Booleanprotected JRDefaultStyleProviderprotected Map<JREvaluationTime, net.sf.jasperreports.engine.fill.JRFillElement.DelayedEvaluations> protected JRPropertiesMapprotected JRFillElementGroupstatic final Stringprotected JRFillExpressionEvaluatorprotected JRStyleprotected FillContainerContextprotected JRBaseFillerprotected booleanprotected JRStyleprotected JRPropertiesMapprotected JROriginProviderprotected JRElementprotected PrintElementOriginatorprotected Stringprotected List<JRPropertyExpression> protected JRStyleprotected JRPropertiesMapprotected JRPropertiesMapprotected List<StyleProvider> protected Map<JRStyle, JRTemplateElement> Fields inherited from interface net.sf.jasperreports.engine.JRElement
PROPERTY_ELEMENT_TEMPLATE_POPULATE_STYLE -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedJRFillElement(JRBaseFiller filler, JRElement element, JRFillObjectFactory factory) private JRElement topElementInGroup; private JRElement bottomElementInGroup; /**protectedJRFillElement(JRFillElement element, JRFillCloneFactory factory) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddDependantElement(JRFillElement element) protected voidaddDynamicProperty(String name, JRExpression expression) clone()clone(JRElementGroup parentGroup) clone(JRElementGroup parentGroup, int y) protected voidprotected voidcollectDelayedEvaluations(JRExpression expression) protected voidcollectDelayedEvaluations(JRStyle style) protected voidprotected voidprotected abstract JRTemplateElementprotected voiddelayedEvaluate(JRRecordedValuesPrintElement printElement, JREvaluationTime evaluationTime, byte evaluation) protected booleanprotected abstract voidevaluate(byte evaluation) final ObjectevaluateExpression(JRExpression expression, byte evaluation) Evaluates an expression.protected voidevaluatePrintWhenExpression(byte evaluation) protected voidevaluateProperties(byte evaluation) protected voidevaluateStyle(byte evaluation) protected abstract JRPrintElementfill()protected JRFillBandgetBand()static IntegergetBookmarkLevel(Object value) protected intprotected intprotected Collection<JRFillElement> Indicates the logical group that the element belongs to.protected JROriginprotected JRTemplateElementprotected JRPropertiesMapprotected EvaluationTimeEnumprotected JRFillFieldprotected JRElement[]intprotected JRStylegetKey()Returns the string value that uniquely identifies the element.getMode()Returns the element transparency mode.protected JRElementReturns the parent properties holder, whose properties are used as defaults for this object.Returns the position type for the elementintGets the expression that is evaluated in order to decide if the element should be displayed.Returns the group for which an element with a printRepeatedValues attribute set to true will be redisplayed even if the value has not changed.Returns this object's properties map.Returns the list of dynamic/expression-based properties for this report element.protected intintIndicates the stretch type for the elementgetStyle()Returns this object's style.Gets the expression that is evaluated in order to obtain the runtime style name to be used for the element.Returns the name of an external style which is to be used by this object.protected StyleResolverprotected JRTemplateElementgetTemplate(JRStyle style) protected TimeZonegetUUID()protected JRFillVariablegetVariable(String variableName) intgetWidth()intgetX()Gets the the section relative horizontal offset of the element top left corner.intgetY()Gets the the section relative vertical offset of the element top left corner.booleanbooleanhasDynamicProperty(String name) booleanChecks whether the object has any properties.protected voidinitDelayedEvaluationPrint(JRRecordedValuesPrintElement printElement) protected voidprotected voidbooleanprotected booleanprotected booleanprotected booleanprotected booleanbooleanReturns true if an element with a printRepeatedValues attribute set to true will be redisplayed for every new page or column that is not an overflow from a previous page or column.booleanSpecifies if the element value will be printed for every iteration, even if its value has not changed.booleanIf this is set to true, the element will be reprinted on the next page if the band does not fit in the current page.protected booleanprotected booleanbooleanReturns true if the remaining blank space appearing when the value is not printed will be removed.protected booleanbooleanprotected booleanDecides whether the value for this element is repeating.protected voidprotected voidperformDelayedEvaluation(JRPrintElement element, byte evaluation) protected booleanprepare(int availableHeight, boolean isOverflow, boolean isOverflowAllowed) protected voidregisterTemplate(JRStyle style, JRTemplateElement template) protected voidreset()protected abstract voidresolveElement(JRPrintElement element, byte evaluation) Resolves an element.protected voidresolveElement(JRPrintElement element, byte evaluation, JREvaluationTime evaluationTime) Resolves an element.protected abstract voidrewind()voidsetAlreadyPrinted(boolean isAlreadyPrinted) voidsetBackcolor(Color backcolor) protected voidsetBand(JRFillBand band) protected voidsetCollapsedHeightAbove(int collapsedHeightAbove) protected voidsetCollapsedHeightBelow(int collapsedHeightBelow) voidsetConditionalStylesContainer(JRFillElementContainer conditionalStylesContainer) protected voidsetCurrentEvaluation(byte evaluation) protected voidsetExpressionEvaluator(JRFillExpressionEvaluator expressionEvaluator) voidsetForecolor(Color forecolor) voidsetHeight(int height) voidSets the element transparency mode.protected voidsetOriginProvider(JROriginProvider originProvider) voidsetPositionType(PositionTypeEnum positionType) Sets the position type for the element.protected voidsetPrepareHeight(int prepareHeight) Element height is calculated in two phases.voidsetPrintInFirstWholeBand(boolean isPrint) Specifies whether an element with a printRepeatedValues attribute set to true should be redisplayed for every new page or column that is not an overflow from a previous page or column.voidsetPrintRepeatedValues(boolean isPrintRepeatedValues) voidsetPrintWhenDetailOverflows(boolean isPrint) If this is set to true, the element will be reprinted on the next page if the band does not fit in the current page.protected voidsetPrintWhenExpressionNull(boolean isPrintWhenExpressionNull) protected voidsetPrintWhenTrue(boolean isPrintWhenTrue) protected voidsetRelativeY(int relativeY) voidsetRemoveLineWhenBlank(boolean isRemoveLine) Specifies whether the remaining blank space appearing when the value is not printed will be removed.protected voidsetReprinted(boolean isReprinted) protected final voidsetShrinkable(boolean shrinkable) Indicates whether an element is shrinkable.protected voidsetStretchHeight(int stretchHeight) voidsetStretchType(StretchTypeEnum stretchType) Specifies how the engine should treat a missing image.voidSet the style on the object.voidsetStyleNameReference(String name) Set the name of an external style that is to be used by the object.protected voidsetToPrint(boolean isToPrint) protected voidsetValueRepeating(boolean isValueRepeating) Sets the repeating flag for this element.voidsetWidth(int width) voidsetX(int x) Sets the the section relative horizontal offset of the element top left corner.voidsetY(int y) protected booleanstretchElement(int containerStretch) protected booleanstretchElementToContainer(int containerStretch) protected booleanprotected booleanstretchElementToHeight(int stretchHeight) This method returns a boolean signaling if any stretch change occurred.protected booleanprotected voidtransferProperties(JRTemplateElement template) protected voidtransferProperties(JRPrintElement element) Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.sf.jasperreports.engine.JRElement
collectExpressionsMethods inherited from interface net.sf.jasperreports.engine.fill.JRFillCloneable
createCloneMethods inherited from interface net.sf.jasperreports.engine.JRStyleContainer
getStyleNameMethods inherited from interface net.sf.jasperreports.engine.JRVisitable
visit
-
Field Details
-
EXCEPTION_MESSAGE_KEY_INVALID_BOOKMARK_LEVEL
- See Also:
-
parent
-
propertyExpressions
-
dynamicTransferProperties
-
providerStyle
-
templates
-
styleProviders
-
filler
-
expressionEvaluator
-
defaultStyleProvider
-
printWhenGroupChanges
-
elementGroup
-
band
-
originProvider
-
printElementOriginator
-
currentEvaluation
protected byte currentEvaluation -
delayedEvaluationsMap
protected Map<JREvaluationTime,net.sf.jasperreports.engine.fill.JRFillElement.DelayedEvaluations> delayedEvaluationsMap -
conditionalStylesContainer
-
fillContainerContext
-
initStyle
-
exprStyle
-
currentStyle
-
staticProperties
-
staticTransferProperties
-
dynamicProperties
-
mergedProperties
-
hasDynamicPopulateTemplateStyle
protected boolean hasDynamicPopulateTemplateStyle -
defaultPopulateTemplateStyle
-
-
Constructor Details
-
JRFillElement
private JRElement topElementInGroup; private JRElement bottomElementInGroup; /** -
JRFillElement
-
-
Method Details
-
getDefaultStyleProvider
- Specified by:
getDefaultStyleProviderin interfaceJRStyleContainer
-
getStyleResolver
-
getUUID
- Specified by:
getUUIDin interfaceJRIdentifiable
-
getKey
Description copied from interface:JRCommonElementReturns the string value that uniquely identifies the element.- Specified by:
getKeyin interfaceJRCommonElement
-
getPositionType
Description copied from interface:JRElementReturns the position type for the element- Specified by:
getPositionTypein interfaceJRElement- Returns:
- the position type
-
setPositionType
Description copied from interface:JRElementSets the position type for the element.- Specified by:
setPositionTypein interfaceJRElement- Parameters:
positionType- the position type
-
getStretchType
Description copied from interface:JRElementIndicates the stretch type for the element- Specified by:
getStretchTypein interfaceJRElement- Returns:
- a value representing one of the stretch type constants in
StretchTypeEnum
-
setStretchType
Description copied from interface:JRElementSpecifies how the engine should treat a missing image.- Specified by:
setStretchTypein interfaceJRElement- Parameters:
stretchType- a value representing one of the stretch type constants inStretchTypeEnum
-
isPrintRepeatedValues
public boolean isPrintRepeatedValues()Description copied from interface:JRElementSpecifies if the element value will be printed for every iteration, even if its value has not changed.- Specified by:
isPrintRepeatedValuesin interfaceJRElement- See Also:
-
setPrintRepeatedValues
public void setPrintRepeatedValues(boolean isPrintRepeatedValues) - Specified by:
setPrintRepeatedValuesin interfaceJRElement
-
getMode
Description copied from interface:JRCommonElementReturns the element transparency mode. The default value depends on the type of the report element. Graphic elements like rectangles and lines are opaque by default, but the images are transparent. Both static texts and text fields are transparent by default, and so are the subreport elements.- Specified by:
getModein interfaceJRCommonElement
-
getOwnMode
- Specified by:
getOwnModein interfaceJRCommonElement
-
setMode
Description copied from interface:JRCommonElementSets the element transparency mode.- Specified by:
setModein interfaceJRCommonElement
-
getX
public int getX()Description copied from interface:JRElementGets the the section relative horizontal offset of the element top left corner. -
setX
public void setX(int x) Description copied from interface:JRElementSets the the section relative horizontal offset of the element top left corner. -
setY
public void setY(int y) -
getY
public int getY()Description copied from interface:JRElementGets the the section relative vertical offset of the element top left corner. -
getWidth
public int getWidth()- Specified by:
getWidthin interfaceJRCommonElement
-
setWidth
public void setWidth(int width) -
setHeight
public void setHeight(int height) -
getHeight
public int getHeight()- Specified by:
getHeightin interfaceJRCommonElement
-
isRemoveLineWhenBlank
public boolean isRemoveLineWhenBlank()Description copied from interface:JRElementReturns true if the remaining blank space appearing when the value is not printed will be removed. Under certain circumstances (the element has an empty string as its value or contains a repeated value that is supressed) the space reserved for the current element remains empty. If this method returns true, it means the engine will try to suppress the blank line, but will only succeed if no other elements occupy the same vertical space.- Specified by:
isRemoveLineWhenBlankin interfaceJRElement
-
setRemoveLineWhenBlank
public void setRemoveLineWhenBlank(boolean isRemoveLine) Description copied from interface:JRElementSpecifies whether the remaining blank space appearing when the value is not printed will be removed. Under certain circumstances (the element has an empty string as its value or contains a repeated value that is supressed) the space reserved for the current element remains empty. If the parameter is set to true, it means the engine will try to suppress the blank line, but will only succeed if no other elements occupy the same vertical space.- Specified by:
setRemoveLineWhenBlankin interfaceJRElement
-
isPrintInFirstWholeBand
public boolean isPrintInFirstWholeBand()Description copied from interface:JRElementReturns true if an element with a printRepeatedValues attribute set to true will be redisplayed for every new page or column that is not an overflow from a previous page or column.- Specified by:
isPrintInFirstWholeBandin interfaceJRElement- See Also:
-
setPrintInFirstWholeBand
public void setPrintInFirstWholeBand(boolean isPrint) Description copied from interface:JRElementSpecifies whether an element with a printRepeatedValues attribute set to true should be redisplayed for every new page or column that is not an overflow from a previous page or column.- Specified by:
setPrintInFirstWholeBandin interfaceJRElement- See Also:
-
isPrintWhenDetailOverflows
public boolean isPrintWhenDetailOverflows()Description copied from interface:JRElementIf this is set to true, the element will be reprinted on the next page if the band does not fit in the current page. Actually if there is at least one element with this attribute, the band is redisplayed from the beginning, except those elements that fitted in the current page and have isPrintWhenDetailOverflow set to false.- Specified by:
isPrintWhenDetailOverflowsin interfaceJRElement
-
setPrintWhenDetailOverflows
public void setPrintWhenDetailOverflows(boolean isPrint) Description copied from interface:JRElementIf this is set to true, the element will be reprinted on the next page if the band does not fit in the current page. Actually if there is at least one element with this attribute, the band is redisplayed from the beginning, except those elements that fitted in the current page and have isPrintWhenDetailOverflow set to false.- Specified by:
setPrintWhenDetailOverflowsin interfaceJRElement
-
getForecolor
- Specified by:
getForecolorin interfaceJRCommonElement
-
getOwnForecolor
- Specified by:
getOwnForecolorin interfaceJRCommonElement
-
setForecolor
- Specified by:
setForecolorin interfaceJRCommonElement
-
getBackcolor
- Specified by:
getBackcolorin interfaceJRCommonElement
-
getOwnBackcolor
- Specified by:
getOwnBackcolorin interfaceJRCommonElement
-
setBackcolor
- Specified by:
setBackcolorin interfaceJRCommonElement
-
getStyleExpression
Description copied from interface:JRElementGets the expression that is evaluated in order to obtain the runtime style name to be used for the element. When used, this expression takes precedence over theJRStyleContainer.getStyle()orJRStyleContainer.getStyleNameReference().- Specified by:
getStyleExpressionin interfaceJRElement
-
getPrintWhenExpression
Description copied from interface:JRElementGets the expression that is evaluated in order to decide if the element should be displayed. This expression always returns a boolean value.- Specified by:
getPrintWhenExpressionin interfaceJRElement
-
getPrintWhenGroupChanges
Description copied from interface:JRElementReturns the group for which an element with a printRepeatedValues attribute set to true will be redisplayed even if the value has not changed.- Specified by:
getPrintWhenGroupChangesin interfaceJRElement- See Also:
-
getElementGroup
Description copied from interface:JRElementIndicates the logical group that the element belongs to. More elements can be grouped in order to make some of them stretch relative to the height of their parent group.- Specified by:
getElementGroupin interfaceJRElement- See Also:
-
isPrintWhenExpressionNull
protected boolean isPrintWhenExpressionNull() -
setPrintWhenExpressionNull
protected void setPrintWhenExpressionNull(boolean isPrintWhenExpressionNull) -
isPrintWhenTrue
protected boolean isPrintWhenTrue() -
setPrintWhenTrue
protected void setPrintWhenTrue(boolean isPrintWhenTrue) -
isToPrint
public boolean isToPrint() -
setToPrint
protected void setToPrint(boolean isToPrint) -
isReprinted
protected boolean isReprinted() -
setReprinted
protected void setReprinted(boolean isReprinted) -
isAlreadyPrinted
public boolean isAlreadyPrinted() -
setAlreadyPrinted
public void setAlreadyPrinted(boolean isAlreadyPrinted) -
getGroupElements
-
getDependantElements
-
addDependantElement
-
getRelativeY
protected int getRelativeY() -
setRelativeY
protected void setRelativeY(int relativeY) -
getCollapsedHeightAbove
protected int getCollapsedHeightAbove() -
setCollapsedHeightAbove
protected void setCollapsedHeightAbove(int collapsedHeightAbove) -
getCollapsedHeightBelow
protected int getCollapsedHeightBelow() -
setCollapsedHeightBelow
protected void setCollapsedHeightBelow(int collapsedHeightBelow) -
getStretchHeight
public int getStretchHeight() -
setStretchHeight
protected void setStretchHeight(int stretchHeight) -
getPrepareHeight
public int getPrepareHeight() -
setPrepareHeight
protected void setPrepareHeight(int prepareHeight) Element height is calculated in two phases. First, the element stretches on its own during prepare, to accommodate all its content. This is the natural stretch and we keep track of the calculated height in prepareHeight. Secondly, the element stretches further in accordance with its stretchType property. This forced stretch occurs at a later time and the amount of stretch is kept in stretchHeight. -
getBand
-
setBand
-
initStyleProviders
protected void initStyleProviders() -
reset
protected void reset() -
setCurrentEvaluation
protected void setCurrentEvaluation(byte evaluation) -
evaluate
- Throws:
JRException
-
evaluateStyle
- Throws:
JRException
-
getTimeZone
-
evaluatePrintWhenExpression
- Throws:
JRException
-
rewind
- Throws:
JRException
-
fill
- Throws:
JRException
-
getElementTemplate
-
createElementTemplate
-
toPopulateTemplateStyle
protected boolean toPopulateTemplateStyle() -
prepare
protected boolean prepare(int availableHeight, boolean isOverflow, boolean isOverflowAllowed) throws JRException - Throws:
JRException
-
stretchElement
protected boolean stretchElement(int containerStretch) -
stretchElementToContainer
protected boolean stretchElementToContainer(int containerStretch) -
stretchElementToElementGroup
protected boolean stretchElementToElementGroup() -
stretchElementToHeight
protected boolean stretchElementToHeight(int stretchHeight) This method returns a boolean signaling if any stretch change occurred. It does not say which amount of stretch was applied, but that is OK, because the only place where this is checked is during frame cascading stretch, where the stretchHeight field of the frame (set here) is used directly. -
moveDependantElements
protected void moveDependantElements() -
resolveElement
Resolves an element.- Parameters:
element- the elementevaluation- the evaluation type- Throws:
JRException
-
performDelayedEvaluation
- Throws:
JRException
-
delayedEvaluationUpdatesTemplate
protected boolean delayedEvaluationUpdatesTemplate() -
evaluateExpression
Evaluates an expression.- Parameters:
expression- the expressionevaluation- the evaluation type- Returns:
- the evaluation result
- Throws:
JRException
-
isValueRepeating
protected boolean isValueRepeating()Decides whether the value for this element is repeating.Dynamic elements should call
setValueRepeating(boolean)onevaluate(byte). Static elements don't have to do anything, this method will returntrueby default.- Returns:
- whether the value for this element is repeating
- See Also:
-
setValueRepeating
protected void setValueRepeating(boolean isValueRepeating) Sets the repeating flag for this element.This method should be called by dynamic elements on
evaluate(byte).- Parameters:
isValueRepeating- whether the value of the element is repeating- See Also:
-
getVariable
-
getField
-
getEvaluationTime
-
resolveElement
protected void resolveElement(JRPrintElement element, byte evaluation, JREvaluationTime evaluationTime) throws JRException Resolves an element.- Parameters:
element- the elementevaluation- the evaluation typeevaluationTime- the current evaluation time- Throws:
JRException
-
initDelayedEvaluations
protected void initDelayedEvaluations() -
collectDelayedEvaluations
protected void collectDelayedEvaluations() -
collectStyleDelayedEvaluations
protected void collectStyleDelayedEvaluations() -
collectDelayedEvaluations
-
collectDelayedEvaluations
-
collectStyleProviderDelayedEvaluations
protected void collectStyleProviderDelayedEvaluations() -
initDelayedEvaluationPrint
protected void initDelayedEvaluationPrint(JRRecordedValuesPrintElement printElement) throws JRException - Throws:
JRException
-
delayedEvaluate
protected void delayedEvaluate(JRRecordedValuesPrintElement printElement, JREvaluationTime evaluationTime, byte evaluation) throws JRException - Throws:
JRException
-
setConditionalStylesContainer
-
getConditionalStylesContainer
-
getStyle
Description copied from interface:JRStyleContainerReturns this object's style.- Specified by:
getStylein interfaceJRStyleContainer- Returns:
- this object's style
-
getTemplate
-
registerTemplate
-
setShrinkable
protected final void setShrinkable(boolean shrinkable) Indicates whether an element is shrinkable.This flag is only effective when
isRemoveLineWhenBlankis also set.- Parameters:
shrinkable- whether the element is shrinkable
-
isEvaluateNow
protected boolean isEvaluateNow() -
isAutoEvaluateNow
protected boolean isAutoEvaluateNow() -
isEvaluateAuto
protected boolean isEvaluateAuto() -
getStyleNameReference
Description copied from interface:JRStyleContainerReturns the name of an external style which is to be used by this object. External styles are defined intemplatesand are resolved at fill time. This attribute is only effective if no direct style (as returned bygetStyle()is specified for this object.- Specified by:
getStyleNameReferencein interfaceJRStyleContainer- Returns:
- the name of an external style
-
setStyle
Description copied from interface:JRStyleSetterSet the style on the object. In some cases, this method is invoked after the object has requested its style to be set.- Specified by:
setStylein interfaceJRStyleSetter- Parameters:
style- the style to be used by the object
-
setStyleNameReference
Description copied from interface:JRStyleSetterSet the name of an external style that is to be used by the object.- Specified by:
setStyleNameReferencein interfaceJRStyleSetter- Parameters:
name- the name of an external style
-
clone
- Specified by:
clonein interfaceJRCloneable- Overrides:
clonein classObject
-
clone
-
clone
-
hasProperties
public boolean hasProperties()Description copied from interface:JRPropertiesHolderChecks whether the object has any properties.- Specified by:
hasPropertiesin interfaceJRPropertiesHolder- Returns:
- whether the object has any properties
-
getPropertiesMap
Description copied from interface:JRPropertiesHolderReturns this object's properties map.- Specified by:
getPropertiesMapin interfaceJRPropertiesHolder- Returns:
- this object's properties map
-
getParentProperties
Description copied from interface:JRPropertiesHolderReturns the parent properties holder, whose properties are used as defaults for this object.- Specified by:
getParentPropertiesin interfaceJRPropertiesHolder- Returns:
- the parent properties holder, or
nullif no parent
-
getPropertyExpressions
Description copied from interface:JRElementReturns the list of dynamic/expression-based properties for this report element.- Specified by:
getPropertyExpressionsin interfaceJRElement- Returns:
- an array containing the expression-based properties of this report element
-
transferProperties
-
transferProperties
-
getEvaluatedProperties
-
evaluateProperties
- Throws:
JRException
-
setOriginProvider
-
getElementOrigin
-
isDelayedStyleEvaluation
protected boolean isDelayedStyleEvaluation() -
getFiller
-
hasDynamicProperties
public boolean hasDynamicProperties()- Specified by:
hasDynamicPropertiesin interfaceDynamicPropertiesHolder
-
hasDynamicProperty
- Specified by:
hasDynamicPropertyin interfaceDynamicPropertiesHolder
-
getDynamicProperties
- Specified by:
getDynamicPropertiesin interfaceDynamicPropertiesHolder
-
getInitStyle
-
getParent
-
addDynamicProperty
-
setExpressionEvaluator
-
getBookmarkLevel
- Throws:
JRException
-