public void testErrorHandlingBad() throws Exception { final URL url = getClass().getResource("Prd-3985.prpt"); final ResourceManager mgr = new ResourceManager(); final MasterReport report = (MasterReport) mgr.createDirectly(url, MasterReport.class).getResource(); report .getReportConfiguration() .setConfigProperty( "org.pentaho.reporting.engine.classic.core.FailOnAttributeExpressionErrors", "true"); final FormulaExpression function = new FormulaExpression(); function.setName("Test"); function.setFormula("=MULTIVALUEQUERY(\"Bad\")"); report .getReportHeader() .setAttributeExpression(AttributeNames.Core.NAMESPACE, AttributeNames.Core.NAME, function); try { DebugReportRunner.createPDF(report); Assert.fail(); } catch (Exception e) { // ignored } }
/** * Creates a new instance of the element. Override this method to return a concrete subclass of * the element. * * @return the newly generated instance of the element. */ public Element createElement() { final Element element = new Element(); applyElementName(element); applyStyle(element.getStyle()); element.setElementType(new LineSparklineType()); if (getContent() != null) { element.setAttribute(AttributeNames.Core.NAMESPACE, AttributeNames.Core.VALUE, getContent()); } if (getFieldname() != null) { element.setAttribute( AttributeNames.Core.NAMESPACE, AttributeNames.Core.FIELD, getFieldname()); } if (getFormula() != null) { final FormulaExpression formulaExpression = new FormulaExpression(); formulaExpression.setFormula(getFormula()); element.setAttributeExpression( AttributeNames.Core.NAMESPACE, AttributeNames.Core.VALUE, formulaExpression); } if (spacing != null) { element.setAttribute( SparklineAttributeNames.NAMESPACE, SparklineAttributeNames.SPACING, spacing); } return element; }
/** * Creates the text field element. * * @return the generated text field element * @see org.pentaho.reporting.engine.classic.core.elementfactory.ElementFactory#createElement() */ public Element createElement() { final Element element = new Element(); applyElementName(element); applyStyle(element.getStyle()); element.setElementType(new TextFieldType()); if (getFieldname() != null) { element.setAttribute( AttributeNames.Core.NAMESPACE, AttributeNames.Core.FIELD, getFieldname()); } if (getFormula() != null) { final FormulaExpression formulaExpression = new FormulaExpression(); formulaExpression.setFormula(getFormula()); element.setAttributeExpression( AttributeNames.Core.NAMESPACE, AttributeNames.Core.VALUE, formulaExpression); } element.setAttribute( AttributeNames.Core.NAMESPACE, AttributeNames.Core.NULL_VALUE, getNullString()); return element; }
/** * Returns the object for this element or null, if this element does not create an object. * * @return the object. * @throws SAXException if an parser error occured. */ public Expression getFormula() throws SAXException { if (propertyReadHandler == null) { return null; } String s = propertyReadHandler.getResult(); if (StringUtils.isEmpty(s, true) == false) { final FormulaExpression formulaExpression = new FormulaExpression(); if (s.startsWith("report:")) { s = "=" + s.substring("report:".length()).trim(); } else { s = s.trim(); } if (s.endsWith(";")) { s = s.substring(0, s.length() - 1); } formulaExpression.setFormula(s); return formulaExpression; } return null; }