3.2 Создание SQL-запросов

В данном проекте были использованы различные SQL-запросы, для оптимизации работы и увеличения эффективности. Список этих запросов предоставлен ниже.

1) Сортировка

При нажатии на заголовок поля производится сортировка по этому полю, обработчики событий предоставлены ниже. Пример предоставлен на рис.3.8.

procedure TForm1.DBGid1TitleClick(Column: TColumn);

var s:string;

begin

s:=Column.Title.Caption;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select * from проект order by '+s);

ADOQuery1.Active:=false;

ADOQuery1.Active:=true;

end;

procedure TForm1.DBGrid2TitleClick(Column: TColumn);

var s:string;

begin

s:=Column.Title.Caption;

ADOQuery2.SQL.Clear;

ADOQuery2.SQL.Add('select * from Мероприятия order by '+s);

ADOQuery2.Active:=false;

ADOQuery2.Active:=true;

end;

Рисунок 3.8 – Пример сортировки

2) Выбор завершённых проектов за период, определяемый пользователем.

procedure TForm7.Button1Click(Sender: TObject);

function DateConv(date: tdate):string;

var i: integer;

begin

result:=datetostr(date);

for i:=1 to length(result) do if result[i]='.' then result[i]:='/';

end;

begin

adoquery1.SQL.Clear;

OutputQuery:='SELECT * FROM Проект WHERE ([Дата_начала_работ] Between #'+

DateConv(DateTimePicker1.Date)+'# And #'+DateConv(DateTimePicker2.Date)+

'#) And (статус='+#39+'завершен'+#39+')';

adoquery1.SQL.add(OutputQuery);

adoquery1.Active:=false;

adoquery1.Active:=true;

end;

Пример запроса приведен на рис.3.9.

Рисунок 3.9 – Запрос по проектам

3) Создание заявки на новый проект в пустой таблице «Заявки»

Данный шаг сделан потому, что для разработки проекта требуется определённое время. Так как задача администратора заключается в том, чтобы принять заявку, то таким способом она регистрируется в базе данных. Поскольку специалисту необходимо просчитать время, за которое проект будет закончен, какие работники будут выполнять мероприятия по данному проекту, то есть разработать проект.

procedure TForm8.Button1Click(Sender: TObject);

var s:string;

function DateConv(date: tdate):string;

var i: integer;

begin

result:=datetostr(date);

for i:=1 to length(result) do if result[i]='.' then result[i]:='/';

end;

begin

s:='INSERT into Заявки values ('+#39+combobox1.text+#39+', '+#39+edit1.text+#39+','+#39+combobox2.text+#39+', #'+dateConv(DateTimePicker1.Date)+'#)';

form1.ExecSQL(s);

Form9.ShowModal;

Form8.Close;

end;

Пример регистрации заявки предоставлен на рис 3.10-3.11.

Рисунок 3.10 – Регистрация заявки

Рисунок 3.11 – Заполнение формы заявок


4) запрос, показывающий сколько часов и по какому проекту отработал определённый работник

procedure TForm10.Button1Click(Sender: TObject);

var s: string;

begin

adoquery1.SQL.Clear;

s:='SELECT Работник.Фамилия, Работник.Имя, Проект.Название, Участие.[Кол-во_отработ_часов] FROM '+

Работник INNER JOIN (Проект INNER JOIN (Мероприятия INNER JOIN Участие ON Мероприятия.Id_мероприятия '+

'= Участие.Id_мероприятия) ON Проект.Id_проекта = Мероприятия.Id_проекта) ON Работник.Id_работника = Участие.Id_работника';

adoquery1.SQL.add('select * from ('+s+') where Фамилия ='+#39+edit1.text+#39+';');

adoquery1.active:=false;

adoquery1.active:=true;

end;

Вывод данного запроса на экран можно посмотреть на рис.3.12.

Рисунок 3.12 – Запрос по работникам

5) Вывод отчёта по завершённым проектам.

Такой отчёт может понадобиться руководству, затем чтобы оценить деятельность предприятия за определённый период. Пример предоставлен на рис.3.13.

SELECT Проект.Название, Заказчик.Наименование, Проект.Дата_начала_работ, Проект.Дата_окончания, Проект.Статус

FROM Заказчик INNER JOIN Проект ON Заказчик.Id_заказчика = Проект.Id_заказчика WHERE Проект.Статус="Завершен"

Рисунок 3.13 – Вывод отчёта перед печатью

6) Вывод отчёта по всем проектам

SELECT Проект.Название, Заказчик.Наименование, Мероприятия.Вид_работы, Работник.Фамилия, Работник.Имя

FROM Работник INNER JOIN (((Заказчик INNER JOIN Проект ON Заказчик.Id_заказчика = Проект.Id_заказчика)

INNER JOIN Мероприятия ON Проект.Id_проекта = Мероприятия.Id_проекта)

INNER JOIN Участие ON Мероприятия.Id_мероприятия = Участие.Id_мероприятия) ON Работник.Id_работника = Участие.Id_работника;

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

Рисунок 3.14 – Вывод отчёта по всем проектам



Информация о работе «Программный комплекс учёта работы предприятия по озеленению»
Раздел: Информатика, программирование
Количество знаков с пробелами: 25922
Количество таблиц: 1
Количество изображений: 14

Похожие работы

Скачать
177323
20
21

... в строительстве. Раздел предусматривает основные решения и организационно-технические мероприятия по монтажу конструкций шатра покрытия здания 2-го этапа строительства спортивного комплекса «Ледовый дворец» в г. Коломна Московской области. На период производства работ предусматривается использование для нужд строительства временных и постоянных автодорог, сетей электроэнергии и водоснабжения. ...

Скачать
154116
37
11

... рыночной экономикой. Она приоритетна, потому, что операции с денежными потоками, обеспечивающие платежеспособность, является существенным признаком состояния предприятия. 1.3 Пути повышения рентабельности   Основными способами повышения рентабельности являются следующие: - увеличение суммы прибыли от реализации продукции; - снижение себестоимости товарной продукции. Способы увеличения ...

Скачать
62608
5
0

... методическими предложениями на Управление ЖКХ. Поэтому работа ЕРЦ становится движущей силой реформы ЖКХ города, так как стимулирует принятие конкретных управленческих шагов. Требуется не только единая методика начислений, но и взвешенные решения по реструктуризации долгов. Например, должен быть определен порядок погашения задолженности: следует ли сначала гасить долг или закрывать текущие платежи. ...

Скачать
276314
87
37

... 1798181,5 - - - - Всего сметная стоимость 39868706 1820139 2511253 295369 - 33869 5280 Объектная смета на строительство завода цинкования мелкоразмерных конструкций Результат сметных расчетов по общестроительным, санитарно-техническим, электрическим работам сводятся в смету на объект, которая составляется ...

0 комментариев


Наверх