Похожие презентации:
DispatchPro_Presentation_Practice_FINAL
1.
DispatchProWPF-приложение для диспетчеризации грузоперевозок
Кратко о проекте
Цель: автоматизация работы диспетчера (заказы, клиенты, рейсы, отчёты)
Технологии: WPF (.NET Framework 4.7.2), Entity Framework 6, SQL Server LocalDB
Формат: десктопное приложение с современным тёмным UI
Функции: CRUD, фильтрация, KPI, отчёты, экспорт CSV
DispatchPro • Практика • 2026
2.
областное государственное бюджетное профессиональное образовательное учреждение«Смоленская академия профессионального образования»
(ОГБПОУ СмолАПО)
корпус № 1
ОТЧЁТ
по производственной практике
по профессиональному модулю
ПМ.03 Сопровождение и обслуживание программного обеспечения
компьютерных систем
Выполнил(а): студент(ка)
Жировой Александра Алексеевна
Руководитель практики:
Мунтяну К.В.
Смоленск 2026
3.
Практика: чем занималась и чему научиласьОпыт разработки реального приложения
Что делала
Чему научилась
Проектирование структуры приложения
WPF: стили, шаблоны, DataGrid
Разработка интерфейса WPF
Работа с базой данных через EF
Entity Framework: DbContext,
миграции/создание БД
Реализация логики заказов и рейсов
CRUD и валидация данных
Отчёты и экспорт данных
Работа с датами и статусами
Экспорт в CSV и обработка ошибок
DispatchPro • Практика • 2026
4.
Проблема и цель проектаПроблема
Ручной учёт заявок и рейсов занимает много времени.
Сложно контролировать статус заказов и доход.
Нет единой базы клиентов и истории перевозок.
Цель
Создать удобную панель диспетчера с управлением заказами, клиентами и рейсами.
Добавить отчёты и аналитику (KPI) для контроля дохода.
Сделать современный UI и простую структуру данных.
DispatchPro • Практика • 2026
5.
Функциональные возможности DispatchProОсновные функции
Заказы: создание, редактирование, удаление, статусы (Создан / В пути / Завершён)
Клиенты: база клиентов с контактными данными
Рейсы: водитель, машина, маршрут, даты старта/финиша, статус рейса
Назначение заказов на рейс и снятие заказов
KPI-панель: количество заказов, активные, доход за период
Отчёты: группировка по дням / неделям / месяцам
Экспорт отчётов и полного списка в CSV
DispatchPro • Практика • 2026
6.
Архитектура приложенияСтруктура проекта
Принципы
Models (Order, Client, Trip)
EF Code First + LocalDB
Data (DispatchContext, SeedData)
Разделение данных и интерфейса
Views (MainWindow, окна CRUD)
CollectionView фильтрация (поиск)
XAML стили и шаблоны UI
Минимальная логика в окнах редактирования
Единый дизайн через стили ресурсов
DispatchPro • Практика • 2026
7.
Entity Framework: подключение базы данныхDispatchContext (DbContext)
public class DispatchContext : DbContext
{
public DispatchContext() : base("DispatchDb") { }
public DbSet<Order> Orders { get; set; }
public DbSet<Client> Clients { get; set; }
public DbSet<Trip> Trips { get; set; }
}
DbContext управляет таблицами и выполняет сохранение изменений (SaveChanges).
DispatchPro • Практика • 2026
8.
Модели данных (пример: Order)Класс Order
public class Order
{
public int Id { get; set; }
public string FromAddress { get; set; }
public string ToAddress { get; set; }
public string CargoName { get; set; }
public decimal WeightKg { get; set; }
public decimal DistanceKm { get; set; }
public decimal Price { get; set; }
public string Status { get; set; } // Created / OnRoute /
public DateTime CreatedAt { get; set; }
public DateTime? CompletedAt { get; set; }
public int ClientId { get; set; }
public virtual Client Client { get; set; }
DispatchPro • Практика • 2026
9.
Интерфейс WPF: современный UIПример XAML: кнопки и стили
<Style x:Key="BtnPrimary" TargetType="Button" BasedOn="{StaticResource BtnBase}">
<Setter Property="Background" Value="{StaticResource Accent}"/>
<Setter Property="BorderBrush" Value="{StaticResource Accent}"/>
<Setter Property="Foreground" Value="White"/>
</Style>
Особенности UI
Использование тёмной темы, карточек (Border), скруглений и акцентного цвета.
Единые стили позволяют быстро менять дизайн во всём приложении.
DispatchPro • Практика • 2026
10.
CRUD операции: добавление рейсаПример: создание рейса (MainWindow)
private void BtnAddTrip_Click(object sender, RoutedEventArgs e)
{
var win = new TripWindow(db);
win.Owner = this;
if (win.ShowDialog() == true)
{
db.Trips.Add(win.Trip);
db.SaveChanges();
dgTrips.Items.Refresh();
}
}
Что происходит
Открывается окно TripWindow → пользователь вводит данные → объект сохраняется в БД через EF.
DispatchPro • Практика • 2026
11.
Поиск и фильтрация данныхCollectionView фильтрация
ordersView.Filter = obj =>
{
var o = obj as Order;
if (o == null) return false;
return o.FromAddress.ToLower().Contains(q)
|| o.ToAddress.ToLower().Contains(q)
|| o.CargoName.ToLower().Contains(q);
};
Результат
Поиск в верхней панели моментально фильтрует таблицу заказов/клиентов/рейсов.
DispatchPro • Практика • 2026
12.
Отчёты и аналитика (KPI)KPI-панель
Отчёты
Всего заказов
Группировка дохода по дням
Заказы в пути
По неделям
Доход за период
По месяцам
Фильтр периода: день/неделя/месяц
Экспорт CSV
DispatchPro • Практика • 2026
13.
Экспорт данных в CSVПример экспорта (обработка ошибок)
try
{
using (var fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
using (var sw = new StreamWriter(fs, Encoding.UTF8))
sw.Write(csvText);
}
catch (IOException)
{
MessageBox.Show("Файл уже открыт. Закройте Excel и попробуйте снова.");
}
Польза
Экспорт позволяет быстро отправить отчёты руководству или открыть их в Excel.
DispatchPro • Практика • 2026
14.
Сложности и решенияОсновные проблемы в разработке
Ошибка datetime out-of-range (EF + SQL datetime) → нормализация дат и проверка nullable
UI WPF: стили ComboBox/DatePicker → переопределение шаблонов и цветов
Файл CSV занят Excel → try/catch и FileShare.ReadWrite
Связи Trip ↔ Orders → логика назначения и синхронизация статусов
DispatchPro • Практика • 2026
15.
Результат и выводыИтоги
Разработано полноценное WPF приложение с базой данных и UI в едином стиле.
Реализованы ключевые функции диспетчера: заказы, клиенты, рейсы, отчёты.
Освоены навыки: EF6, LocalDB, работа с данными, UI/UX, обработка ошибок.
Проект можно расширять: авторизация, печать документов, карта маршрутов, роли пользователей.
DispatchPro • Практика • 2026
16.
Спасибо за внимание!Вопросы?
Контакты / Демонстрация
Приложение готово к демонстрации: CRUD, рейсы, отчёты, экспорт CSV.
Можно показать работу на реальных данных.
DispatchPro • Практика • 2026
17.
Экран «Отчёты»Скриншот интерфейса DispatchPro
18.
Экран «Рейсы»Скриншот интерфейса DispatchPro
19.
Экран «Клиенты»Скриншот интерфейса DispatchPro
20.
Экран «Заказы»Скриншот интерфейса DispatchPro
21.
Почему название DispatchPro?• Название DispatchPro происходит от английского слова
«dispatch» — «диспетчеризация, распределение».
• Это отражает главную цель приложения: помогать диспетчеру
быстро управлять заказами, клиентами и рейсами.
• Суффикс «Pro» означает профессиональный инструмент для
работы.