Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Поиск ремонтов. 
Проектирование и разработка базы данных и приложения "Техническое обслуживание станков" средствами СУБД Firebird

РефератПомощь в написанииУзнать стоимостьмоей работы

Помимо всех ремонтов заданного вида на форме отображается общая сумма этих ремонтов. Таким образом, форма для своей работы использует сразу два запроса, на поиск ремонтов и на вычисление их общей стоимости. В данном пункте меню реализуется функция просмотра ремонтов из таблицы REPAIR только одного конкретного вида. Вид ремонта задается пользователем через выпадающий список. Вид формы: Для того… Читать ещё >

Поиск ремонтов. Проектирование и разработка базы данных и приложения "Техническое обслуживание станков" средствами СУБД Firebird (реферат, курсовая, диплом, контрольная)

Данный пункт меню дает пользователю возможность просматривать зарегистрированные в системе ремонты, фильтруя их по различным параметрам, таким как вид ремонта, марка ремонтируемого станка, дата регистрации. Это меню состоит из нескольких подпунктов:

По виду

В данном пункте меню реализуется функция просмотра ремонтов из таблицы REPAIR только одного конкретного вида. Вид ремонта задается пользователем через выпадающий список. Вид формы:

Рис. 16.

Рис. 16.

Помимо всех ремонтов заданного вида на форме отображается общая сумма этих ремонтов. Таким образом, форма для своей работы использует сразу два запроса, на поиск ремонтов и на вычисление их общей стоимости.

Запрос на поиск ремонтов:

select r. REPAIR_STARTDATE,.

r.MACHINE_CODE,.

rt.REPAIRTYPE_NAME,.

rt.REPAIRTYPE_COST,.

r.REPAIR_DONE,.

r.REPAIR_NOTE.

from REPAIR r.

inner join REPAIRTYPE rt.

on r. REPAIRTYPE_CODE = rt. REPAIRTYPE_CODE.

where rt. REPAIRTYPE_CODE = :rt_code.

order by REPAIR_STARTDATE asc.

Запрос выбирает из REPAIR все ремонты, код вида ремонта которых равен заданному пользователем (параметр :rt_code определяется через выбранный элемент выпадающего списка). Второй запрос аналогичен этому, но вместо выборки всех ремонтов, удовлетворяющих условию, он вычисляет их общую стоимость:

select.

case.

when (sum (rt.REPAIRTYPE_COST) is null).

then 0.

else.

sum (rt.REPAIRTYPE_COST).

end as S.

from REPAIR r.

inner join REPAIRTYPE rt.

on r. REPAIRTYPE_CODE = rt. REPAIRTYPE_CODE.

where rt. REPAIRTYPE_CODE = :rt_code.

Для того, чтобы результат мог корректно отобразиться в текстовом поле, значение null, возвращаемое запросом, заменяется на 0.

Реализация в приложении:

/* просмотр ремонтов по виду */.

private void btnRepairTypeOK_Click (object sender, EventArgs e) {.

// извлечение выбранного типа из comboBox’а.

DataRowView drw_type = (DataRowView)comboRepairType.SelectedItem;

DataRow dr_type = drw_type.Row;

int repairtype_code = dr_type.Field («REPAIRTYPE_CODE»);

// запрос и заполнение таблицы.

OleDbCommand cmd = new OleDbCommand (««, con, trans);

cmd.Parameters.AddWithValue («rt_code», repairtype_code.ToString ());

OleDbDataAdapter ad = new OleDbDataAdapter (cmd);

dtRepairTypeQ.Clear ();

ad.Fill (dtRepairTypeQ);

dgRepairType.DataSource = dtRepairTypeQ;

ad.Dispose ();

cmd.Dispose ();

// запрос на вычисление суммы.

cmd = new OleDbCommand (««, con, trans);

cmd.Parameters.AddWithValue («rt_code», repairtype_code.ToString ());

ad = new OleDbDataAdapter (cmd);

dtRepairTypeQSum.Clear ();

ad.Fill (dtRepairTypeQSum);

txtRepairTypeSum.Text.

= ((decimal)dtRepairTypeQSum.Rows[0][" S" ]).ToString ();

cmd.Dispose ();

ad.Dispose ();

}.

Пример работы запроса:

Рис. 17.

Рис. 17.

Показать весь текст
Заполнить форму текущей работой