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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JFreeReport, Введение в курс дела. 
:(
    Опции темы
Platon
Дата 29.5.2007, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

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



Здравствуйте, уважаемые.

Не могу найти точку входа в JFreeReport, от куда начать? Как говорится, хочу пример!
PM MAIL ICQ   Вверх
powerOn
Дата 29.5.2007, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

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



ну совсем народ обленился... первая же ссылка, которую гугл выдал:

http://www.object-refinery.com/jfreereport...rt-0.8.3-US.pdf

целый guide.  smile 


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Platon
Дата 30.5.2007, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

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



Прошу прощения, может я тороплюсь, но все никак понять не могу.
Код

JFreeReport report = ...
// you can get the property value from anywhere you want...
String username = System.getProperty("user.name");
report.setProperty("user.name", username);
// mark the property so it appears in the DataRow...
report.setPropertyMarked("user.name", true);


Вот код из гида, а как мне в XML файле задать это свойство? smile 
PM MAIL ICQ   Вверх
lando1
Дата 4.6.2007, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 30.4.2007

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



такая штука у меня работает (в принципе взял с сайта pentaho.com)
Код

import java.io.File;

import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

import org.jfree.report.JFreeReport;
import org.jfree.report.JFreeReportBoot;
import org.jfree.report.modules.gui.base.PreviewDialog;
import org.jfree.report.modules.parser.base.ReportGenerator;
import org.jfree.ui.RefineryUtilities;


public class Launcher {

    /**
     * Parses a report and displays a non-modal preview dialog.
     *
     * @param in the URL to the Report Definition XML file
     * @param data a valid tablemodel.
     */
    public static void executeReport (File in, TableModel data)
      throws Exception
    {
      if (in == null)
      {
        throw new Exception("URL is invalid");
      }

      try
      {
        final ReportGenerator generator = ReportGenerator.getInstance();
        JFreeReport report = generator.parseReport(in);
        report.setData (data);

        final PreviewDialog frame = new PreviewDialog(report);
        frame.pack();
        RefineryUtilities.positionFrameRandomly(frame);
        frame.setVisible(true);
      }
      catch(Exception e)
      {
        throw new Exception("Parsing failed", e);
      }
      
    }
    
    /**
     * @param args
     */
    public static void main(String[] args) throws Exception{
//         Booting initializes the library and all subsystems      
        JFreeReportBoot.getInstance().start();
        
        DefaultTableModel tm = new DefaultTableModel();
            
        String[] ident = {"Location","Department","Employee","Salary"};
        tm.setColumnIdentifiers(ident);
        Object[] data = {"Denver","Sales","John Doe",100.000};        
        tm.addRow(data);
        Object[] data2 = {"Denver","Sales","Jane Doe",100.000};
        tm.addRow(data2);
        Object[] data3 = {"Denver","Marketing","Arthur Dent",125.000};
        tm.addRow(data3);
        Object[] data4 = {"New York","Marketing","Adam Johnson",125.000};
        tm.addRow(data4);
        Object[] data5 = {"New York","Marketing","Eve Lynn",145.000};
        tm.addRow(data5);
        Object[] data6 = {"New York","Management","J.D. Salinger",500.000};
        tm.addRow(data6);
        
        
        File f = new File("ttt.xml");
        executeReport(f,tm);
    }

}



а вот собственно и сам отчет - файл ttt.xml (сгенерил в дизайнере):
Код

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE report-definition PUBLIC "-//JFreeReport//DTD report definition//EN//extended/version 0.8.5"
                         "http://jfreereport.sourceforge.net/extreport-085.dtd">
<report-definition name="Report">

    <parser-config>
        <object-factory class="org.jfree.xml.factory.objects.URLClassFactory"/>
        <object-factory class="org.jfree.report.modules.parser.ext.factory.objects.DefaultClassFactory"/>
        <object-factory class="org.jfree.report.modules.parser.ext.factory.objects.BandLayoutClassFactory"/>
        <object-factory class="org.jfree.xml.factory.objects.ArrayClassFactory"/>
        <element-factory class="org.jfree.report.modules.parser.ext.factory.elements.DefaultElementFactory"/>
        <stylekey-factory class="org.jfree.report.modules.parser.ext.factory.stylekey.DefaultStyleKeyFactory"/>
        <stylekey-factory class="org.jfree.report.modules.parser.ext.factory.stylekey.PageableLayoutStyleKeyFactory"/>
        <template-factory class="org.jfree.report.modules.parser.ext.factory.templates.DefaultTemplateCollection"/>
        <datasource-factory class="org.jfree.report.modules.parser.ext.factory.datasource.DefaultDataSourceFactory"/>
    </parser-config>

    <report-config>
        <simple-page-definition width="1" height="1">
            <page orientation="portrait" topmargin="20" leftmargin="20" bottommargin="20" rightmargin="20" pageformat="A4"/>
        </simple-page-definition>
    </report-config>

    <report-description>
        <report-header>
            <style>
                <basic-key name="pagebreak-before">false</basic-key>
                <basic-key name="pagebreak-after">false</basic-key>
                <compound-key name="layoutmanager">
                    <basic-object name="class">org.jfree.report.layout.StaticLayoutManager</basic-object>
                </compound-key>
            </style>
        </report-header>
        <report-footer>
            <style>
                <basic-key name="pagebreak-before">false</basic-key>
                <basic-key name="pagebreak-after">false</basic-key>
                <compound-key name="layoutmanager">
                    <basic-object name="class">org.jfree.report.layout.StaticLayoutManager</basic-object>
                </compound-key>
            </style>
        </report-footer>
        <page-header>
            <style>
                <basic-key name="display-on-firstpage">true</basic-key>
                <basic-key name="display-on-lastpage">true</basic-key>
                <compound-key name="layoutmanager">
                    <basic-object name="class">org.jfree.report.layout.StaticLayoutManager</basic-object>
                </compound-key>
            </style>
        </page-header>
        <page-footer>
            <style>
                <basic-key name="display-on-firstpage">true</basic-key>
                <basic-key name="display-on-lastpage">true</basic-key>
                <compound-key name="layoutmanager">
                    <basic-object name="class">org.jfree.report.layout.StaticLayoutManager</basic-object>
                </compound-key>
            </style>
        </page-footer>
        <watermark>            <style>
                <basic-key name="pagebreak-before">false</basic-key>
                <basic-key name="pagebreak-after">false</basic-key>
                <compound-key name="layoutmanager">
                    <basic-object name="class">org.jfree.report.layout.StaticLayoutManager</basic-object>
                </compound-key>
            </style>
</watermark>        <groups>
        </groups>
        <itemband>
            <style>
                <basic-key name="pagebreak-before">false</basic-key>
                <basic-key name="pagebreak-after">false</basic-key>
                <compound-key name="layoutmanager">
                    <basic-object name="class">org.jfree.report.layout.StaticLayoutManager</basic-object>
                </compound-key>
            </style>
            <element name="TextField@15208205" type="text/plain">
                <style>
                    <compound-key name="min-size">
                        <basic-object name="height">16.0</basic-object>
                        <basic-object name="width">69.0</basic-object>
                    </compound-key>
                    <basic-key name="paint">black</basic-key>
                    <basic-key name="font">dialog</basic-key>
                    <basic-key name="font-size">12</basic-key>
                    <basic-key name="line-height">0.0</basic-key>
                    <basic-key name="font-bold">false</basic-key>
                    <basic-key name="font-italic">false</basic-key>
                    <basic-key name="font-underline">false</basic-key>
                    <basic-key name="font-strikethrough">false</basic-key>
                    <basic-key name="font-embedded">false</basic-key>
                    <basic-key name="alignment">left</basic-key>
                    <basic-key name="valignment">top</basic-key>
                    <basic-key name="dynamic_height">false</basic-key>
                    <basic-key name="reserved-literal">..</basic-key>
                    <basic-key name="trim-text-content">true</basic-key>
                    <basic-key name="Excel.WrapText">false</basic-key>
                    <compound-key name="absolute_pos">
                        <basic-object name="x">17.0</basic-object>
                        <basic-object name="y">13.0</basic-object>
                    </compound-key>
                </style>
                <template references="string-field">
                    <basic-object name="field">Location</basic-object>
                    <basic-object name="nullValue"></basic-object>
                </template>
            </element>
            <element name="TextField@33229819" type="text/plain">
                <style>
                    <compound-key name="min-size">
                        <basic-object name="height">16.0</basic-object>
                        <basic-object name="width">75.0</basic-object>
                    </compound-key>
                    <basic-key name="paint">black</basic-key>
                    <basic-key name="font">dialog</basic-key>
                    <basic-key name="font-size">12</basic-key>
                    <basic-key name="line-height">0.0</basic-key>
                    <basic-key name="font-bold">false</basic-key>
                    <basic-key name="font-italic">false</basic-key>
                    <basic-key name="font-underline">false</basic-key>
                    <basic-key name="font-strikethrough">false</basic-key>
                    <basic-key name="font-embedded">false</basic-key>
                    <basic-key name="alignment">left</basic-key>
                    <basic-key name="valignment">top</basic-key>
                    <basic-key name="dynamic_height">false</basic-key>
                    <basic-key name="reserved-literal">..</basic-key>
                    <basic-key name="trim-text-content">true</basic-key>
                    <basic-key name="Excel.WrapText">false</basic-key>
                    <compound-key name="absolute_pos">
                        <basic-object name="x">73.0</basic-object>
                        <basic-object name="y">13.0</basic-object>
                    </compound-key>
                </style>
                <template references="string-field">
                    <basic-object name="field">Department</basic-object>
                    <basic-object name="nullValue"></basic-object>
                </template>
            </element>
            <element name="TextField@21130722" type="text/plain">
                <style>
                    <compound-key name="min-size">
                        <basic-object name="height">16.0</basic-object>
                        <basic-object name="width">66.0</basic-object>
                    </compound-key>
                    <basic-key name="paint">black</basic-key>
                    <basic-key name="font">dialog</basic-key>
                    <basic-key name="font-size">12</basic-key>
                    <basic-key name="line-height">0.0</basic-key>
                    <basic-key name="font-bold">false</basic-key>
                    <basic-key name="font-italic">false</basic-key>
                    <basic-key name="font-underline">false</basic-key>
                    <basic-key name="font-strikethrough">false</basic-key>
                    <basic-key name="font-embedded">false</basic-key>
                    <basic-key name="alignment">left</basic-key>
                    <basic-key name="valignment">top</basic-key>
                    <basic-key name="dynamic_height">false</basic-key>
                    <basic-key name="reserved-literal">..</basic-key>
                    <basic-key name="trim-text-content">true</basic-key>
                    <basic-key name="Excel.WrapText">false</basic-key>
                    <compound-key name="absolute_pos">
                        <basic-object name="x">157.0</basic-object>
                        <basic-object name="y">12.0</basic-object>
                    </compound-key>
                </style>
                <template references="string-field">
                    <basic-object name="field">Employee</basic-object>
                    <basic-object name="nullValue"></basic-object>
                </template>
            </element>
            <element name="TextField@33073671" type="text/plain">
                <style>
                    <compound-key name="min-size">
                        <basic-object name="height">16.0</basic-object>
                        <basic-object name="width">100.0</basic-object>
                    </compound-key>
                    <basic-key name="paint">black</basic-key>
                    <basic-key name="font">dialog</basic-key>
                    <basic-key name="font-size">12</basic-key>
                    <basic-key name="line-height">0.0</basic-key>
                    <basic-key name="font-bold">false</basic-key>
                    <basic-key name="font-italic">false</basic-key>
                    <basic-key name="font-underline">false</basic-key>
                    <basic-key name="font-strikethrough">false</basic-key>
                    <basic-key name="font-embedded">false</basic-key>
                    <basic-key name="alignment">left</basic-key>
                    <basic-key name="valignment">top</basic-key>
                    <basic-key name="dynamic_height">false</basic-key>
                    <basic-key name="reserved-literal">..</basic-key>
                    <basic-key name="trim-text-content">true</basic-key>
                    <basic-key name="Excel.WrapText">false</basic-key>
                    <basic-key name="Excel.CellDataFormat"></basic-key>
                    <compound-key name="absolute_pos">
                        <basic-object name="x">233.0</basic-object>
                        <basic-object name="y">13.0</basic-object>
                    </compound-key>
                </style>
                <template references="number-field">
                    <basic-object name="field">Salary</basic-object>
                    <basic-object name="format">#,##0.###</basic-object>
                    <basic-object name="nullValue"></basic-object>
                </template>
            </element>
            <element name="Element@13801408" type="shape/generic">
                <style>
                    <compound-key name="min-size" class="org.jfree.ui.FloatDimension">
                        <basic-object name="height">0.0</basic-object>
                        <basic-object name="width">513.0</basic-object>
                    </compound-key>
                    <basic-key name="paint">black</basic-key>
                    <compound-key name="stroke" class="java.awt.BasicStroke">
                        <basic-object name="value">1.0</basic-object>
                    </compound-key>
                    <basic-key name="scale">true</basic-key>
                    <basic-key name="keepAspectRatio">false</basic-key>
                    <basic-key name="dynamic_height">false</basic-key>
                    <compound-key name="absolute_pos">
                        <basic-object name="x">17.0</basic-object>
                        <basic-object name="y">28.0</basic-object>
                    </compound-key>
                    <basic-key name="fill-shape">false</basic-key>
                    <basic-key name="draw-shape">true</basic-key>
                </style>
                <datasource type="StaticDataSource">
                    <compound-object name="value" class="java.awt.geom.Line2D$Double">
                        <basic-object name="x1">0.0</basic-object>
                        <basic-object name="x2">513.0</basic-object>
                        <basic-object name="y1">0.0</basic-object>
                        <basic-object name="y2">0.0</basic-object>
                    </compound-object>
                </datasource>
            </element>
        </itemband>
    </report-description>
    <functions>
        <property-ref name="report.date"/>
    </functions>
</report-definition>




но все это работает только на jfr8 - на след. версии другие интерфейсы((
PM MAIL ICQ   Вверх
Nikola661
Дата 3.4.2008, 03:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 14.5.2007

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



Цитата(lando1 @ 4.6.2007,  21:40)
а вот собственно и сам отчет - файл ttt.xml (сгенерил в дизайнере):

но все это работает только на jfr8 - на след. версии другие интерфейсы((

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

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

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


 




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


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

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