Программный продукт АИС "Учет рабочих вакансий"
Необходимые для разработки автоматизированной информационной системы программные и технические средства. Иерархическая схема наследования объектов. Добавление новой записи. Формирование отчетов в формате 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