Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб_25 Головков И.Е. 12002108

.docx
Скачиваний:
0
Добавлен:
26.06.2024
Размер:
346.41 Кб
Скачать

ФЕДЕРАЛЬНОЕ Государственное АВТОНОМНОЕ образовательное УЧРЕЖДЕНИЕ ВЫСШЕГО образования

«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ

ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»

(НИУ «БелГУ»)

ИНСТИТУТ ИНЖЕНЕРНЫХ И ЦИФРОВЫХ ТЕХНОЛОГИЙ

Кафедра прикладной информатики и информационных технологий

Отчет по лабораторной работе № 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); } }