
Лаб_25 Головков И.Е. 12002108
.docxФЕДЕРАЛЬНОЕ Государственное АВТОНОМНОЕ образовательное УЧРЕЖДЕНИЕ ВЫСШЕГО образования
«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ
ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»
(НИУ «БелГУ»)
ИНСТИТУТ ИНЖЕНЕРНЫХ И ЦИФРОВЫХ ТЕХНОЛОГИЙ
Кафедра прикладной информатики и информационных технологий
Отчет по лабораторной работе № 25
Тема работы «Составление отчетов по данным базы в разрабатываемой информационной системе»
по дисциплине «Управление данными»
студента очного отделения
2 курса 12002108 группы
Головкова Игоря Евгеньевича
Проверил:
Ассистент кафедры прикладной информатики и информационных технологий Сухарев М. А.
БЕЛГОРОД, 2023
Цель работы
1. Изучить технологию составления отчетов в выбранной среде разработки информационной системы при доступе к таблицам базы данных.
2. Научиться создавать приложения в выбранной среде разработки информационной системы, формирующие отчеты к таблицам базы данных.
Рисунок 1– Логическая модель БД
Рисунок 2 – Физическая модель БД
Ход работы:
Рисунок
3 – Вывод
в таблицу в приложении
Рисунок 4 – Создание отчёта в .docx-файле
Рисунок 5 – Создание отчёта в .html-файле
Вывод: изучена технология составления отчетов в выбранной среде разработки информационной системы при доступе к таблицам базы данных; научился создавать приложения в выбранной среде разработки информационной системы, формирующие отчеты к таблицам базы данных.
Листинг кода:
@FXML public void createDocReport() { XWPFDocument document = new XWPFDocument(); XWPFParagraph paragraph = document.createParagraph(); XWPFRun run = paragraph.createRun(); run.setText("Отчёт по данным таблицы " + tablesComboBox.getValue()); paragraph = document.createParagraph(); run = paragraph.createRun(); run.setText("Дата создания: " + LocalDate.now()); paragraph = document.createParagraph(); run = paragraph.createRun(); run.setText("Время создания: " + LocalTime.now().truncatedTo(ChronoUnit.SECONDS)); XWPFStyles styles = document.createStyles(); CTFonts fonts = CTFonts.Factory.newInstance(); fonts.setHAnsi("Segoe UI"); fonts.setAscii("Segoe UI"); styles.setDefaultFonts(fonts); File file = new File("Отчёт.docx"); try (FileOutputStream fileOutputStream = new FileOutputStream(file)) { String sqlQuery = "SELECT * FROM " + tablesComboBox.getValue(); sqlQuery = utilsController.appendWhereAndOrderByToQuery(whereTextField, orderByComboBox, ascCheckBox, sqlQuery); Statement statement = UDApp.connection.createStatement(); ResultSet resultSet = statement.executeQuery(sqlQuery); ResultSetMetaData metaData = resultSet.getMetaData(); XWPFTable table = document.createTable(); XWPFTableRow headerRow = table.getRow(0); headerRow.getCell(0).setText(metaData.getColumnName(1)); for (int i = 2; i <= metaData.getColumnCount(); i++) { headerRow.addNewTableCell().setText(metaData.getColumnName(i)); } int rowCounter = 0; while (resultSet.next()) { XWPFTableRow dataRow = table.createRow(); rowCounter++; for (int i = 1; i <= metaData.getColumnCount(); i++) { String value = resultSet.getString(i); dataRow.getCell(i - 1).setText(value); } } paragraph = document.createParagraph(); run = paragraph.createRun(); run.setText("Итого записей: " + rowCounter); document.write(fileOutputStream); Desktop.getDesktop().browse(file.toURI()); } catch (IOException e) { throw new RuntimeException(e); } catch (SQLException e) { utilsController.showSqlExceptionWindow(e); throw new RuntimeException(e); } }