Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Jasper subreport / 25 сообщений из 46, страница 1 из 2
25.12.2017, 19:52
    #39575691
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper 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.
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
25.12.2017, 20:28
    #39575699
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper subreport
разобрался
надо так
Код: 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
25.12.2017, 21:24
    #39575713
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper subreport
но теперь выдаёт такое
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
25.12.2017, 21:35
    #39575717
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper subreport
если сделать так
Код: java
1.
JasperFillManager.fillReportToFile(Singleton.getWeb_location() + "report/xx.jasper", null, new JRResultSetDataSource(rs));


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


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

Вадя

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

Вообще с subreport'ами в JasperReports постоянно какая-то "засада".
На одном проекте вместо subreports использовали crosstab.
В принципе получалось то что надо.
Единственное "рисование" было как в Excel.
...
Рейтинг: 0 / 0
26.12.2017, 07:55
    #39575807
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper subreport
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
26.12.2017, 07:56
    #39575809
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper subreport
mad_nazgulНа одном проекте вместо subreports использовали crosstab.как это готовить?
...
Рейтинг: 0 / 0
26.12.2017, 08:16
    #39575822
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper subreport
вадяmad_nazgulНа одном проекте вместо subreports использовали crosstab.как это готовить?

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

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

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

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


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

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

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

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

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

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

Звучит как
«Один народ, одна страна, одна судьба»
<:o)
)))):Люблю юмор.
В java так. В дельфи и шарпе по другому.
...
Рейтинг: 0 / 0
26.12.2017, 11:39
    #39575956
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper subreport
sanBezПотому что у JasperFillManager.fillReportToFile третий параметр - один DataSource а не их коллекцияты не обратил внимание, что один передаётся как третий параметр, а другой как элемент мапы.
sanBezНет порядка у единственного элементатам два разных элемента
sanBezто естественно их обработка будет в порядке, который определяется тем как сконструирован отчет
(subreport в title или в summary например)у меня и идёт на странице сначала сабрепорт
sanBezзачем? (ни разу не потребовалось). хочется услышать внятную причину, а не "мне надо"это просто как попытка понять что на что может влиять.
...
Рейтинг: 0 / 0
26.12.2017, 11:43
    #39575963
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper subreport
что java делает в этом случае
new JRResultSetDataSource(rs)
создаёт новый объект, не привязанный к источнику ничем ? или всё-таки передаёт ссылку на rs дальше?
...
Рейтинг: 0 / 0
26.12.2017, 11:53
    #39575981
sanBez
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper subreport
вадяsanBezПотому что у JasperFillManager.fillReportToFile третий параметр - один DataSource а не их коллекцияты не обратил внимание, что один передаётся как третий параметр, а другой как элемент мапы.
Обратил. Но ты почему-то считаешь что у DataSource (третий параметр fillReport) и параметра отчета subreportDatasetName (элемент мапы) есть какой-то порядок.
Два абсолютно несвязанных элемента. Какой у них порядок?
...
Рейтинг: 0 / 0
27.12.2017, 10:23
    #39576588
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper subreport
jasper может вставлять варкод и qrкод
но для этого требуется подключить библиотеки для рантайма.
но вот где их взять? если jasper работает и выводит qr код, значит они у него есть, как определить какой jar нужен для рантайма? методом тыка мне удалось подобрать jar для его внутренних функций,
а как быть с баркодами?
...
Рейтинг: 0 / 0
27.12.2017, 11:30
    #39576655
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper subreport
наподключал кучу библиотек..
выдаёт
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
27.12.2017, 11:34
    #39576662
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper subreport
вадянаподключал кучу библиотек..
что не хватает?
Лишнего наподключал. Теперь Batik загружен два раза и оба экземпляра друг с другом не общаются.
...
Рейтинг: 0 / 0
27.12.2017, 11:51
    #39576685
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper subreport
вадя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
Форумы / Java [игнор отключен] [закрыт для гостей] / Jasper subreport / 25 сообщений из 46, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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