Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JReeReport (отчет в Excel), Создание отчета, и запись в Excel 
:(
    Опции темы
alexgoodvin
Дата 3.10.2006, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.10.2006
Где: г. Москва

Репутация: нет
Всего: нет



Колеги, приветствую.
Нужна помошь с отчетом. Возможно кто-то решал такой вопрос, или знает ответ:

Работаю с javaStudio EE 8.0 ( или NetBeans 5.5)

Задача: 
- Программа должна стартовать в виде "системного процесса"
   Из базы (firebird) извлекать данные, при попощи запроса. И помещать результат в файл Excel.
- Строить График

Что сделано:
1. Данные по запросу выбираются.
2. Е Excel записываются, но с ошибками
(ниже привож упример кода)

ВОПРОС:
1. Как создать заголовок таблици (шапку)
   report.setPageHeader();
   report.setPageFooter();
2. Как указать формат ячеек, 
   т.к дата, например, помещается некорректно
3. Несколько ячеек обьединяются (сливаются). Как этоо избежать, или наоборот, как слить (обьединить)

4. Как создать график при помощи jfreeReport ?
    на основании данных 

Код

 private void perform() throws ReportProcessingException, FileNotFoundException, IOException
    {
        final TableModel data = createData();
        final JFreeReport report = createReportDefinition();
        report.setData(data);
        final ExcelProcessor pr = new ExcelProcessor(report);
        final OutputStream fout = new BufferedOutputStream(new FileOutputStream(filename));
        pr.setOutputStream(fout);
        pr.processReport();
        fout.close();
    }


Код

public static void main(final String[] args)
    {
        JFreeReportBoot.getInstance().start();
        try
        {
            new AppendedExcelReport("C:/tmp/Report.xls").perform();
            System.exit(0);
        }
        catch (Exception e)
        {
            Log.error("Failed to run demo", e);
            System.exit(1);
        }
    }


Код

private TableModel createData()
    {
        RowSetModel rsModel = null;
        JdbcRowSetImpl rs = new JdbcRowSetImpl();
        try
        {
            Class.forName("org.firebirdsql.jdbc.FBDriver");
        }
        catch (ClassNotFoundException ex)
        {
            ex.printStackTrace();
        }
        try
        {
               // запрос
               String Command = "SELECT NAME_OPER, TALON, SERV_TIME "+
                "FROM OPERATOR "+
                "ORDER BY NAME_OPER";

            rs.setCommand(Command);
             //  путь к базе
            rs.setUrl("jdbc:firebirdsql:localhost:C:/database/operator.GDB");    
            rs.setUsername("login");
            rs.setPassword("pasword");
            rs.setConcurrency(ResultSet.CONCUR_UPDATABLE);
            rs.setType(ResultSet.TYPE_SCROLL_SENSITIVE);
            rs.setReadOnly(false);
            rs.execute();
            rsModel = new RowSetModel(rs);
            return rsModel;
        }
        catch (SQLException ex)
        {
            ex.printStackTrace();
        }
        return rsModel;
    }
 
    //cоздание отчета в Excel
    private JFreeReport createReportDefinition()
    {
        // Обьект - отчёт
        final JFreeReport report = new JFreeReport();
        TextFieldElementFactory factory = new TextFieldElementFactory();
        
         // настройка параметров поля
        TextFieldElementFactory factory = new TextFieldElementFactory();
        factory.setName("NAME_OPER");
        factory.setAbsolutePosition(new Point2D.Float(0, 0));
        factory.setMinimumSize(new FloatDimension(150, 12));
        factory.setColor(Color.black);
        factory.setHorizontalAlignment(ElementAlignment.RIGHT);
        factory.setVerticalAlignment(ElementAlignment.MIDDLE);
        factory.setNullString("-");
        factory.setFieldname("NAME_OPER");

        report.getItemBand().addElement(factory.createElement());
        
        factory = new TextFieldElementFactory();
        factory.setName("TALON");
        factory.setAbsolutePosition(new Point2D.Float(100, 0));
        factory.setMinimumSize(new FloatDimension(150, 12));
        factory.setColor(Color.black);
        factory.setHorizontalAlignment(ElementAlignment.LEFT);
        factory.setVerticalAlignment(ElementAlignment.MIDDLE);
        factory.setNullString("-");
        factory.setFieldname("TALON");

        report.getItemBand().addElement(factory.createElement());
        
        factory = new TextFieldElementFactory();
        factory.setName("SERV_TIME");
        factory.setAbsolutePosition(new Point2D.Float(200, 0));
        factory.setMinimumSize(new FloatDimension(150, 12));
        factory.setColor(Color.BLUE);
        factory.setHorizontalAlignment(ElementAlignment.LEFT);
        factory.setVerticalAlignment(ElementAlignment.MIDDLE);
        factory.setNullString("-");
        factory.setFieldname("SERV_TIME");

        report.getItemBand().addElement(factory.createElement());
     
        return report;
    }  
} 



Это сообщение отредактировал(а) alexgoodvin - 3.10.2006, 16:09
PM MAIL ICQ   Вверх
y3u
Дата 3.10.2006, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 9.9.2006
Где: Москва

Репутация: 1
Всего: 13



а зачем для экспорта в эксель использовать громоздкий JFreeReport? Используй Jakarta POI-HSSF и будет тебе счастье, там все очень просто делается... 
пример работы с хедером и футером
пример работы с типами данных в ячейке


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
batigoal
Дата 3.10.2006, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 11
Всего: 151



Цитата(alexgoodvin @  3.10.2006,  17:05 Найти цитируемый пост)
Как создать график при помощи jfreeReport 

В связке с ним может работать JFreeChart, он как раз для этого и предназначен.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
alexgoodvin
Дата 4.10.2006, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.10.2006
Где: г. Москва

Репутация: нет
Всего: нет



Большое спасибо, за рекомендации. 
Все расмотрю.

v3u
Как установить Jakarta POI-HSSF ?

batigoal, 
находил JFreeChart, но "руководство" настаивает на использовании JFreeReport

Есть ли простой пример, с использованием JFreeChart ?
Что-то птипа:

 1. Вот таблица
 2. Вот вытянули данные     
 3. Вот Гарфик
PM MAIL ICQ   Вверх
y3u
Дата 4.10.2006, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 9.9.2006
Где: Москва

Репутация: 1
Всего: 13



Цитата(alexgoodvin @  4.10.2006,  10:36 Найти цитируемый пост)
Как установить Jakarta POI-HSSF ?


просто бросаешь jar-ник в classpath своего приложения и все, там на оффсайте написано, обычно, какие могут понадобиться дополнительные джарники, чтобы он нормально работал, они обычно в комплекте в папке lib есть в зипнике...


Цитата(alexgoodvin @  4.10.2006,  10:36 Найти цитируемый пост)
находил JFreeChart, но "руководство" настаивает на использовании JFreeReport


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


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
batigoal
Дата 4.10.2006, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 11
Всего: 151



Цитата(alexgoodvin @  4.10.2006,  11:36 Найти цитируемый пост)
Есть ли простой пример, с использованием JFreeChart ?

Вот тут есть:

http://www.javaworld.com/javaworld/jw-12-2...rceprofile.html
http://www.sideofsoftware.com/reports_ChartExample.htm


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java tools & IDE's | Следующая тема »


 




[ Время генерации скрипта: 0.0445 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.