Отчет по лабораторнопрактическим работам 7 и 8 Построение отчетов в pdf и html форматах
Скачать 0.6 Mb.
|
Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Санкт-Петербургский государственный электротехнический университет “ЛЭТИ” им.В.И.Ульянова (Ленина) » Кафедра ВТ ОТЧЕТ по лабораторно-практическим работам № 7 и 8 «Построение отчетов в PDF- и HTML- форматах» «Организация многопоточных приложений» по дисциплине «Объектно - ориентированное программирование на языке Java» Выполнил Бондаренко Р.В. Факультет КТИ Группа № 1307 Подпись преподавателя __________ Санкт-Петербург 2013 г Цель работы Знакомство со способами формирования отчетов с использованием конструктора Jaspersoft iReport Designert, библиотекой iTest и правилами построения параллельных приложений в языке Java. Описание задания Распечатка исходного XML – файла. Исходный и отредактированный XML-файл. Скриншоты, иллюстрирующие построение шаблона в дизайнере iReport. Распечатка сгенерированных файлов. Текст документации, сгенерированный Javadoc. Исходный текст построения отчета. Фрагмент кода, отвечающие за организацию параллельной работы трех потоков. Фрагмент кода, отвечающие за сохранения данных в pdf и html форматах. Описание и проверка работоспособности приложения При запуске программы пользователь должен будет нажать на поле меню «Файл», после чего в открывшемся списке нажать на “ Новое ” , в результате произойдёт следующие: Начнётся загрузка данных из xml файла “xmlDataLibrary” в таблицу. К данным, которые загрузились из “xmlDataLibrary” файла, будет добавлена ещё одна книга Гашина В.М. (в конце списка). Откроем файла “xmlDataLibrary”, чтобы убедиться, что он не содержит последнею строку(книгу Гашина В.М). Вся данные из таблицы сохраняются в pdf файле “PdfDataLibraryf” и html файле “HtmlDataLibrary”. Текст документации Javadoc Фрагмент кода, отвечающие за работу трех потоков class tthread extends Thread{ private int type; public tthread(int i) { type=i; } public void run() { if (type==1) { synchronized (shared) { try { shared.wait(); } catch (InterruptedException e) { e.printStackTrace(); } try { xmlOpen q = new xmlOpen("Открыть данные XML",tableModel,table); } catch (Exception e1) { e1.printStackTrace(); } } } if (type==2) { synchronized (shared) { shared.notifyAll(); try { shared.wait(); } catch (InterruptedException e) { e.printStackTrace(); } tableModel.addRow(new String[] {"Гаршин В. М.","Денщик и офицер","1684","Да"} ); shared.notifyAll(); } } if (type==3) { synchronized (shared) { shared.notifyAll(); try { shared.wait(); } catch (InterruptedException e) { e.printStackTrace(); } pdfSave qwe = new pdfSave(tableModel); htmlSave qwe2 = new htmlSave(tableModel); } } } } new tthread(1).start(); new tthread(2).start(); new tthread(3).start(); Фрагмент кода, отвечающие за сохранения данных в pdf и html форматах Сохранения данных в pdf формате package LessonsPackages; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import javax.swing.table.DefaultTableModel; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Font; import com.itextpdf.text.PageSize; import com.itextpdf.text.Phrase; import com.itextpdf.text.pdf.BaseFont; import com.itextpdf.text.pdf.PdfPCell; import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfWriter; public class pdfSave { pdfSave(DefaultTableModel tableModel) { Document document = new Document(PageSize.A4, 50, 50, 50, 50); PdfPTable t = new PdfPTable(4); try { PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("./Data/Library/PdfDataLibraryf.pdf")); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } BaseFont bfComic = null; try { bfComic = BaseFont.createFont("/Windows/Fonts/Arial.ttf",BaseFont.IDENTITY_H, BaseFont.EMBEDDED); } catch (DocumentException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } Font font1 = new Font(bfComic, 12); t.addCell(new PdfPCell(new Phrase("Автор",font1))); t.addCell(new PdfPCell(new Phrase("Книга",font1))); t.addCell(new PdfPCell(new Phrase("Год издания",font1))); t.addCell(new PdfPCell(new Phrase("Наличие",font1))); for(int i = 0; i < tableModel.getRowCount(); i++){ t.addCell(new Phrase((String) tableModel.getValueAt(i,0),font1)); t.addCell(new Phrase((String) tableModel.getValueAt(i,1),font1)); t.addCell(new Phrase((String) tableModel.getValueAt(i,2),font1)); t.addCell(new Phrase((String) tableModel.getValueAt(i,3),font1)); } document.open(); try { document.add(t); } catch (DocumentException e) { e.printStackTrace(); } document.close(); } } Сохранения данных в html формате package LessonsPackages; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import javax.swing.table.DefaultTableModel; public class htmlSave { htmlSave(DefaultTableModel tableModel){ PrintWriter pw = null; try { pw = new PrintWriter(new FileWriter("./Data/Library/HtmlDataLibrary.html")); } catch (IOException e) { e.printStackTrace(); } pw.println("
pw.close(); } } Вывод Во время выполнения данной лабораторной работы, были получены навыки работы с технологией формирования отчетов с использованием конструктора Jaspersoft iReport Designert, библиотекой iTest и правилами построения параллельных приложений в языке Java. В пункте «Описание и проверки работоспособности приложения» ошибок выявлено не было. |