Программный продукт АИС "Учет рабочих вакансий"

Необходимые для разработки автоматизированной информационной системы программные и технические средства. Иерархическая схема наследования объектов. Добавление новой записи. Формирование отчетов в формате Word. Инструментальные средства разработки.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 20.06.2014
Размер файла 996,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

wdAlignParagraphRight = 2;

wdLineStyleSingle = 1;

var

wdApp, wdDoc, wdRng, wdTable : Variant;

i, j, Res : Integer;

D : TDateTime;

Bm : TBookMark;

Sd : TSaveDialog;

begin

//{

Sd := SaveDialog1; //SaveDialog1 уже должен быть на форме.

if Sd.InitialDir = '' then Sd.InitialDir := ExtractFilePath( ParamStr(0) );

//Запуск диалога сохранения файла.

if not Sd.Execute then Exit;

//Если файл с заданным именем существует, то запускаем диалог с пользователем.

if FileExists(Sd.FileName) then begin

Res := MessageBox(0, 'Файл с заданным именем уже существует. Перезаписать?'

,'Внимание!', MB_YESNO + MB_ICONQUESTION + MB_APPLMODAL);

if Res <> IDYES then Exit;

end;

//Попытка запустить MS Word.

try

wdApp := CreateOleObject('Word.Application');

except

MessageBox(0, 'Не удалось запустить MS Word. Действие отменено.'

,'Внимание!', MB_OK + MB_ICONERROR + MB_APPLMODAL);

Exit;

end;

//Делаем видимым окно MS Word. На постоянной основе или на время отладки.

wdApp.Visible := True;

//Создаём новый документ.

wdDoc := wdApp.Documents.Add;

//На случай, если очень много данных и wdApp.Visible := True - тогда

//для ускорения работы отключаем перерисовку окна MS Word.

wdApp.ScreenUpdating := False;

try

wdRng := wdDoc.Content; //Диапазон, охватывающий всё содержимое документа.

//Параграф 1. Заголовок отчёта.

//Заголовок отчёта и перевод строки.

wdRng.InsertAfter('Рабочие вакансии'#13#10);

//Выравнивание по центру.

wdRng.ParagraphFormat.Alignment := wdAlignParagraphCenter;

//Параметры шрифта.

wdRng.Font.Name := 'Times New Roman';

wdRng.Font.Bold := True;

wdRng.Font.Size := 14;

//Параграф 2. Общие сведения.

//Формируем диапазон нового параграфа непосредственно за текущим диапазоном.

wdRng.Start := wdRng.End;

wdRng.InsertAfter(#13#10);

D := Now;

wdRng.InsertAfter('Отчет сформирован ' + FormatDateTime('dd.mm.yyyy', D) + ' в ' + FormatDateTime('hh:nn', D) + #13#10);

//Сброс параметров параграфа.

wdRng.ParagraphFormat.Reset;

//Выравнивание по левому краю.

wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;

//Параметры шрифта.

wdRng.Font.Reset; //Сброс параметров шрифта.

wdRng.Font.Size := 12;

wdRng.Font.Bold := True;

//Параграф 3. Заголовок таблицы.

wdRng.Start := wdRng.End;

wdRng.InsertAfter(#13#10);

wdRng.InsertAfter(title+#13#10);

wdRng.ParagraphFormat.Reset;

wdRng.Font.Reset;

wdRng.Font.Size := 12;

wdRng.Font.Bold := False;

//Параграф 4. Таблица.

if not qry1.Active then qry1.Open;

wdRng.Start := wdRng.End;

//Добавляем таблицу MS Word. Пока создаём таблицу с двумя строками.

wdTable := wdDoc.Tables.Add(wdRng.Characters.Last, 2, qry1.Fields.Count);

//Параметры линий таблицы.

wdTable.Borders.InsideLineStyle := wdLineStyleSingle;

wdTable.Borders.OutsideLineStyle := wdLineStyleSingle;

//Сброс параметров параграфа.

wdRng.ParagraphFormat.Reset;

//Выравнивание всей таблицы - по левому краю.

wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;

//Оформление шапки.

wdRng := wdTable.Rows.Item(1).Range; //Диапазон первой строки.

wdRng.ParagraphFormat.Alignment := wdAlignParagraphCenter;

wdRng.Font.Size := 10;

wdRng.Font.Bold := True;

//Оформление первой строки данных - это вторая строка в таблице.

//При добавлении следующих строк, их оформление будет копироваться с этой строки.

wdRng := wdTable.Rows.Item(2).Range; //Диапазон второй строки.

wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;

wdRng.Font.Size := 10;

wdRng.Font.Bold := False;

//Записываем шапку таблицы.

for i := 0 to qry1.Fields.Count - 1 do

wdTable.Cell(1, i + 1).Range.Text := qry1.Fields[i].DisplayName;

//Записываем данные таблицы.

qry1.DisableControls;

Bm := qry1.GetBookMark;

qry1.First;

i := 1; //Текущая строка в таблице MS Word.

while not qry1.Eof do begin

Inc(i);

//Если требуется, добавляем новую строку в конец таблицы.

if i > 2 then wdTable.Rows.Add;

//Записываем данные в строку таблицы MS Word.

for j := 0 to qry1.Fields.Count - 1 do

wdTable.Cell(i, j + 1).Range.Text := qry1.Fields[j].AsString;

qry1.Next;

end;

qry1.GotoBookMark(Bm);

qry1.EnableControls;

finally

//Включение перерисовки окна MS Word. В случае, если wdApp.Visible := True.

wdApp.ScreenUpdating := True;

end;

wdApp.DisplayAlerts := False; //Отключаем режим показа предупреждений.

try

wdDoc.SaveAs(FileName:=Sd.FileName); //Запись документа в файл.

finally

wdApp.DisplayAlerts := True; //Включаем режим показа предупреждений.

end;

wdApp.Activate;

end;

procedure TForm1.NaklRep(vrab:string;vvak:string;vsum:string);

const

wdAlignParagraphCenter = 1;

wdAlignParagraphLeft = 0;

wdAlignParagraphRight = 2;

wdLineStyleSingle = 1;

var

wdApp, wdDoc, wdRng, wdTable : Variant;

i, j, Res : Integer;

D : TDateTime;

Bm : TBookMark;

Sd : TSaveDialog;

begin

//{

Sd := SaveDialog1;

if Sd.InitialDir = '' then Sd.InitialDir := ExtractFilePath( ParamStr(0) );

//Запуск диалога сохранения файла.

if not Sd.Execute then Exit;

//Если файл с заданным именем существует, то запускаем диалог с пользователем.

if FileExists(Sd.FileName) then begin

Res := MessageBox(0, 'Файл с заданным именем уже существует. Перезаписать?'

,'Внимание!', MB_YESNO + MB_ICONQUESTION + MB_APPLMODAL);

if Res <> IDYES then Exit;

end;

//Попытка запустить MS Word.

try

wdApp := CreateOleObject('Word.Application');

except

MessageBox(0, 'Не удалось запустить MS Word. Действие отменено.'

,'Внимание!', MB_OK + MB_ICONERROR + MB_APPLMODAL);

Exit;

end;

wdApp.Visible := True;

//Создаём новый документ.

wdDoc := wdApp.Documents.Add;

wdApp.ScreenUpdating := False;

try

wdRng := wdDoc.Content; //Диапазон, охватывающий всё содержимое документа.

//Параграф 1. Заголовок отчёта.

//Заголовок отчёта и перевод строки.

D:=Now;

wdRng.InsertAfter('Акт приема на работу от '+FormatDateTime('dd.mm.yyyy', D)+#13#10);

//Выравнивание по центру.

wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;

//Параметры шрифта.

wdRng.Font.Name := 'Times New Roman';

wdRng.Font.Bold := True;

wdRng.Font.Size := 14;

//Параграф 2. Общие сведения.

//Формируем диапазон нового параграфа непосредственно за текущим диапазоном.

wdRng.Start := wdRng.End;

wdRng.InsertAfter(#13#10);

wdRng.InsertAfter('Выдана: _______________________' + #13#10);

//Сброс параметров параграфа.

wdRng.ParagraphFormat.Reset;

//Выравнивание по левому краю.

wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;

wdRng.Font.Reset; //Сброс параметров шрифта.

wdRng.Font.Size := 12;

wdRng.Font.Bold := True;

//Параграф 4. Таблица.

wdRng.Start := wdRng.End;

//Добавляем таблицу MS Word. Пока создаём таблицу с двумя строками.

wdTable := wdDoc.Tables.Add(wdRng.Characters.Last, 2, 3);

//Параметры линий таблицы.

wdTable.Borders.InsideLineStyle := wdLineStyleSingle;

wdTable.Borders.OutsideLineStyle := wdLineStyleSingle;

//Сброс параметров параграфа.

wdRng.ParagraphFormat.Reset;

//Выравнивание всей таблицы - по левому краю.

wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;

//Оформление шапки.

wdRng := wdTable.Rows.Item(1).Range; //Диапазон первой строки.

wdRng.ParagraphFormat.Alignment := wdAlignParagraphCenter;

wdRng.Font.Size := 10;

wdRng.Font.Bold := True;

//Оформление первой строки данных - это вторая строка в таблице.

//При добавлении следующих строк, их оформление будет копироваться с этой строки.

wdRng := wdTable.Rows.Item(2).Range; //Диапазон второй строки.

wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;

wdRng.Font.Size := 10;

wdRng.Font.Bold := False;

wdTable.Columns.Item(1).Width:=280;

wdTable.Columns.Item(2).Width:=100;

wdTable.Columns.Item(3).Width:=60;

wdTable.Cell(1, 1).Range.Text := 'Работодатель';

wdTable.Cell(1, 2).Range.Text := 'Вакансия';

wdTable.Cell(1, 3).Range.Text := 'Зарплата';

wdTable.Cell(2, 1).Range.Text := vrab;

wdTable.Cell(2, 2).Range.Text := vvak;

wdTable.Cell(2, 3).Range.Text := vsum + ' руб.';

wdRng := wdDoc.Range;

finally

//Включение перерисовки окна MS Word. В случае, если wdApp.Visible := True.

wdApp.ScreenUpdating := True;

end;

wdApp.DisplayAlerts := False; //Отключаем режим показа предупреждений.

try

wdDoc.SaveAs(FileName:=Sd.FileName); //Запись документа в файл.

finally

wdApp.DisplayAlerts := True; //Включаем режим показа предупреждений.

end;

wdApp.Activate;

end;

function TForm1.StringReplaceExt(const S : string; OldPattern, NewPattern: array of string; Flags: TReplaceFlags):string;

var

i : integer;

begin

Assert(Length(OldPattern)=(Length(NewPattern)));

Result:=S;

for i:= Low(OldPattern) to High(OldPattern) do

Result:=StringReplace(Result,OldPattern[i], NewPattern[i], Flags);

end;

function TForm1.mysql_real_escape_string(const unescaped_string : string ) : string;

begin

Result:=StringReplaceExt(unescaped_string,

['\', #39, #34, #0, #10, #13, #26], ['\\','\'#39,'\'#34,'\0','\n','\r','\Z'] ,

[rfReplaceAll]

);

end;

function TForm1.getPostId(name:string):string;

begin

qry1.Active:=false;

qry1.SQL.text:='SELECT `Код работодателя` FROM Работодатель WHERE `Наименование работодателя`='''+name+'''';

qry1.ExecSQL;

qry1.Active:=True;

Result:=qry1.fields[0].asstring;

qry1.SQL.Clear;

end;

function TForm1.getDetId(name:string):string;

begin

qry1.Active:=false;

qry1.SQL.text:='SELECT `Код вакансии` FROM Вакансия WHERE Должность='''+name+'''';

qry1.ExecSQL;

qry1.Active:=True;

Result:=qry1.fields[0].asstring;

qry1.SQL.Clear;

end;

procedure TForm1.cbb_refresh();

begin

ed1.Clear;

ed2.Clear;

edF1.Clear;

edF2.Clear;

// поставщики

qry1.Active:=false;

qry1.SQL.Text:='SELECT `Наименование работодателя` FROM Работодатель';

qry1.ExecSQL;

qry1.Active:=True;

while not qry1.Eof do

begin

ed1.AddItem(qry1.fields[0].AsString,self);

edF1.AddItem(qry1.fields[0].AsString,self);

qry1.Next;

end;

// детали

qry1.Active:=false;

qry1.SQL.Text:='SELECT `Должность` FROM `Вакансия`';

qry1.ExecSQL;

qry1.Active:=True;

while not qry1.Eof do

begin

ed2.AddItem(qry1.fields[0].AsString,self);

edF2.AddItem(qry1.fields[0].AsString,self);

qry1.Next;

end;

end;

procedure TForm1.tab_refresh();

begin

cbb_refresh;

qry1.Active:=false;

qry1.SQL.Clear;

qry1.SQL.Add('SELECT Заявка.`№п/п`, Работодатель.`Наименование работодателя` AS Работодатель, Вакансия.Должность AS Вакансия, Заявка.`Количество вакансий`, Заявка.`Дата подачи заявки`, Заявка.`Зарплата (в руб)`'+' FROM Заявка, Вакансия, Работодатель WHERE Заявка.`Код работодателя`=Работодатель.`Код работодателя` AND Заявка.`Код вакансии`=Вакансия.`Код вакансии`');

qry1.Active:=True;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

tab_refresh;

end;

procedure TForm1.btnAddClick(Sender: TObject);

begin

try

if (Trim(ed1.Text)='') or (Trim(ed2.Text)='') or (FormatDateTime('d.m.y', ed4.date)='') or (Trim(ed3.Text)='') then

begin

ShowMessage('Пожалуйста, введите данные');

exit;

end;

qry1.Active := False;

qry1.SQL.Clear;

qry1.SQL.Add('INSERT INTO Заявка (`Код работодателя`,`Код вакансии`,`Количество вакансий`,`Дата подачи заявки`,`Зарплата (в руб)`) VALUES ('+getPostId(ed1.text)+','+getDetId(ed2.text)+','+ed3.text+',"'+FormatDateTime('d.m.yyyy', ed4.date)+'",'+ed5.text+')');

qry1.ExecSQL;

qry1.SQL.Clear;

tab_refresh;

ed1.Text:='';

ed2.Text:='';

ed3.Text:='';

ed5.Text:='';

except

on e:Exception do

end;

end;

procedure TForm1.btnDelClick(Sender: TObject);

var cur:string;

begin

try

cur:=qry1.fields[0].asstring;

if Application.MessageBox('Вы действительно хотите удалить запись?','Удалить?',MB_YESNO)=IDYES then

begin

qry1.Active := False;

qry1.SQL.Clear;

qry1.SQL.Add('DELETE FROM Заявка WHERE `№п/п`='+cur);

qry1.ExecSQL;

qry1.SQL.Clear;

tab_refresh;

end;

except

on e:Exception do

end;

end;

procedure TForm1.dbgrd1CellClick(Column: TColumn);

begin

DateSeparator := '.';

ed1.text:=qry1.fields[1].asstring;

ed2.text:=qry1.fields[2].asstring;

ed4.Date:=StrToDate(qry1.fields[4].asstring);

ed3.text:=qry1.fields[3].asstring;

ed5.text:=qry1.fields[5].asstring;

end;

procedure TForm1.btnSaveClick(Sender: TObject);

var cur:string;

begin

try

if (Trim(ed1.Text)='') or (Trim(ed2.Text)='') or (Trim(ed3.Text)='') then

begin

ShowMessage('Пожалуйста, введите данные');

exit;

end;

cur:=qry1.fields[0].asstring;

qry1.Active := False;

qry1.SQL.Clear;

qry1.SQL.Add('UPDATE Заявка SET `Код работодателя`='+getPostId(ed1.text)+', `Код вакансии`='+getDetId(ed2.text)+', `Дата подачи заявки`="'+FormatDateTime('d.m.yyyy', ed4.date)+'", `Количество вакансий`='+ed3.text+', `Зарплата (в руб)`='+ed3.text+' WHERE `№п/п`='+cur);

ed1.Text:='';

ed2.Text:='';

ed3.Text:='';

qry1.ExecSQL;

qry1.SQL.Clear;

tab_refresh;

except

on e:Exception do

end;

end;

procedure TForm1.FormActivate(Sender: TObject);

begin

tab_refresh;

end;

procedure TForm1.btnF1Click(Sender: TObject);

begin

qry1.Active:=false;

qry1.SQL.Clear;

qry1.SQL.Add('SELECT Заявка.`№п/п`, Работодатель.`Наименование работодателя` AS Работодатель, Вакансия.Должность AS Вакансия, Заявка.`Количество вакансий`, Заявка.`Дата подачи заявки`, Заявка.`Зарплата (в руб)`'+' FROM Заявка, Вакансия, Работодатель WHERE Заявка.`Код работодателя`='+getPostId(edF1.Text)+' AND Заявка.`Код работодателя`=Работодатель.`Код работодателя` AND Заявка.`Код вакансии`=Вакансия.`Код вакансии`');

qry1.Active:=True;

end;

procedure TForm1.btnF2Click(Sender: TObject);

begin

qry1.Active:=false;

qry1.SQL.Clear;

qry1.SQL.Add('SELECT Заявка.`№п/п`, Работодатель.`Наименование работодателя` AS Работодатель, Вакансия.Должность AS Вакансия, Заявка.`Количество вакансий`, Заявка.`Дата подачи заявки`, Заявка.`Зарплата (в руб)`'+' FROM Заявка, Вакансия, Работодатель WHERE Заявка.`Код вакансии`='+getDetId(edF2.Text)+' AND Заявка.`Код работодателя`=Работодатель.`Код работодателя` AND Заявка.`Код вакансии`=Вакансия.`Код вакансии`');

qry1.Active:=True;

end;

procedure TForm1.btnF3Click(Sender: TObject);

begin

qry1.Active:=false;

qry1.SQL.Clear;

qry1.SQL.Add('SELECT Заявка.`№п/п`, Работодатель.`Наименование работодателя` AS Работодатель, Вакансия.Должность AS Вакансия, Заявка.`Количество вакансий`, Заявка.`Дата подачи заявки`, Заявка.`Зарплата (в руб)`'+' FROM Заявка, Вакансия, Работодатель WHERE Заявка.`Дата подачи заявки`="'+FormatDateTime('d.m.yyyy', edF3.date)+'" AND Заявка.`Код работодателя`=Работодатель.`Код работодателя` AND Заявка.`Код вакансии`=Вакансия.`Код вакансии`');

qry1.Active:=True;

end;

procedure TForm1.btn1Click(Sender: TObject);

begin

tab_refresh;

end;

procedure TForm1.N2Click(Sender: TObject);

begin

fmDet.Show;

Form1.Enabled:=false;

end;

procedure TForm1.N3Click(Sender: TObject);

begin

fmPost.Show;

Form1.Enabled:=false;

end;

procedure TForm1.btn2Click(Sender: TObject);

begin

WORDRep('Доступные для регистрации вакансии');

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

NaklRep(ed1.text,ed2.text,ed5.text);

end;

end.

Приложение 2

Руководство пользователя

Аннотация.

Разработанная АИС «Учет рабочих вакансий» предназначена для упрощения процесса учёта рабочих вакансий, а так же процесса составления отчетности по этим данным. Это значительно упростит работу организации. Также реализована возможность автоматического формирования отчёта для вывода на печать по заранее заданному шаблону. Предусмотрена и функция редактирования, это позволит администратору по необходимости вносить корректировочные данные.

Требование к программному обеспечению и оборудованию.

Системное программное обеспечение:

* Операционная система Microsoft Windows семейства NT (XP или выше);

* Текстовый процессор Microsoft Word версии пакета Microsoft Office 2003 или выше;

Для нормального функционирования программного продукта достаточно персонального компьютера со следующими характеристиками:

* Процессор: Intel Pentium II или аналог с частотой не менее 1000 Мгц;

* Оперативная память: не менее 256 Mb RAM;

* Жесткий диск: 8 Gb;

* Устройства ввода/вывода: мышь, клавиатура / монитор, принтер;

Установка и запуск.

Программа не требует установки и запускается из .exe файла при наличии базы данных db.mdb в папке с самой программой. Параметры подключения к БД указывать не нужно.

Размещено на Allbest.ru


Подобные документы

  • Программные системы искусственного интеллекта, экспертные системы как их разновидность. Автоматизированное формирование баз знаний в формате CLIPS на основе анализа баз данных СУБД Cache. Программные средства и технологии. Описание программной системы.

    дипломная работа [5,1 M], добавлен 25.05.2012

  • Особенности разработки текстовых документов с помощью информационной технологии Microsoft Office Word с включением в текст графических объектов типа "скриншот". Инструкция по построению диаграммы с помощью пункта "Вид" главного меню приложения MS Excel.

    лабораторная работа [444,7 K], добавлен 14.01.2010

  • Среда разработки Delphi. Обзор современной автоматизированной информационной системы "Книжный склад". Структурированное добавление новых данных. Автоматизация учета и отчетности товарооборота фирм. Дублирование ввода информации. Деление книг по тематикам.

    курсовая работа [1,1 M], добавлен 27.08.2012

  • Исследование организационной структуры ООО "Трансэнергосервис". Обзор методологий проектирования интернет-представительства. Инструментальные средства разработки и реализации системы управления сайтом: разработка интерфейса пользователя и web-сайта.

    дипломная работа [1,7 M], добавлен 10.08.2014

  • Предпроектное обследование ООО "ЮГАГРОМАШ". Технические и программные средства ЭИВТ предприятия. Создание логической и физической модели базы данных информационной подсистемы складского учета. Себестоимость автоматизированной информационной системы.

    дипломная работа [4,8 M], добавлен 24.06.2011

  • Обоснование выбора среды Borland Delphi для проектирования автоматизированной информационной системы "Приемная комиссия". Построение цепочки добавления нужных объектов на главную форму. Расчет стоимости разработки данного программного обеспечения.

    дипломная работа [4,5 M], добавлен 24.06.2015

  • На базе средства Microsoft Office Excel и средства разработки программных продуктов VBA создать приложение, автоматизирующее оперирование информацией предприятия типа "Автошкола". Добавление новых клиентов в базу данных автошколы. Формирование группы.

    дипломная работа [1,6 M], добавлен 11.10.2008

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

    дипломная работа [306,6 K], добавлен 28.08.2014

  • Краткая история организации ТОО "Актобе Саулет". Программные средства: операционная система, инструментальная среда разработки, прикладные программы. Работа с жесткими дисками, флэш-дисками, СD-дисками (разделение, форматирование) и модернизация ПК.

    отчет по практике [1,2 M], добавлен 24.07.2012

  • Создание программного продукта, автоматизирующего деятельность сотрудника пожарного контроля. Задача информационной системы - учет информации о пожарах. Средства разработки, структура данных. Описание продукта, экономические преимущества от внедрения.

    курсовая работа [1,6 M], добавлен 06.12.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.