Jasper Report вопрос подотчета - PullRequest
1 голос
/ 26 февраля 2011

У меня есть основной отчет, который содержит много информации, и мне нужно добавить дополнительный отчет. Когда я запускаю JUnit Test of Master Report, выдается исключение:

net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: The subreport is placed on a non-splitting band, but it does not have a rewindable data source.
    at net.sf.jasperreports.components.table.fill.FillTable.rewind(FillTable.java:392)
    at net.sf.jasperreports.engine.fill.JRFillComponentElement.rewind(JRFillComponentElement.java:171)
    at net.sf.jasperreports.engine.fill.JRFillElementContainer.rewind(JRFillElementContainer.java:651)
    at net.sf.jasperreports.engine.fill.JRFillBand.refill(JRFillBand.java:355)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2044)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:760)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:270)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:946)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:864)
    at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
    at ar.com.qyttrade.jasperreports.ExtraMainReportTest.extraReportTest(ExtraMainReportTest.java:95)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
    at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: net.sf.jasperreports.engine.JRException: The subreport is placed on a non-splitting band, but it does not have a rewindable data source.
    at net.sf.jasperreports.engine.fill.JRFillSubreport.rewind(JRFillSubreport.java:782)
    at net.sf.jasperreports.components.table.fill.FillTable.rewind(FillTable.java:388)
    ... 35 more

Я не знаю, какова цель этой ошибки. Я пробовал каждую комбинацию с «Тип разделения» и «Разрешить разделение» в Detail Band, но это не работает. Мне нужно знать, почему это ошибка. Другая проблема заключается в том, что в подотчете у меня есть таблица с собственным источником данных, как установить параметры для основного отчета и как в подотчете следует загружать этот источник данных?

Ответы [ 3 ]

2 голосов
/ 26 февраля 2011

Было бы намного проще разрабатывать и создавать отчеты Jasper с iReport .iReport визуально показывает расположение ваших групп и компонентов, так что вы практически никогда не можете застрять в ситуациях, когда возникают проблемыВы можете перетащить из панели инструментов.Это очень похоже на использование Матисса для Swing.

2 голосов
/ 26 февраля 2011

Возможно, вы захотите проверить, нет ли вообще никаких перекрывающихся элементов. Джаспер может быть очень привередливым, когда элементы перекрываются даже на один пиксель. Когда я сталкиваюсь с подобными ситуациями, я обычно сохраняю свой отчет и начинаю удалять по одному элементу за раз.

Из вашего поста не было ясно, но оба отчета работают независимо, если они запускаются без вложенного отчета в основном отчете. Это первое, что я бы опробовал. Мое предположение о том, что может происходить здесь, в частности, заключается в том, что у вас есть небольшая область, где подотчет помещается в основной отчет. Затем основной отчет просит подотчет разделить по страницам, что подотчет не может сделать. Если это так, переведите подотчет в состояние, в котором вы можете проверить его самостоятельно и разбить его по разным областям на странице.

1 голос
/ 13 июля 2011

Это происходит только тогда, когда вы поместили свой подотчет в заголовок или заголовок страницы.Так что разместите свой подотчет за исключением вышеупомянутой полосы, потому что эти полосы не являются зацикленными.

...