Колеги, приветствую.
Нужна помошь с отчетом. Возможно ктото решал такой вопрос, или знает ответ.
Работаю с javaStudio EE 8.0 ( или NetBeans 5.5)
Задача: Программа должна стартовать в виде "системного процесса"
Из базы (firebird) извлекать данные, при попощи запроса.
Надо поместить результат их в Excel.
Что сделано:
1. Данные по запросу выбираются.
2. Е Excel записываются, но с ошибками
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
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();
}
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
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 );
}
}
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.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
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;
}
}
ВОПРОС:
1. Как создать заголовок Страници
Как создать заголовок таблици (шапку)
report.setPageHeader();
report.setPageFooter();
2. Как указатьформат ячеек, т.к дата например помещается некоректно