Finance manager
Лабораторна робота №2 - Документація коду
Loading...
Searching...
No Matches
Public Member Functions | Private Slots | Private Member Functions | Private Attributes | List of all members
ReportsWindow Class Reference

Вікно для генерації та відображення звітів, а також їх експорту у CSV/JSON. More...

#include <ReportsWindow.h>

Inheritance diagram for ReportsWindow:
Inheritance graph
[legend]
Collaboration diagram for ReportsWindow:
Collaboration graph
[legend]

Public Member Functions

 ReportsWindow (const User &user, QWidget *parent=nullptr)
 Конструктор класу ReportsWindow.
 

Private Slots

void onGenerateFullReport ()
 Слот, що спрацьовує при натисканні "Сформувати повний звіт".
 
void onExportCSV ()
 Слот для експорту поточного звіту у формат CSV.
 
void onExportJSON ()
 Слот для експорту поточного звіту у формат JSON.
 
void onClose ()
 Слот для закриття поточного діалогового вікна.
 
void onUpdateExchangeRates ()
 Слот для оновлення курсу валют з API.
 
void onCurrencyChanged ()
 Слот, що спрацьовує при зміні вибраної валюти.
 

Private Member Functions

void refreshReport ()
 Оновлює відображення звіту з урахуванням вибраної валюти.
 

Private Attributes

const Useruser
 Посилання (лише для читання) на користувача, для якого генерується звіт.
 
QTextEdit * output
 Текстове поле для відображення згенерованого звіту.
 
QLineEdit * pathInput
 Поле для введення шляху збереження файлу (для експорту).
 
QComboBox * currencyCombo
 Випадаючий список для вибору валюти відображення.
 
QPushButton * btnUpdateRates
 Кнопка для оновлення курсів валют з API.
 
CurrencyConverter converter
 Конвертер валют для перетворення сум.
 
QString selectedCurrency
 Поточна вибрана валюта для відображення.
 

Detailed Description

Вікно для генерації та відображення звітів, а також їх експорту у CSV/JSON.

Це вікно надає користувачу інтерфейс для перегляду повного звіту про свої фінанси та збереження цього звіту у різних форматах.

Constructor & Destructor Documentation

◆ ReportsWindow()

ReportsWindow::ReportsWindow ( const User u,
QWidget *  parent = nullptr 
)

Конструктор класу ReportsWindow.

Конструктор ReportsWindow.

Parameters
userПосилання на об'єкт користувача (лише для читання), дані якого використовуються для звітів.
parentВказівник на батьківський віджет (зазвичай 0 або nullptr).

Ініціалізує елементи інтерфейсу: заголовок, текстове поле 'output' та кнопки для генерації звіту, експорту та закриття. Встановлює з'єднання сигналів та слотів.

Member Function Documentation

◆ onClose

void ReportsWindow::onClose ( )
privateslot

Слот для закриття поточного діалогового вікна.

Закриває діалогове вікно.

◆ onCurrencyChanged

void ReportsWindow::onCurrencyChanged ( )
privateslot

Слот, що спрацьовує при зміні вибраної валюти.

◆ onExportCSV

void ReportsWindow::onExportCSV ( )
privateslot

Слот для експорту поточного звіту у формат CSV.

Експортує дані користувача у файл CSV.

Використовує шлях, вказаний у 'pathInput', або запитує новий.

  1. Перевіряє, чи є транзакції.
  2. Відкриває QFileDialog, щоб користувач обрав шлях збереження.
  3. Створює ReportGenerator та викликає його метод exportToCSV().
  4. Показує повідомлення про успіх.

◆ onExportJSON

void ReportsWindow::onExportJSON ( )
privateslot

Слот для експорту поточного звіту у формат JSON.

Експортує дані користувача у файл JSON.

Використовує шлях, вказаний у 'pathInput', або запитує новий.

  1. Перевіряє, чи є транзакції.
  2. Відкриває QFileDialog, щоб користувач обрав шлях збереження.
  3. Створює ReportGenerator та викликає його метод exportToJSON().
  4. Показує повідомлення про успіх.

◆ onGenerateFullReport

void ReportsWindow::onGenerateFullReport ( )
privateslot

Слот, що спрацьовує при натисканні "Сформувати повний звіт".

Генерує повний текстовий звіт та відображає його у полі 'output'.

Генерує звіт на основі даних користувача та виводить його у текстове поле 'output'.

  1. Перевіряє, чи є транзакції у користувача.
  2. Створює екземпляр ReportGenerator.
  3. Розраховує загальну суму.
  4. Форматує рядок звіту (QString) з заголовком, статистикою та списком транзакцій.
  5. Встановлює згенерований текст у QTextEdit 'output'.

◆ onUpdateExchangeRates

void ReportsWindow::onUpdateExchangeRates ( )
privateslot

Слот для оновлення курсу валют з API.

◆ refreshReport()

void ReportsWindow::refreshReport ( )
private

Оновлює відображення звіту з урахуванням вибраної валюти.

Member Data Documentation

◆ btnUpdateRates

QPushButton* ReportsWindow::btnUpdateRates
private

Кнопка для оновлення курсів валют з API.

◆ converter

CurrencyConverter ReportsWindow::converter
private

Конвертер валют для перетворення сум.

◆ currencyCombo

QComboBox* ReportsWindow::currencyCombo
private

Випадаючий список для вибору валюти відображення.

◆ output

QTextEdit* ReportsWindow::output
private

Текстове поле для відображення згенерованого звіту.

◆ pathInput

QLineEdit* ReportsWindow::pathInput
private

Поле для введення шляху збереження файлу (для експорту).

◆ selectedCurrency

QString ReportsWindow::selectedCurrency
private

Поточна вибрана валюта для відображення.

◆ user

const User& ReportsWindow::user
private

Посилання (лише для читання) на користувача, для якого генерується звіт.


The documentation for this class was generated from the following files: