powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Jasper subreport
46 сообщений из 46, показаны все 2 страниц
Jasper subreport
    #39575691
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть такое
главный репорт
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.5.0.final using JasperReports Library version 6.5.0  -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="xx" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="b6add32f-713c-4725-8f91-50fd892162b4">
	<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
	<queryString>
		<![CDATA[]]>
	</queryString>
	<field name="title1" class="java.lang.String"/>
	<background>
		<band splitType="Stretch"/>
	</background>
	<title>
		<band height="79" splitType="Stretch">
			<subreport>
				<reportElement x="200" y="12" width="200" height="52" uuid="5f23ad38-c91d-4ea4-b8b3-335c3924efe5"/>
				<dataSourceExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}.get( "subreportDatasetName" )]]></dataSourceExpression>
				<subreportExpression><![CDATA["sub1.jasper"]]></subreportExpression>
			</subreport>
		</band>
	</title>
	<pageHeader>
		<band height="42" splitType="Stretch"/>
	</pageHeader>
	<columnHeader>
		<band height="61" splitType="Stretch">
			<textField>
				<reportElement x="110" y="8" width="100" height="30" uuid="04324698-8e9f-4629-bc7f-8b17dbec788b"/>
				<textFieldExpression><![CDATA[$F{title1}]]></textFieldExpression>
			</textField>
		</band>
	</columnHeader>
	<detail>
		<band height="228" splitType="Stretch"/>
	</detail>



	<columnFooter>
		<band height="45" splitType="Stretch"/>
	</columnFooter>
	<pageFooter>
		<band height="54" splitType="Stretch"/>
	</pageFooter>
	<summary>
		<band height="42" splitType="Stretch"/>
	</summary>
</jasperReport>


subreport
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.5.0.final using JasperReports Library version 6.5.0  -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="sub1" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="fd1d631e-30d5-4323-af6d-36c7f6e70d1f">
	<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
	<queryString>
		<![CDATA[]]>
	</queryString>
	<field name="param" class="java.lang.String"/>
	<field name="user" class="java.lang.String"/>
	<background>
		<band splitType="Stretch"/>
	</background>
	<title>
		<band height="79" splitType="Stretch">
			<textField>
				<reportElement x="120" y="10" width="100" height="30" uuid="2d5ab45f-5baa-49b7-a4a1-cf103da05443">
					<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="1be2fc79-8a4d-4e0f-97ad-d0fd8e1d4cfb"/>
				</reportElement>
				<textFieldExpression><![CDATA[$F{user}]]></textFieldExpression>
			</textField>
		</band>
	</title>
	<pageHeader>
		<band height="35" splitType="Stretch"/>
	</pageHeader>
	<columnHeader>
		<band height="61" splitType="Stretch"/>
	</columnHeader>
	<detail>
		<band height="125" splitType="Stretch">
			<textField>
				<reportElement x="100" y="29" width="100" height="30" uuid="272df033-c047-4075-bc0e-186ca7aebcbb"/>
				<textFieldExpression><![CDATA[$F{param}]]></textFieldExpression>
			</textField>
		</band>
	</detail>
	<columnFooter>
		<band height="45" splitType="Stretch"/>
	</columnFooter>
	<pageFooter>
		<band height="54" splitType="Stretch"/>
	</pageFooter>
	<summary>
		<band height="42" splitType="Stretch"/>
	</summary>
</jasperReport>


делаю так

Код: java
1.
2.
3.
4.
5.
6.
   ResultSet rs1 = proc.getResultSet();
                Map<String, Object> parameters = new HashMap<>();
                parameters.put("subreportDatasetName", rs1);
                proc.getMoreResults();
                ResultSet rs2 = proc.getResultSet();
                JasperFillManager.fillReportToFile(Singleton.getWeb_location() + "report/xx.jasper", parameters, new JRResultSetDataSource(rs2));





старался следовать этому 8494032
но получаю
Caused by: java.lang.ClassCastException: com.mysql.cj.jdbc.result.ResultSetImpl cannot be cast to net.sf.jasperreports.engine.JRDataSource
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:454)
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:345)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:383)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:533)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillTitle(JRVerticalFiller.java:308)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:244)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:99)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:609)
at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:405)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:140)
at net.sf.jasperreports.engine.JasperFillManager.fillToFile(JasperFillManager.java:504)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:888)

на этой строке
Код: java
1.
JasperFillManager.fillReportToFile(Singleton.getWeb_location() + "report/xx.jasper", parameters, new JRResultSetDataSource(rs2));


что не так и как должно быть?
...
Рейтинг: 0 / 0
Jasper subreport
    #39575699
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разобрался
надо так
Код: java
1.
2.
3.
4.
5.
6.
   ResultSet rs1 = proc.getResultSet();
                Map<String, Object> parameters = new HashMap<>();
                parameters.put("subreportDatasetName", new JRResultSetDataSource(rs1));
                proc.getMoreResults();
                ResultSet rs2 = proc.getResultSet();
                JasperFillManager.fillReportToFile(Singleton.getWeb_location() + "report/xx.jasper", parameters, new JRResultSetDataSource(rs2));
...
Рейтинг: 0 / 0
Jasper subreport
    #39575713
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но теперь выдаёт такое
Caused by: net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: Unable to get next record from result set.
at net.sf.jasperreports.engine.fill.JRFillSubreport.prepare(JRFillSubreport.java:878)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:542)
at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:438)
at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:413)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillBandNoOverflow(JRVerticalFiller.java:432)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillPageHeader(JRVerticalFiller.java:393)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:246)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:99)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:609)
at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:405)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:140)
at net.sf.jasperreports.engine.JasperFillManager.fillToFile(JasperFillManager.java:504)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:888)
at ws.pages.Page2.xxx20(Page2.java:55)
... 26 more
Caused by: net.sf.jasperreports.engine.JRException: Unable to get next record from result set.
at net.sf.jasperreports.engine.JRResultSetDataSource.next(JRResultSetDataSource.java:170)
at net.sf.jasperreports.engine.fill.JRFillDataset.advanceDataSource(JRFillDataset.java:1538)
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1387)
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1366)
at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1173)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:97)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:609)
at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:405)
at net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:740)
at net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:59)
at net.sf.jasperreports.engine.fill.AbstractThreadSubreportRunner.run(AbstractThreadSubreportRunner.java:221)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
... 1 more
Caused by: java.sql.SQLException: Operation not allowed after ResultSet closed
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:569)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:537)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:527)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:512)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:480)
at com.mysql.cj.jdbc.result.ResultSetImpl.checkClosed(ResultSetImpl.java:471)
at com.mysql.cj.jdbc.result.ResultSetImpl.next(ResultSetImpl.java:1703)
at net.sf.jasperreports.engine.JRResultSetDataSource.next(JRResultSetDataSource.java:166)
... 13 more

данные из хранимки нормальные
...
Рейтинг: 0 / 0
Jasper subreport
    #39575717
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если сделать так
Код: java
1.
JasperFillManager.fillReportToFile(Singleton.getWeb_location() + "report/xx.jasper", null, new JRResultSetDataSource(rs));


то пдф выведет, но без sabrepot
...
Рейтинг: 0 / 0
Jasper subreport
    #39575742
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяесли сделать так
Код: java
1.
JasperFillManager.fillReportToFile(Singleton.getWeb_location() + "report/xx.jasper", null, new JRResultSetDataSource(rs));


то пдф выведет, но без sabrepot

Вадя

Вопрос: крутой Jasper для отчётов? Или есть другие альтернативы на Ваш взгляд?
...
Рейтинг: 0 / 0
Jasper subreport
    #39575789
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Вообще с subreport'ами в JasperReports постоянно какая-то "засада".
На одном проекте вместо subreports использовали crosstab.
В принципе получалось то что надо.
Единственное "рисование" было как в Excel.
...
Рейтинг: 0 / 0
Jasper subreport
    #39575807
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NeboВопрос: крутой Jasper для отчётов? Или есть другие альтернативы на Ваш взгляд?альтернативы , наверно , есть, но первоначально была задача создать не редактируемый документ.
действительно Jasper достаточно крут, надо только научиться его готовить.

решение нашёл, но возник вопрос - почему так?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
try (Connection con = dataSource.getConnection();
                CallableStatement proc = con.prepareCall("{call report_vote1()}");
                CallableStatement proc1 = con.prepareCall("{call report_vote()}");) {
            ResultSet rs = proc.executeQuery();
            ResultSet rs1 = proc1.executeQuery();

            new File(Singleton.getWeb_location() + "report").mkdir();
            OutputStream output = new FileOutputStream(new File(Singleton.getWeb_location() + "report/xx.pdf"));
            List<JasperPrint> jasperPrintList = new ArrayList<>();
            JRPdfExporter exporter = new JRPdfExporter();
            Map<String, Object> parameters = new HashMap<>();
            parameters.put("subreportDatasetName", new JRResultSetDataSource(rs));

            JasperFillManager.fillReportToFile(Singleton.getWeb_location() + "report/xx.jasper", parameters, new JRResultSetDataSource(rs1));


надо два CallableStatement ..., свой для каждого отчета.
кто может объяснить ?
...
Рейтинг: 0 / 0
Jasper subreport
    #39575809
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulНа одном проекте вместо subreports использовали crosstab.как это готовить?
...
Рейтинг: 0 / 0
Jasper subreport
    #39575822
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmad_nazgulНа одном проекте вместо subreports использовали crosstab.как это готовить?

Ну в принципе не особо сложно.
Главное, что в crosstab
1) Можно задать свой DataSet
2) Можно из главного DataSet передать параметры

Ну а дальше группируем "что" и "как" нам надо.
Причем можем группировать не только по строкам, но и по столбцам.

В общем мы на том проекте почти все отчеты в crosstab-ах делали.
Даже там где это не особо не нужно было :-)

По идее там основную работу можно сделать через wizard.


P.S. Делали в iReport (тогда JasperStudio еще не было).
По мне в iReport с crosstab'ами было чуть попроще работать чем в JasperStudio.
Но скорее всего это просто привычнее.
...
Рейтинг: 0 / 0
Jasper subreport
    #39575838
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulДелали в iReport
Там как в Access))) Всё визуально.
...
Рейтинг: 0 / 0
Jasper subreport
    #39575847
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123mad_nazgulДелали в iReport
Там как в Access))) Всё визуально.+1, "клико-программирование" (:
...
Рейтинг: 0 / 0
Jasper subreport
    #39575849
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в jasperstudio тоже визуально, но для мозахистов есть режим xml
...
Рейтинг: 0 / 0
Jasper subreport
    #39575851
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но вопрос остаётся открытым - почему два отдельных результсета работают , а два , полученных из одной хранимки - нет.
верно ли предположение , что порядок результсетов отправки в jasper один, а их обработка та в другом порядке?
и как тогда сделать клоны результсетов?
...
Рейтинг: 0 / 0
Jasper subreport
    #39575909
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяв jasperstudio тоже визуально, но для мозахистов есть режим xml
Там ещё есть sql запрос, который сам лезет в базу за данными. Но у тя же хранимки.

вадяа два , полученных из одной хранимки - нет.
Тебя предупреждали, что нефиг заниматься извратом.
Одна хранимка - один результат. Один метод - один выходной параметр.
...
Рейтинг: 0 / 0
Jasper subreport
    #39575922
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Тебя предупреждали, что нефиг заниматься извратом.
Одна хранимка - один результат. Один метод - один выходной параметр.

Звучит как
«Один народ, одна страна, одна судьба»
<:o)
...
Рейтинг: 0 / 0
Jasper subreport
    #39575925
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Там ещё есть sql запрос, который сам лезет в базу за данными. Но у тя же хранимки.там можно не только запросы, но и хранимки тоже
Petro123Одна хранимка - один результат. Один метод - один выходной параметр.это ты кидаешь камень в огород оракла и мелкомягких?
mad_nazgulЗвучит как
«Один народ, одна страна, одна судьба»а объяснить причину не судьба?
...
Рейтинг: 0 / 0
Jasper subreport
    #39575940
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяа объяснить причину не судьба?
Потому что у JasperFillManager.fillReportToFile третий параметр - один DataSource а не их коллекция

поэтому такого понятия нет вообще
вадячто порядок результсетов отправки в jasper одинНет порядка у единственного элемента

Если кидать параметрами несколько DataSource
вадяа их обработка та в другом порядке?
то естественно их обработка будет в порядке, который определяется тем как сконструирован отчет
(subreport в title или в summary например)

вадяи как тогда сделать клоны результсетов?
зачем? (ни разу не потребовалось). хочется услышать внятную причину, а не "мне надо"
...
Рейтинг: 0 / 0
Jasper subreport
    #39575947
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulPetro123Тебя предупреждали, что нефиг заниматься извратом.
Одна хранимка - один результат. Один метод - один выходной параметр.

Звучит как
«Один народ, одна страна, одна судьба»
<:o)
)))):Люблю юмор.
В java так. В дельфи и шарпе по другому.
...
Рейтинг: 0 / 0
Jasper subreport
    #39575956
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanBezПотому что у JasperFillManager.fillReportToFile третий параметр - один DataSource а не их коллекцияты не обратил внимание, что один передаётся как третий параметр, а другой как элемент мапы.
sanBezНет порядка у единственного элементатам два разных элемента
sanBezто естественно их обработка будет в порядке, который определяется тем как сконструирован отчет
(subreport в title или в summary например)у меня и идёт на странице сначала сабрепорт
sanBezзачем? (ни разу не потребовалось). хочется услышать внятную причину, а не "мне надо"это просто как попытка понять что на что может влиять.
...
Рейтинг: 0 / 0
Jasper subreport
    #39575963
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что java делает в этом случае
new JRResultSetDataSource(rs)
создаёт новый объект, не привязанный к источнику ничем ? или всё-таки передаёт ссылку на rs дальше?
...
Рейтинг: 0 / 0
Jasper subreport
    #39575981
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяsanBezПотому что у JasperFillManager.fillReportToFile третий параметр - один DataSource а не их коллекцияты не обратил внимание, что один передаётся как третий параметр, а другой как элемент мапы.
Обратил. Но ты почему-то считаешь что у DataSource (третий параметр fillReport) и параметра отчета subreportDatasetName (элемент мапы) есть какой-то порядок.
Два абсолютно несвязанных элемента. Какой у них порядок?
...
Рейтинг: 0 / 0
Jasper subreport
    #39576588
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jasper может вставлять варкод и qrкод
но для этого требуется подключить библиотеки для рантайма.
но вот где их взять? если jasper работает и выводит qr код, значит они у него есть, как определить какой jar нужен для рантайма? методом тыка мне удалось подобрать jar для его внутренних функций,
а как быть с баркодами?
...
Рейтинг: 0 / 0
Jasper subreport
    #39576655
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наподключал кучу библиотек..
выдаёт
Caused by: java.lang.ClassCastException: org.apache.batik.anim.dom.SVGOMDocument cannot be cast to org.apache.batik.dom.svg.SVGOMDocument
at org.apache.batik.bridge.BridgeContext.setDocument(Unknown Source)
at org.apache.batik.bridge.GVTBuilder.build(Unknown Source)
at net.sf.jasperreports.renderers.AbstractSvgDataToGraphics2DRenderer.getRootNode(AbstractSvgDataToGraphics2DRenderer.java:173)
at net.sf.jasperreports.renderers.AbstractSvgDataToGraphics2DRenderer.getDimension(AbstractSvgDataToGraphics2DRenderer.java:122)
at net.sf.jasperreports.engine.export.JRPdfExporter$InternalImageProcessor.processGraphics2D(JRPdfExporter.java:1807)
at net.sf.jasperreports.engine.export.JRPdfExporter$InternalImageProcessor.process(JRPdfExporter.java:1597)
at net.sf.jasperreports.engine.export.JRPdfExporter$InternalImageProcessor.access$300(JRPdfExporter.java:1547)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportImage(JRPdfExporter.java:1487)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:1105)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:1068)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:932)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:552)

что не хватает?
...
Рейтинг: 0 / 0
Jasper subreport
    #39576662
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадянаподключал кучу библиотек..
что не хватает?
Лишнего наподключал. Теперь Batik загружен два раза и оба экземпляра друг с другом не общаются.
...
Рейтинг: 0 / 0
Jasper subreport
    #39576685
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяjasper может вставлять варкод и qrкод
но для этого требуется подключить библиотеки для рантайма.
но вот где их взять? если jasper работает и выводит qr код, значит они у него есть, как определить какой jar нужен для рантайма? методом тыка мне удалось подобрать jar для его внутренних функций,
а как быть с баркодами?

Воспользуйтесь моим biserverov
Просто в socket отправляем

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<DOCUMENT><CONTENTS><ROW>
<ID>343</ID>
<DOCUMENT_ID>203</DOCUMENT_ID>
<PRSELLCOST>200</PRSELLCOST>
<GOODSNAME>БИЛЕТ ВЗРОСЛЫЙ</GOODSNAME>
<SGUID>0d7a9123-3f48-770c</SGUID>
<HISTORYSTR>27.12.2017 11:40:53</HISTORYSTR>
<SERIA>AA-003230</SERIA>
</ROW></CONTENTS><TITLE><ROW><NAME1>Чип и Дип</NAME1><OKPO1>499957848</OKPO1><SIDDRESS1>Судак Крепость Курчатовкая 140</SIDDRESS1>
<NO>203</NO>
<DATABOOK>27.12.2017 11:40:52</DATABOOK>
<DISCONTNAME>Скидка(Надбавка)+/-</DISCONTNAME>
<MOLNAME>Оффициант 8</MOLNAME>
<PLACENAME>08</PLACENAME>
</ROW></TITLE><TASK><ROW><PIPE></PIPE>
<PRINT>true</PRINT>
<TEMPLATE>srcheck.xml</TEMPLATE>
</ROW></TASK></DOCUMENT>





Шаблон

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
<?xml version="1.0" encoding="Windows-1251" ?>
<report page="A4" landscape="false" urx1="80" ury1="50" marginleft="0" marginright="0" marginbottom="0" margintop="0">

<reporttitle>
<table align="left" persent="100" viewobject="title" totalwith="180">
<cell noborders="true" dateformat1="dd.MM.yyyy HH:mm:ss" dateformat="dd.MM.yyyy"><memo text="{title.MOLNAME}" fontsize="8" fontitalic="true" />
</cell>
<cell noborders="true" dateformat1="dd.MM.yyyy HH:mm:ss" ><memo text="{dictionary.DATETIME}"  fontsize="8" fontitalic="true" />
</cell>
<rows noborders="true" dateformat1="dd.MM.yyyy HH:mm:ss" ><memo1 text="{title.CHECKTT}"  fontsize="8" fontitalic="true" />
</rows>
<rows noborders="true"/>
</table>
<table align="left" persent="100" viewobject="title" totalwith="180">
<cell fractiontable="3">
<memo text="Проходной билет"  fontsize="8" fontbold="true" align="left"/>
</cell>
<cell numberformat="##,##0">
<memo text="№{title.NO}"  fontsize="8" fontbold="true" align="right"/>
</cell>
<cell numberformat1="##,##0">
<memo text="Лот {title.PLACENAME}"  fontsize="8"  align="right"/>
</cell>

</table>
<!--Основная таблица-->
<table align="left" persent="100" viewobject="title" totalwith="203" totalwith_uns="190"  spacebefore="5" >


<cell fractiontable="4" align="center" colspan1="1" rowspan="detail" verticalalign="bottom" fixheight1="15" single="true">
<memo text="QR Оттиск"   fontsize="8"  />
</cell>




<iterator view="contents" >
<rows align="center"  noborders="true">
<memo text="{contents.SGUID}-{contents.ID}-{contents.DOCUMENT_ID}" />
</rows>
<rows align="center"  noborders="true">
<memo text="{contents.GOODSNAME}" />
</rows>

<rows align="center" fixheight="85" noborders="true">
<qrbarcode text="{contents.SGUID}" />
</rows>


</iterator>


<rows colspan="all" noborders="true" align="center">
<memo text="Мы рады Вам всегда!" fontbold="true"/>
</rows>

</table>
</reporttitle>



<pagefooter>
</pagefooter>
</report>




А получаем в аттачменте
...
Рейтинг: 0 / 0
Jasper subreport
    #39576691
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irbis_al,

А можно и такое получить .см аттачмент
...
Рейтинг: 0 / 0
Jasper subreport
    #39576728
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irbis_al,
спасибо , посмотрю.
но мне удалось и самому подобрать набор jar для qr кода для jasper studio 6.5
xmlgraphics-commons-1.5.jar
w3c.jar
org.w3c.dom.smil-1.0.0.jar
org.w3c.css.sac-1.3.0.jar
org.krysalis.barcode4j_2.1.0.jar
javase-2.2.jar
core-2.2.0-b24.jar
batik-all-1.9.jar
может что и лишнее, но без любого одного из списка не хочет работать
...
Рейтинг: 0 / 0
Jasper subreport
    #39576742
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irbis_al,
мне не удалось вставить вой пример в jasper....
...
Рейтинг: 0 / 0
Jasper subreport
    #39576773
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяirbis_al,
мне не удалось вставить вой пример в jasper....
Так это мой собственный генератор отчётов...основанный на iText.(могу выслать код и сборку...если виртуалку влом ради этого скачивать)
(Тут это многократно перетиралось...В основном в формате..."чего это я изобрёл очередной велосипед")
...
Рейтинг: 0 / 0
Jasper subreport
    #39576787
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irbis_al,
неее.... , чужого велосипеда не надо :)
...
Рейтинг: 0 / 0
Jasper subreport
    #39576867
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяirbis_al,
мне не удалось вставить вой пример в jasper....
Всем удалось, а тебе нет).
...
Рейтинг: 0 / 0
Jasper subreport
    #39576880
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Всем удалось, а тебе нет).это юмор в коротких штанишках?
...
Рейтинг: 0 / 0
Jasper subreport
    #39576913
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Факты. Найди хоть один пост с "не
получилось" про себж.
...
Рейтинг: 0 / 0
Jasper subreport
    #39576932
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Факты. Найди хоть один пост с "не
получилось" про себж.
irbis_al.основанный на iText.
ты вставь в jasper studio 6.5, а потом рассказывай как у тебя получилось
...
Рейтинг: 0 / 0
Jasper subreport
    #39577058
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Ты больше одной технологии не воспринимаешь?
1. Лично мой проект был на отдельном jasper server. Т.е. по урл ты вызываешь отчет в js.
2. В твоем методе и способе если у тебя не вышло, то повтори проблемы. Только без хранимки с двумя табличками на выходе.
Понятно написал?
...
Рейтинг: 0 / 0
Jasper subreport
    #39577118
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Ты больше одной технологии не воспринимаешь?
1. Лично мой проект был на отдельном jasper server. Т.е. по урл ты вызываешь отчет в js.
2. В твоем методе и способе если у тебя не вышло, то повтори проблемы. Только без хранимки с двумя табличками на выходе.
Понятно написал?воспринимаю
это твоё решение для твоей задачи
мне интереснее разобраться и решить через хранимки, это расширит понимание как это всё работает или не работает. именно как устроена работа по извлечению данных из хранимок.
...
Рейтинг: 0 / 0
Jasper subreport
    #39577130
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Решай. Только дописывай везде ,что задача нестандартная. Не как у всех. Удачи!
...
Рейтинг: 0 / 0
Jasper subreport
    #39577320
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадямне интереснее разобраться и решить через хранимки, это расширит понимание как это всё работает или не работает. именно как устроена работа по извлечению данных из хранимок.
так же как и во всех остальных случаях. грубо говоря - через итератор.

не хочется читать доку - смотрим исходники jasper
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
public class JRResultSetDataSource implements JRDataSource
{

        // поскипано 
 
	/**
	 *
	 */
	private JasperReportsContext jasperReportsContext;
	private ResultSet resultSet;
	private Map<String,Integer> columnIndexMap = new HashMap<String,Integer>();



	/**
	 *
	 */
	public JRResultSetDataSource(JasperReportsContext jasperReportsContext, ResultSet resultSet)
	{
		this.jasperReportsContext = jasperReportsContext;
		this.resultSet = resultSet;
	}


	/**
	 * @see #JRResultSetDataSource(JasperReportsContext, ResultSet)
	 */
	public JRResultSetDataSource(ResultSet resultSet)
	{
		this(DefaultJasperReportsContext.getInstance(), resultSet);
	}


	@Override
	public boolean next() throws JRException
	{
		boolean hasNext = false;
		
		if (resultSet != null)
		{
			try
			{
				hasNext = resultSet.next();
			}
			catch (SQLException e)
			{
				throw 
					new JRException(
						EXCEPTION_MESSAGE_KEY_RESULT_SET_NEXT_RECORD_NOT_RETRIEVED, 
						null,
						e);
			}
		}
		
		return hasNext;
	}


	@Override
	public Object getFieldValue(JRField field) throws JRException
	{
          // поскипано
        }



теперь из этого исходника я думаю понятна ошибка которая была у тебя когда ты один и тот же resultSet передавал и в subreport и в main report и получал

Caused by: net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: Unable to get next record from result set.

И если ты изменишь работу с хранимками на "одна хранимка - один результат" (о чем неоднократно говорилось), то большинство твоих проблем уйдут сами.

Petro123Одна хранимка - один результат. Один метод - один выходной параметр.

а ты себе сам грабли раскладываешь зачем то
...
Рейтинг: 0 / 0
Jasper subreport
    #39577455
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanBez,
спасибо. я так и думал, после получения ошибки, но не мог найти объяснения.


следующий вопрос :)
1) есть необходимость использовать одни данные много раз - на каждой странице выводить.
один раз выводит , но для следующего раза - указатель в результсете на последней строке.
есть ли возможность вернуть его в начало?

2) пайджефутер не может расширяться под набор данных, есть возможность программно его задать?
или ещё как-то обойти эту проблему? (для отчета заранее не известено сколько срок будет выведено, но в отчете на всех страницах одинаково)
...
Рейтинг: 0 / 0
Jasper subreport
    #39577498
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Jasper subreport
    #39577604
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usman,

эти тынцы видел, но ответов там не нашёл (со зрением наверно что-то..)
сделал так

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Connection con = dataSource.getConnection();
...
Map<String, Object> parameters = new HashMap<>();
Map<String, Object> parameters = new HashMap<>();
            sub_parameters.put("SP_param", 220);

            parameters.put("subreportDatasetName", new JRResultSetDataSource(rs1));
            parameters.put("con" , con);
            parameters.put("sub_param" , sub_parameters);
основной репорт



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
[SRC XML]			<subreport>
				<reportElement positionType="FixRelativeToBottom" stretchType="ContainerHeight" 
mode="Transparent" x="0" y="0" width="802" height="15" isPrintWhenDetailOverflows="true" backcolor="#BF1815" 
uuid="b2811cd2-a827-40e9-b090-113a484fd218">
					<property name="com.jaspersoft.studio.unit.height" value="px"/>
				</reportElement>
				<parametersMapExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}.get( "sub_param" )]]></parametersMapExpression>
				<connectionExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}.get( "con" )]]></connectionExpression>
				<subreportExpression><![CDATA["sub2.jasper"]]></subreportExpression>
			</subreport>


и в сабрепоте

Код: xml
1.
2.
3.
4.
5.
6.
	<parameter name="SP_param" class="java.lang.String">
		<defaultValueExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}.get( "sp" )]]></defaultValueExpression>
	</parameter>
	<queryString>
		<![CDATA[call name_sp($P{SP_param})]]>
	</queryString>


работает :)
...
Рейтинг: 0 / 0
Jasper subreport
    #39577606
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но возникла другая проблема

в начале каждой (кроме первой) выводит повторение последней записи предыдущей страницы , вместо очередного , т.е.правильно следующую запись заменяет на последнюю с предыдущей...
это как можно исправить?
...
Рейтинг: 0 / 0
Jasper subreport
    #39577669
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то не понятное происходит
делаю ка тут советуют
и происходит повторение строки. но такого же не должно быть?
...
Рейтинг: 0 / 0
Jasper subreport
    #39577687
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создал новый отчёт, из одного поля, подключение к базе средствами самого jaster, в его же превью, смотрю
и тот же эффект...
почему он повторяет с заменой ?
есть варианты исправления?
...
Рейтинг: 0 / 0
Jasper subreport
    #39578311
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот как такого избежать?
...
Рейтинг: 0 / 0
Jasper subreport
    #39600132
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это был баг, его профиксили в 6.5.1
...
Рейтинг: 0 / 0
46 сообщений из 46, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Jasper subreport
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]