/sgstest

Primary LanguageC#

Задание 1

1. Обязательно к выполнению ( выполнить на ms sql ):

a. Напишите скрипты по созданию двух таблиц:

Таблица Контейнеров с полями

  • ИД - тип уникальный идентификатор
  • Номер - тип числовой
  • Тип – тип текстовый
  • Длина – тип числовой
  • Ширина – тип числовой
  • Высота – тип числовой
  • Вес – тип числовой
  • Пустой/не пустой – тип бит
  • Дата поступления – тип дата/время
CREATE TABLE Контейнеры (
    ИД UNIQUEIDENTIFIER PRIMARY KEY DEFAULT NEWID(),
    Номер INT,
    Тип NVARCHAR(255),
    Длина INT,
    Ширина INT,
    Высота INT,
    Вес INT,
    Пустой_не_пустой BIT,
    Дата_поступления DATETIME
);

Таблица операций с полями:

  • ИД - тип уникальный идентификатор
  • ИД Контейнера - тип уникальный идентификатор
  • Дата начала операции – тип дата/время
  • Дата окончания операции – тип дата/время
  • Тип операции - тип текстовый
  • ФИО оператора - тип текстовый
  • Место инспекции - тип текстовый
CREATE TABLE Операции (
    ИД UNIQUEIDENTIFIER PRIMARY KEY DEFAULT NEWID(),
    ИД_Контейнера UNIQUEIDENTIFIER FOREIGN KEY REFERENCES Контейнеры(ИД),
    Дата_начала_операции DATETIME,
    Дата_окончания_операции DATETIME,
    Тип_операции NVARCHAR(255),
    ФИО_оператора NVARCHAR(255),
    Место_инспекции NVARCHAR(255)
);

b. Напишите запрос, выбирающий из первой таблицы все данные по контейнерам в формате JSON не используя встроенную функцию

Результат:

SELECT 
    ('{"ИД": "' + CAST(ИД AS NVARCHAR(36)) +
    '", "Номер": ' + CAST(Номер AS NVARCHAR) +
    ', "Тип": "' + Тип +
    '", "Длина": ' + CAST(Длина AS NVARCHAR) +
    ', "Ширина": ' + CAST(Ширина AS NVARCHAR) +
    ', "Высота": ' + CAST(Высота AS NVARCHAR) +
    ', "Вес": ' + CAST(Вес AS NVARCHAR) +
    ', "Пустой/не пустой": ' + CAST(Пустой_не_пустой AS NVARCHAR) +
    ', "Дата поступления": "' + CONVERT(NVARCHAR, Дата_поступления, 120) + '"}') AS JSON
FROM Контейнеры;

c. Напишите запрос, выбирающий из второй таблицы все данные по операциям для определенного контейнера в формате JSON не используя встроенную функцию

Результат:

SELECT 
    ('{"ИД": "' + CAST(ИД AS NVARCHAR(36)) +
    '", "ИД Контейнера": "' + CAST(ИД_Контейнера AS NVARCHAR(36)) +
    '", "Дата начала операции": "' + CONVERT(NVARCHAR, Дата_начала_операции, 120) +
    '", "Дата окончания операции": "' + CONVERT(NVARCHAR, Дата_окончания_операции, 120) +
    '", "Тип операции": "' + Тип_операции +
    '", "ФИО оператора": "' + ФИО_оператора +
    '", "Место инспекции": "' + Место_инспекции + '"}') AS JSON
FROM Операции
WHERE ИД_Контейнера = @ИД_Контейнера; 

2. Создайте новое WPF приложение, с одной формой, на которой разместите поля ввода:

  • Город – выпадающий список
  • Цех – выпадающий список
  • Сотрудник – выпадающий список
  • Бригада – выпадающий список
  • Смена – текстовое поле.

Первые три поля зависят друг от друга, т.е. выбрал Город и список Цехов уменьшился

Основной код расположен в файле: MainWindowVM.cs