powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / jasperreports + JEE (EJB/JPA)
73 сообщений из 73, показаны все 3 страниц
jasperreports + JEE (EJB/JPA)
    #38895040
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте форумчане!
помогите разобраться с jasperreports'ом.
1) есть jsp страница и в нем ссылка на сервлет
Код: java
1.
<a href="report?id=${a.idabiturient}">PDF</a>



2) сервлет Report
Код: 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.
.....
            JRBeanCollectionDataSource beanCollectionDataSource = new JRBeanCollectionDataSource(list);
            System.out.println("nach"); //начало проверки
            String reportPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/reports/report.jasper");
            jasperPrint = JasperFillManager.fillReport(reportPath, new HashMap(), beanCollectionDataSource);

            HttpServletResponse httpServletResponse =
                (HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
            System.out.println(httpServletResponse); //для проверки
            System.out.println("kon"); //конец проверки
            httpServletResponse.addHeader("Content-Disposition", "attachment; filename=report.pdf");
            ServletOutputStream servletOutputStream = httpServletResponse.getOutputStream();
            JasperExportManager.exportReportToPdfStream(jasperPrint, servletOutputStream);
            FacesContext.getCurrentInstance().responseComplete();
            } catch (IOException ioe) {
            // TODO: Add catch code
            ioe.printStackTrace();
            System.out.println("problema s IOS ---->>> " + ioe);
        } catch (JRException jre) {
            // TODO: Add catch code
            jre.printStackTrace();
            System.out.println("problema s JRException ---->>> " + jre);
        }
.....


так вот, и тут ( String reportPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/reports/report.jasper"); ) я получаю эксепшен:

Код: plaintext
net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: \reports\report.jasper

как бы не может найти файл report.jasper, но там есть этот репорт.
З.Ы. а самое интересное когда я смотрел(открыл) на ear архив там этого файла нету, как так не понимаю... :(
помогите пожалуйста разобраться.
З.Ы. в чем моя ошибка или что я не правильно делаю?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38895232
Aghial
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Музаффар,

у меня было что-то похожее при использовании maven:
"По умолчанию при сборке из src/main/java забираются только исходники классов, все остальное берется из resources. Могут быть и другие каталоги, но их необходимо явно указать в pom.xml."
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38895329
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aghial,
я пока с maven'ом не работаю... т.е. у меня только web.xml есть.
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38895358
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффаркак бы не может найти файл report.jasper, но там есть этот репорт.
З.Ы. а самое интересное когда я смотрел(открыл) на ear архив там этого файла нету, как так не понимаю... :(
помогите пожалуйста разобраться.
З.Ы. в чем моя ошибка или что я не правильно делаю?

Посмотрите как развернулось ваше приложение на сервере приложений.
Может его действительно нет там где вы думаете он должен лежать.
А так вместо getRealPath попробуйте использовать getResourceAsStream...
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38895388
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulПосмотрите как развернулось ваше приложение на сервере приложений.
Может его действительно нет там где вы думаете он должен лежать.
А так вместо getRealPath попробуйте использовать getResourceAsStream...

как я уже говорил там нет этих файлов...
но... вообщем вот структура:
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38895390
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulПосмотрите как развернулось ваше приложение на сервере приложений.
Может его действительно нет там где вы думаете он должен лежать.
а вот что в сервере приложений: и там нет ни report.jasper, ни report.jrxml
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38895478
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,

вроде сделал, репорты были на Application Sources а надо было в Web Content -- resources -- reports.
после этого они появились и ear архиве тоже.
З.Ы. теперь другая ошибка появилась:
строка та же где reportPath , а ошибка java.lang.NoClassDefFoundError: javax/faces/contex/FacesContex
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38895500
WGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WGA
Гость
Музаффарmad_nazgul,

вроде сделал, репорты были на Application Sources а надо было в Web Content -- resources -- reports.
после этого они появились и ear архиве тоже.
З.Ы. теперь другая ошибка появилась:
строка та же где reportPath , а ошибка java.lang.NoClassDefFoundError: javax/faces/contex/FacesContex А куда деплоится приложение?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38895523
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WGAА куда деплоится приложение?
в качестве App Server'а использую Weblogic Server , случайно не из-за этого такие ошибки?
попробую на другом сервере запускать приложение может прокатит...
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38895881
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарmad_nazgul,

вроде сделал, репорты были на Application Sources а надо было в Web Content -- resources -- reports.
после этого они появились и ear архиве тоже.
З.Ы. теперь другая ошибка появилась:
строка та же где reportPath , а ошибка java.lang.NoClassDefFoundError: javax/faces/contex/FacesContex

Нету соответствующей библиотеки.
Скорее всего ее надо скачать и положить куда дотягивается ClassPath.
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38895929
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulНету соответствующей библиотеки.
Скорее всего ее надо скачать и положить куда дотягивается ClassPath.

интересно и странно, а какая библиотека?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38896055
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарmad_nazgulНету соответствующей библиотеки.
Скорее всего ее надо скачать и положить куда дотягивается ClassPath.

интересно и странно, а какая библиотека?

Мне гугл говорит этой
javax.faces-api-2.0.jar
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38896171
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulМне гугл говорит этой
javax.faces-api-2.0.jar
ошибка осталась все равно...
а есть ли возможность указать путь к файлу по другому?
пробовал
Код: java
1.
getServletContext.getRealPath("/reports/report.jasper");


возврашает NULL
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38896552
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
добавил некоторые библиотеки (jasperreports-6.0.0.jar и javax.faces-api-2.2.jar) к серверу приложений теперь
когда
Код: java
1.
String reportPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/reports/report.jasper");


получаю эксепшен
Код: plaintext
1.
2.
Servlet failed with Exception
java.lang.NullPointerException
	at demo.Report.doGet(Report.java:114)
строка 114 это у меня String reportPath = ...

а когда
Код: java
1.
String reportPath = getServletContext().getRealPath("/reports/report.jasper");


Код: plaintext
1.
2.
3.
4.
5.
6.
Servlet failed with Exception
java.lang.NullPointerException
	at java.io.File.<init>(File.java:222)
	at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:578)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:930)
	at demo.Report.doGet(Report.java:119)
строка 119 это у меня jasperPrint = JasperFillManager.fillReport(reportPath, new HashMap(), beanCollectionDataSource);

З.Ы. во втором случае я получаю NULL ...
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38896743
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарmad_nazgul,

строка 119 это у меня jasperPrint = JasperFillManager.fillReport(reportPath, new HashMap(), beanCollectionDataSource);

З.Ы. во втором случае я получаю NULL ...

Еще раз используете getResourceAsStream(...)
getRealPath()
Идет от корня собранного вашего приложения.
Причем в зависимости от настроек maven структура может отличаться.
Грубо говоря "корень" проекта идет от web или webapp.
А потом туда кладутся скомпилированные классы, ресурсы и прочее.
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38896835
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulЕще раз используете getResourceAsStream(...)
getRealPath()
Идет от корня собранного вашего приложения.
Причем в зависимости от настроек maven структура может отличаться.
Грубо говоря "корень" проекта идет от web или webapp.
А потом туда кладутся скомпилированные классы, ресурсы и прочее.

Спасибо, за Ваши ответы и советы!
пробовал как Вы сказали getResourceAsStream(...) вроде прошло, но теперь получаю другую ошибку...
З.Ы. можете коротко объяснить последовательность, как должно быть все это?
1) и когда я получаю полный путь к файлу скажем через getPath(); я должен указать на файл *.jasper или *.jrxml?
2) аналогично с первым только вместо getPath() getResourceAsStream?
3) скажем я уже получил желаемого (String или InputStream) компилировать надо? ( JasperCompileManager.compileReport(...); )
4) потом на сколько я понял передаю все на JasperFillManager
5) если вышеуказанные правильны то дальше что? если нет то коротко объясните пожалуйста.
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38896907
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МузаффарСпасибо, за Ваши ответы и советы!
пробовал как Вы сказали getResourceAsStream(...) вроде прошло, но теперь получаю другую ошибку...
З.Ы. можете коротко объяснить последовательность, как должно быть все это?
1) и когда я получаю полный путь к файлу скажем через getPath(); я должен указать на файл *.jasper или *.jrxml?
2) аналогично с первым только вместо getPath() getResourceAsStream?
3) скажем я уже получил желаемого (String или InputStream) компилировать надо? ( JasperCompileManager.compileReport(...); )
4) потом на сколько я понял передаю все на JasperFillManager
5) если вышеуказанные правильны то дальше что? если нет то коротко объясните пожалуйста.

1) В зависимости от того, что у вас есть.
*.jrxml - это исходник отчета
*.jasper - это уже скомпилированные отчет
Обычно используют уже скомпилированный отчет, чтобы не тратить время на компиляцию.
2) Настоятельно рекомендую почитать про ресурсы Java и посмотреть примеры
3) См. пункт1
4) Не помню. По идее можно нагуглить примеры.
5) А дальше нужно выгрузить отчет в нужном вам формате. :-)
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38896957
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, за Ваши ответы и советы!
пробовал как Вы сказали getResourceAsStream(...) вроде прошло, но теперь получаю другую ошибку...

Какая ошибка и какой теперь исправленный код мы должны сами догадаться?

З.Ы. можете коротко объяснить последовательность, как должно быть все это?
1) и когда я получаю полный путь к файлу скажем через getPath(); я должен указать на файл *.jasper или *.jrxml?

Я вот вообще не понимаю зачем getPath()
Хочешь компилить jrxml-файл на лету, берешь jrxml, потом JasperCompileManager.compileReport(...) получаешь исполняемый report.jasper (который у тебя уже есть, тогда вопрос зачем он тебе) и кидешь его в fillReport

Смотрим исходники JasperFillManager. Вариантов там масса. Выбирай тот который тебе нужен. Один из вариантов
Код: 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.
	/**
	 * @see #fill(InputStream, Map, JRDataSource)
	 */
	public static JasperPrint fillReport(
		InputStream inputStream, 
		Map<String,Object> parameters,
		JRDataSource dataSource
		) throws JRException
	{
		return getDefaultInstance().fill(inputStream, parameters, dataSource);
	}
        ....
	/**
	 * Fills the compiled report design loaded from the supplied input stream and returns
	 * the generated report object.
	 * 
	 * @param inputStream  input stream to read the compiled report design object from
	 * @param parameters   report parameters map
	 * @param dataSource   data source object
	 * @return generated report object
	 */
	public JasperPrint fill(
		InputStream inputStream, 
		Map<String,Object> parameters,
		JRDataSource dataSource
		) throws JRException
	{
		JasperReport jasperReport = (JasperReport)JRLoader.loadObject(inputStream);

		return fill(jasperReport, parameters, dataSource);
	}



2) аналогично с первым только вместо getPath() getResourceAsStream?

Ну где то так getResourceAsStream(путькакойтамправильный/report.jasper)

3) скажем я уже получил желаемого (String или InputStream) компилировать надо? ( JasperCompileManager.compileReport(...); )

Глядя что ты получил. jrxml надо, jasper нет. Хотя каша тут в вопросе. Что такое "jrxml как String" ???

4) потом на сколько я понял передаю все на JasperFillManager

да. В результате jasper выполняет отчет и возвращает jasperPrint object

5) если вышеуказанные правильны то дальше что? если нет то коротко объясните пожалуйста.

экспортируешь JasperPrint в нужный тебе формат (xls, pdf, html, ...)
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38897243
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul, sanBez,
sanBezКакая ошибка и какой теперь исправленный код мы должны сами догадаться?

при использовании getResourceAsStream а точнее
Код: java
1.
InputStream reportPath = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream("/recources/reports/report.jasper");


я получаю эксепшен, типа
Код: plaintext
java.lang.NullPointerException
со ссылкой именно на ту строку...

а если я использую
Код: java
1.
InputStream reportPath = getServletContext().getResourceAsStream("/recources/reports/report.jasper");


то все проходит успешно до строки:
Код: java
1.
2.
HttpServletResponse httpServletResponse =
                (HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();


с ошибкой
Код: plaintext
java.lang.NullPointerException

З.Ы. я что то недопонемаю или не учитываю...
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38897258
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InputStream reportPath = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream("/recources/reports/report.jasper");

Ничего не попутал?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38897308
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanBezInputStream reportPath = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream("/recources/reports/report.jasper");

Ничего не попутал?
а поконкретнее можно? если имеете виду recources то да опечатка, и вообще можно просто /reports/report.jasper , а ситуация не измениться...
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38897768
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вносил изменения в код,
Код: 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.
try{
            JRBeanCollectionDataSource beanCollectionDataSource = new JRBeanCollectionDataSource(list);
            System.out.println("nach");
            InputStream reportPath = getServletConfig().getServletContext().getResourceAsStream("/resources/reports/report.jasper");

            System.out.println("---------------------- " + reportPath); 

            jasperPrint = JasperFillManager.fillReport(reportPath, new HashMap(), beanCollectionDataSource);

            System.out.println("++++++++++++++++ " + jasperPrint); 

//            HttpServletResponse httpServletResponse = 
//                (HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();

            System.out.println("===================>>>>"+response);
            System.out.println("kon");

            response.setHeader("Cache-Control", "no-cache");
            response.setContentType("application/pdf");
//            response.addHeader("Content-Disposition", "attachment; filename=report.pdf");
            response.addHeader("Content-Disposition", "inline; filename=report.pdf");
            OutputStream servletOutputStream = response.getOutputStream();
            JasperExportManager.exportReportToPdfStream(jasperPrint, servletOutputStream);
            servletOutputStream.flush();
            servletOutputStream.close();
}catch(...){...}


пока не работает, получаю исключение, типа
Код: plaintext
java.lang.IllegalStateException: strict servlet API: cannot call getOutputStream() after getWriter()
и ссылку на OutputStream servletOutputStream = response.getOutputStream();

я понял типа нельзя одновременно использовать getOutputStream() и getWriter() , надо либо первую либо вторую, но у меня в коде вообще нету getWriter() ...

З.Ы. что я опять сделал не так?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38897915
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все таки нашел свою ошибку не комментированным осталась строка getWriter() , это в начале сервлета...
З.Ы. теперь получаю PDF документ но без информации, т.е. белый лист документа PDF...
при этом там есть и статические записи типа Hello world! (для проверки)...
что делать?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38898049
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
никакие идеи или мнении?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38898561
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблему решил, вроде работает кроме одного не появляется статические данные
вот сам jrxml файл:
Код: 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.
<?xml version="1.0" encoding="UTF-8"?>
<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="report1" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20"
              rightMargin="20" topMargin="20" bottomMargin="20" uuid="4cedddd1-22f5-45bc-acb5-c48907b83dd1">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <field name="idabiturient" class="java.math.BigDecimal"/>
    <field name="lastName" class="java.lang.String"/>
    <title>
        <band height="33">
            <staticText>
                <reportElement x="226" y="0" width="100" height="20"/>
                <text>
                    <![CDATA[My first report!!!]]>
                </text>
            </staticText>
        </band>
    </title>
    <detail>
        <band height="100">
            <textField>
                <reportElement x="0" y="30" width="50" height="20"/>
                <textFieldExpression class="java.math.BigDecimal">
                    <![CDATA[$F{idabiturient}]]>
                </textFieldExpression>
            </textField>
            <textField>
                <reportElement x="0" y="60" width="150" height="20"/>
                <textFieldExpression class="java.lang.String">
                    <![CDATA[$F{lastName}]]>
                </textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>



почему так честно говоря не понимаю. Помогите решит проблему...
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38898707
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые mad_nazgul, sanBez Вам огромное спасибо и всем остальным тоже спасибо все сделал хоть криво но работает!
в чем была последняя проблема не совсем понял...

З.Ы. позвольте задавать ещё один вопрос. Как вывести скажем так таблицу на котором храняться данные юзера (id(PK), name, ..., idOtd(FK)), т.е. отчет у меня должен быть примерно вот так:
id = 1
Имя = Adam
Отдел = отдел связи

на джаве получил примерно вот так
System.out.println("id = " + list.get(0).getId);
System.out.println("Имя = " + list.get(0).getName);
System.out.println("Отдел = " + list.get(0).getUsers().getOtdName);

а в jasperreports'е как это сделать? первые две понятны
<![CDATA[$F{id}]]> и <![CDATA[$F{name}]]> а вот как получить наименования отдела?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38899494
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,

У тебя же бин. Причем здесь таблица? Бери через геттер
Пример http://stackoverflow.com/questions/22065178/ireport-and-getter-between-classes/22069355#22069355
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38899514
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanBezМузаффар,

У тебя же бин. Причем здесь таблица? Бери через геттер
Пример http://stackoverflow.com/questions/22065178/ireport-and-getter-between-classes/22069355#22069355

хотите сказать <![CDATA[$F{users}.getOtdName]]> ?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38899598
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,

Да. Естессно поле $F{users} надо объявить с нужным типом.

А в textField выражение $F{users}.getOtdName() - ты скобки забыл
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38899686
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanBezМузаффар,

Да. Естессно поле $F{users} надо объявить с нужным типом.

А в textField выражение $F{users}.getOtdName() - ты скобки забыл

наверное я что то не правильно делаю...
на самом деле у меня чуть по другому и вместо users у меня groups и получаю эксепшен:
Код: plaintext
Error evaluating expression: Source text  $F{groups}.getShortName() 

тип группы:
Код: xml
1.
<field name="groups" class="java.lang.String">



вчем моя ошибка?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38899717
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanBezЕстессно поле $F{users} надо объявить с нужным типом.
Ты объявил поле groups в jrxml как String. Почему? У java.lang.String нет метода getShortName()

Должно быть объявление поля как оно у тебя в бине: <field name="groups" class="my.package.MyGroup"> как там оно у тебя. Бина не вижу, точно сказать не могу.
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38899728
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanBezДолжно быть объявление поля как оно у тебя в бине: <field name="groups" class="my.package.MyGroup"> как там оно у тебя. Бина не вижу, точно сказать не могу.

да это я сразу же понял но вот только после написания ответа и вот чудо заработало! (в моем случае это <field name="groups" class="demo.entity.Groups"> )
Вам огромное спасибо!
З.Ы. теперь остался разобраться с русскими шрифтами т.к. русского не показывает... :)
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38899748
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,

А это глядя какой у тебя шрифт http://www.sql.ru/forum/331327/jasperreports-pdf-kirillica
Если DejaVu подключай в проект jasperreports-fonts-x.y.z.jar из твоей версии jasper
Если другой - собери сам jar с нужными шрифтами
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38899763
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanBezМузаффар,

А это глядя какой у тебя шрифт http://www.sql.ru/forum/331327/jasperreports-pdf-kirillica
уже читаю этот пост )

sanBezЕсли DejaVu подключай в проект jasperreports-fonts-x.y.z.jar из твоей версии jasper
Если другой - собери сам jar с нужными шрифтами
для начала прочту потом посмотрим...

а кстати за одно спрошу, можно ли сделать так чтоб не выводя на экран сразу на печать отправились отчеты т.е. оператор не видел ничего?... :)
это потому что чтобы избежать от копирования отчета (сохранения на компе или носителе).
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38899817
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а кстати за одно спрошу, можно ли сделать так чтоб не выводя на экран сразу на печать отправились отчеты т.е. оператор не видел ничего?... :)

А есть смысл не глядя печатать? Отчет получился пустой или не так параметры юзер задал или несколько копий напечатать надо...
Я с печатью не возился

это потому что чтобы избежать от копирования отчета (сохранения на компе или носителе).
Вроде же в твоем варианте он и не сохраняется никуда. А вариант когда отчет может нужно куда то по почте отправить не рассматриваем? Или пользователю сравнить какой отчет сегодня и по прошествии времени.

Вообще то имхо странное желание не иметь возможности сохранить как файл
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38899917
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanBez,
вообщем ситуация такая:
приходит абитуриент, оператор проверяет все ли есть (имеется ввиду документы) у него и регистрирует в своем журнале. потом дает заполняет форму направления медосмотру (количество форм = 3), взявь эту направлению абитуриент проходит медкамиссию. там два варианта либо годен либо нет! а вся пробле заключается в том что нельзя давать второй раз абитуриентам эту форму. иногда бывает что операторы дадут второй раз (человеческие факторы )
З.Ы. вот и хочу избежать от этого чтоб оператор не смог давать второй раз эту форму
да можно сделать в бд строку типа если сформировался отчет (т.е. форму), изменить значение 0 на 1 и всегда перед формированием отчета проверяем на 0 если да значить можно если нет то и соответствующая сообщения.
вот сейчас у меня браузер показывает отчет (форму) от-туда можно и сохранить и т.д.

вообще то если не считать тех человеческих факторов, то все замечательно... :)

что можете посоветовать?
или оставить все так но сделать для руководителя некий отчет на котором отображается какой оператор одного абитуриента сколько раз печатал и т.д. и т.п. ? дальше пусть решает сам руководитель :) что скажете?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38900020
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,

ХЗ. Возможен и вариант с выставлением 0,1 и запретом выдачи отчета. А если надо все же для конкретного абитуриента второй раз напечатать? В виде исключения (например испорченный бланк, бумага замялась, была неверно написана фамилия а потом исправили). А ты на юге загораешь. И никто в таблицу руками не может залезть и сбросить признак. И тебя матерят заочно.

И возможен отчет по операторам сколько раз на кого печатал.

И возможен вариант с печатью отчета с пометкой "Выдано повторно"

Решение зависит от правил и строгости их соблюдения. Утряси этот вопрос с тем кто ставил задачу. Уточни ТЗ так сказать.
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38900075
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanBez,

ну понятно, наверное надо определиться с ролями (типа Администратор системы, Начальник, Начальник сектора, Оператор)

и вот тогда если возникли вышеуказанные проблемы то можно будет обращаться к нач. сектору у которого будет доступ для повторной печати, но каждый раз ходит к нему и просить чтоб он распечатал тоже не совсем хорошо если они не сидять рядом...
sanBezИ возможен отчет по операторам сколько раз на кого печатал.
И возможен вариант с печатью отчета с пометкой "Выдано повторно"
да это я сделаю, ну на всяком случае постараюсь... :)

З.Ы. на счет ТЗ наверное не получится т.к. я сам придумиваю чтобы освоит язык JAVA :)
от куда знаю процесс работы оператора (приемной комиссии)? я около 4 года работал в приемной комиссии, когда институт принимал абитуриентов.:)
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38900130
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,
метод неотвратимости наказания:
- рядом с кнопкой информация - кто и сколько печатал.
Всех предупредить, что это идёт наверх и будут песочить.
Всё.
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38900481
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

ну вообщем ещё подумаю над этим вопросом...

sanBez,

можете отвечать на один вопрос.
как вывести из типа java.sql.Date или java.util.Date только год или конкретный формат(типа dd.MM.yyyy) в jasperreports?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38900485
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,

pattern там есть в properties у TextField. Пишешь в нем dd.MM.yyyy и все
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38900492
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanBezМузаффар,

pattern там есть в properties у TextField. Пишешь в нем dd.MM.yyyy и все

а если только год?

обычно получал год примерно вот так:
Код: java
1.
2.
3.
Calendar calendar = Calendar.getInstance();
        calendar.setTime(a.getBirthDay());
        System.out.println("year " + calendar.get(calendar.YEAR));



а на jasper'е как решается такая задача?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38900713
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanBez,

Спасибо Вам! с датами тоже разобрался, только русские символы остались :)
вообщем сделал вот так:
Код: xml
1.
<!CDATA["Year : " + new SimpleDateFormat("yyyy").format($F{birthDay})]>


а тип: <field name="birthDay" class="java.util.Date"/>
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38900848
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар
Код: xml
1.
<!CDATA["Year : " + new SimpleDateFormat("yyyy").format($F{birthDay})]>




Возможен и этот способ, если внутри textField выражение. Тогда да, оно.
Я вообще то имел в виду случай когда внутри textField только
Код: xml
1.
<!CDATA[$F{birthDay}]>



Как вариант вот этот же случай можно реализовать через два поля staticText c "Year:" и textField c $F{birthDay}. Пример


Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
			<staticText>
				<reportElement x="0" y="0" width="100" height="20"/>
				<textElement textAlignment="Right"/>
				<text><![CDATA[Year:]]></text>
			</staticText>
			<textField pattern="yyyy">
				<reportElement x="100" y="0" width="100" height="20"/>
				<textElement/>
				<textFieldExpression><![CDATA[$F{BIRTHDAY}]]></textFieldExpression>
			</textField>



В этом случае не надо писать ручками new SimpleDateFormat(). Проще выходит. Да и часто staticText только в шапке таблицы.
А в detail только $F

Посмотри в Studio в окно свойств поля. На textField по правой кнопке мыши ShowPropertires и там в закладке TextField заполняешь pattern в yyyy, например.
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38900858
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanBezПосмотри в Studio в окно свойств поля. На textField по правой кнопке мыши ShowPropertires и там в закладке TextField заполняешь pattern в yyyy, например.
Спасибо! :)
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38921031
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте Всем!
не стал создавать новую тему, и решил писать сюда.
подскажите пожалуйста как сделать/создать отчеты в формате А5?

З.Ы. вообщем на iReports'е создал отчет в формате А5 а вот когда уже получаю этот отчет в браузере там показывает нечто иной размер точнее 297х210 вместо 210х148

что я делаю не правильно?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38921166
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарполучаю этот отчет в браузере
должно быть окно - Скачать? Открыть в ....?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38921632
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123должно быть окно - Скачать? Открыть в ....?
сервлет формирует и отправляет браузеру сформированный ПДФ отчет, а тот просто показывает... там уже можно и скачать и отправить на печать и т.д.
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38921641
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38921901
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МузаффарPetro123должно быть окно - Скачать? Открыть в ....?
сервлет формирует и отправляет браузеру сформированный ПДФ отчет, а тот просто показывает... там уже можно и скачать и отправить на печать и т.д.
а ты попробуй как у меня, может и вопрос твой пропадёт?
У меня пользователи сами решают - открыть или скачать.
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38921905
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,
драйвер XPS это не PDF
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38922537
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123а ты попробуй как у меня, может и вопрос твой пропадёт?
У меня пользователи сами решают - открыть или скачать.

просто мне нужна чтоб этот документ открылся именно в браузере.

Petro123Музаффар,
драйвер XPS это не PDF

да просто дома принтера нет по этому XPS был а так на работе тоже самое... почему то формат документа А4 а не А5 :(
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38922571
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарда просто дома принтера нет
бум ждать скрина не из дома.
Я не смотрел особенности работы дров внедрённого PDF в эксплорер.
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38922578
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,
не можешь дать ссылку в сети на PDF что ли?
Чтобы все проверили формат:
- скачав файл и открыв файл
- печать внедрённого.
Может внедрённый печатает от драйвера эксплорера?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38922603
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38922802
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,
где ссылка?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38922804
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ссылка на внедрённый ПДФ из гугла как пример.
Ферштейн?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38922817
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда печатаем, нужно выбирать бумагу на принтере, а не в PDF.
И убирать галку Масштабировать в драйвере.
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38922822
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если выставлять размер не из ворда, а из Пуск - Принтеры, то размер будет по умолчанию.
AFAIK так было в старой винде.
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38922887
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарпросто мне нужна чтоб этот документ открылся именно в браузере... только от вас это не зависит.
Лично у меня не установлены плагины PDF для браузеров и, соответственно, все браузеры спрашивают "сохранить или открыть". Без вариантов.
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38922951
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
от заголовков точно не зависит?
У меня вроде было когда так, когда так....
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38922977
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
да. Погуглил, действительно - аддон к эксплореру (думал MIME).
Всё ясно)
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38923112
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, Basil A. Sidorov,

Вообщем приложения для корпоративного пользования. А на счет сохранить/сохранить как... вообще нежелательные функции к сожалению, т.к. как Вы сами понимаете это требования .
Помимо этого отчета в формате А5 ещё есть отчеты в формате А4 и наверное будет один принтер для 5ти компов, и по моему этот принтер будет с двумя лотками бумаги на одном формат А4 а другом формат А5. Соответственно принтер должен печатать именно на том формате что передает пользователь т.е. приложения.
И наверное Вы уже догадались что это ПО для учета абитуриентов т.е. их будет оченама много если судит что они обычно придут к концу работы приемной комиссии (пр. ком. работает целый месяц а в первой половине месяца сотрудники принимают всего 500-700 документов, а уже во втором половине месяца 5000-6000 в среднем) по этому не хотел бы выбор формата оставить операторам и желательно все автоматизировать...

что можете посоветовать?

З.Ы. кстати А4 будет дуплексным(двусторонняя печать).
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38923304
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,
Бумагу перевернуть для двухсторонней программно?
Насчет лотков не знаю, но js можно вызвать диалог печати
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38923405
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МузаффарВы сами понимаете это требования .
не находите странные требования печати PDF\DOC из программы, которая их не поддерживает?
Варианты:
- уточнить требования
- сделать 2 шаблона A5 на одной A4
- сделать отчёты в HTML
- поиск в форуме JS типа псевдокод
Код: javascript
1.
2.
3.
4.
5.
6.
var template = '<embed width=100% height=100%'
           + ' type="application/pdf"'
            + ' src="data:application/pdf,base64;'
            + (escape(Base64.decode(pdfText)));
            + '"></embed>';
windowPrint.document.write(template);
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38924141
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МузаффарВообщем приложения для корпоративного пользования"Своих" нагнуть можно. С "чужими" что будете делать?А на счет сохранить/сохранить как... вообще нежелательные функции к сожалению, т.к. как Вы сами понимаете это требования Всё, что отдаётся клиенту может быть сохранено тем или иным способом.
Модель нарушителя уже построили?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38924201
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Бумагу перевернуть для двухсторонней программно?
нет, принтер поддерживает. В настройках указать можно...
Petro123Насчет лотков не знаю, но js можно вызвать диалог печати
я тоже недавно узнал...
Petro123не находите странные требования печати PDF\DOC из программы, которая их не поддерживает?
Варианты:
- уточнить требования
- сделать 2 шаблона A5 на одной A4
- сделать отчёты в HTML
- поиск в форуме JS типа псевдокод
если честно не совсем понял вопрос...
а на счет вариантов, то могу сказать что:
- желательно не предоставить пользователю сохранить на PC (чтоб многократно не распечатал одному абитуриенту (типа человеческие факторы )), а когда надо печатать второй раз то только через начальника...
- да так и есть.
- что даст мне отчеты в HTML если я и так получаю то что мне нужно только не в том формате?
- на счет JS спасибо.
Basil A. Sidorov
"Своих" нагнуть можно. С "чужими" что будете делать?
по этому для корпоративного пользования :)
Basil A. Sidorov Всё, что отдаётся клиенту может быть сохранено тем или иным способом.
Модель нарушителя уже построили?
да с Вами согласен, по этому сказал что желательно без функции Save/Save as... а так не критична :)
на счет модели нарушителя не совсем понял...

З.Ы. просто я не понимаю почему я на iReports'е создаю в формате А5 а в программе (имею ввиду web приложения) получаю в формате А4. Как так возможно? Может кто нибудь объяснить причину?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38924525
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МузаффарМожет кто нибудь объяснить причину?
- скорее всего, при внедрении документа печать идёт по канве (Canvas) самого эксплорера.
OLE объект только рисует на HDC.
Я это писал выше.
- тебе влом тут привести демо-ссылку на pdf из сети?
Я это тоже писал выше.
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38924528
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,
- про многократную печать - тоже писал решение (вывести на экран ФИО + Count)
автор- что даст мне отчеты в HTML если я и так получаю то что мне нужно только не в том формате?
это юмор?
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38925376
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарна счет модели нарушителя не совсем понял...Каждый раз, когда вы получаете требование, необходимо оценить возможность соблюсти это требование.
В вашей ситуации нарушителем является легитимный пользователь системы, желающий сохранить "отданное сервером для просмотра на экране" в более постоянное хранилище.
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38927078
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov, Petro123,
спасибо Вам.

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

З.Ы. вроде это (в моем случае) самый лучший вариант...
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38927102
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарт.е. пусть они сами выбирают
замечательно. Я только за...свободу).
"Свободу попугаю!"))
...
Рейтинг: 0 / 0
jasperreports + JEE (EJB/JPA)
    #38927117
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
:)
...
Рейтинг: 0 / 0
73 сообщений из 73, показаны все 3 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / jasperreports + JEE (EJB/JPA)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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