2014-02-15 7 views
1

Я добавляю класс стиля через JRHtmlExporterParameter.HTML_HEADER при экспорте отчета. В файле jrxml я установил имя стиля для поля как NonPrintable, которое доступно в html header.but, в то время, когда заполнение отчета jasper вызывает следующее исключение.Как применить класс стиля для статического текста?

net.sf.jasperreports.engine.JRRuntimeException: Could not resolve style(s): NonPrintable 
at net.sf.jasperreports.engine.fill.JRFillObjectFactory.checkUnresolvedReferences(JRFillObjectFactory.java:1577) 
at net.sf.jasperreports.engine.fill.JRFillObjectFactory.setStyles(JRFillObjectFactory.java:1504) 
at net.sf.jasperreports.engine.fill.JRBaseFiller.loadStyles(JRBaseFiller.java:1000) 
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:879) 
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:841) 
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:88) 
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:653) 
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:569) 
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:915) 
at com.echain.ireportapp.ReportGenerator.generateHtml(ReportGenerator.java:153) 
at com.echain.ireportapp.ReportGenerator.generateReport(ReportGenerator.java:47) 
at com.echain.ireportapp.IReportForm.generateReport(IReportForm.java:329) 
at com.echain.ireportapp.IReportForm.runMouseClicked(IReportForm.java:66) 
at com.echain.ireportapp.IReportForm.access$2(IReportForm.java:63) 
at com.echain.ireportapp.IReportForm$4.mouseClicked(IReportForm.java:140) 
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:253) 
at java.awt.Component.processMouseEvent(Component.java:6266) 
at javax.swing.JComponent.processMouseEvent(JComponent.java:3255) 
at java.awt.Component.processEvent(Component.java:6028) 
at java.awt.Container.processEvent(Container.java:2041) 
at java.awt.Component.dispatchEventImpl(Component.java:4630) 
at java.awt.Container.dispatchEventImpl(Container.java:2099) 
at java.awt.Component.dispatchEvent(Component.java:4460) 
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574) 
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4247) 
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) 
at java.awt.Container.dispatchEventImpl(Container.java:2085) 
at java.awt.Window.dispatchEventImpl(Window.java:2475) 
at java.awt.Component.dispatchEvent(Component.java:4460) 
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 

Ниже приведен пример моего jrxml

<textField isBlankWhenNull="true" hyperlinkType="LocalAnchor"> 
      <reportElement uuid="b292d262-c6af-46ed-99b7-af6335df205a" key="tfToHide" style="NonPrintable" x="852" y="0" width="100" height="19" forecolor="#192FC5"/> 
      <textElement textAlignment="Right" verticalAlignment="Middle" markup="html"> 
       <font isBold="true"/> 
      </textElement> 
      <textFieldExpression><![CDATA["Bottom"]]></textFieldExpression> 
      <anchorNameExpression><![CDATA["Top"]]></anchorNameExpression> 
      <hyperlinkAnchorExpression><![CDATA["Bottom"]]></hyperlinkAnchorExpression> 
     </textField> 
     <textField isBlankWhenNull="true" hyperlinkType="Reference"> 
      <reportElement uuid="b292d262-c6af-46ed-99b7-af6335df205a" key="tfToHide" style="NonPrintable" x="0" y="0" width="100" height="19" forecolor="#192FC5"/> 
      <textElement textAlignment="Left" verticalAlignment="Middle" markup="html"> 
       <font isBold="true"/> 
      </textElement> 
      <textFieldExpression><![CDATA["Back"]]></textFieldExpression> 
      <hyperlinkReferenceExpression><![CDATA[$F{REQUESTEDURL}]]></hyperlinkReferenceExpression> 
     </textField> 

Ниже настройки экспортер

exporter.setParameter(JRHtmlExporterParameter.HTML_HEADER, "<style type=\"text/css\" media=\"print\">" 
        + ".NonPrintable{display: none;}</style>"); 

Я-то отсутствует в конструкции детали/экспорта части? любезно предложите мне получить результат.

ответ

2

добавить следующее свойство для каждого поля, которое необходимо установить класс стиля значения

net.sf.jasperreports.export.html.class 

для данного ключом является именем вашего класса стиля. В приведенной выше проблеме я упомянул название класса как «NonPrintable». поэтому значение для вышеуказанного ключа составляет NonPrintable

enter image description here

Смежные вопросы