Главная страница

курсовая работа тема акимат. Акимат. Разработка информационной системы контроля исполнения поручений для сотрудников акимата


Скачать 1.29 Mb.
НазваниеРазработка информационной системы контроля исполнения поручений для сотрудников акимата
Анкоркурсовая работа тема акимат
Дата08.12.2022
Размер1.29 Mb.
Формат файлаdocx
Имя файлаАкимат.docx
ТипКурсовой проект
#834845
страница7 из 8
1   2   3   4   5   6   7   8
end;
procedure TFmAdminMenu.DBGrid1CellClick(Column: TColumn);

begin

if Column.FieldName = 'l_read' then

begin

DM.TbLetter.Edit;

DM.TbLetter.FieldByName('l_read').AsBoolean := Not DM.TbLetter.FieldByName('l_read').AsBoolean;

DM.TbLetter.Post;

end;

end;
procedure TFmAdminMenu.Edit1Change(Sender: TObject);

begin

Case RadioGroup1.ItemIndex of

0 : DM.TbLetter.Locate('l_theme', Edit1.Text,[loCaseInsensitive, loPartialKey]);

1 : DM.TbLetter.Locate('l_text', Edit1.Text,[loCaseInsensitive, loPartialKey]);

2 : DM.TbLetter.Locate('l_from', Edit1.Text,[loCaseInsensitive, loPartialKey]);

end;

end;
procedure TFmAdminMenu.SpeedButton1Click(Sender: TObject);

var str : string;

begin

str := '';

if SpeedButton1.Caption = 'Включить фильтр' then //Если кнопка не нажата

begin

Label2.Visible := true;

SpeedButton1.Caption := 'Отключить фильтр';

SpeedButton1.Down := true;

if CheckBox1.Checked then str := str + 'l_date >= '+DateToStr(DateTimePicker1.Date)+' and l_date <= '+DateToStr(DateTimePicker2.Date); //фильтр по датам

if (CheckBox2.Checked) and (DBLookupComboBox1.Text <> '')then

begin

if str <> '' then str := str +' and ';

str := str + 'luser = '+IntToStr(DBLookupComboBox1.KeyValue); //фильтр по ответственному

end;

if (CheckBox3.Checked) and (DBLookupComboBox2.Text <> '')then

begin

if str <> '' then str := str +' and ';

str := str + 'status = '+IntToStr(DBLookupComboBox2.KeyValue); //фильтр по статусу

end;

if (CheckBox4.Checked) and (DBLookupComboBox3.Text <> '')then

begin

if str <> '' then str := str +' and ';

str := str + 'cat = '+IntToStr(DBLookupComboBox3.KeyValue); //фильтр по категории

end;

Dm.TbLetter.Filtered := false;

DM.TbLetter.Filter := str; //Задаем итоговый фильтр

Dm.TbLetter.Filtered := true;

//ShowMessage(str);

end

else

begin

Label2.Visible := false;

str := '';

SpeedButton1.Caption := 'Включить фильтр';

SpeedButton1.Down := false;

Dm.TbLetter.Filtered := false;

DM.TbLetter.Filter := str;

Dm.TbLetter.Filtered := true;

end;

end;
procedure TFmAdminMenu.BitBtn8Click(Sender: TObject);

begin

close;

end;
procedure TFmAdminMenu.BitBtn9Click(Sender: TObject);

var i : integer;

begin

DM.QRUser.Active := false;

DM.QRUser.Active := true;

FmRCat.DBGrid1.DataSource := DM.DSRUser;

FmRCat.DBNavigator1.DataSource := DM.DSRUser;


FmRCat.DBChart1.Series[0].Clear; //Удалем все имеющиеся диаграммы

FmRCat.DBChart1.Series[1].Clear;

FmRCat.DBChart1.Series[2].Clear;

FmRCat.DBChart1.Title.Text.Clear;//Удаляем текст

FmRCat.DBChart1.Title.Text.Add('Сообщения по ответственным сотрудникам');

DM.QRUser.First;

for i := 0 to DM.QRUser.RecordCount -1 do //

begin

FmRCat.DBChart1.Series[0].Add(DM.QRUser.FieldByName('Количество сообщений в работе').Value, DM.QRUser.FieldByName('ФИО ответственного').AsString + #13);

FmRCat.DBChart1.Series[1].Add(DM.QRUser.FieldByName('Количество сообщений в работе').Value, DM.QRUser.FieldByName('ФИО ответственного').AsString + #13);

FmRCat.DBChart1.Series[2].Add(DM.QRUser.FieldByName('Количество сообщений в работе').Value, DM.QRUser.FieldByName('ФИО ответственного').AsString + #13);

//Вывод значений и подписей в цикле ,

DM.QRUser.Next;

end;

FmRCat.DBChart1.Repaint;

FmRCat.Caption := 'Сообщения по ответственным сотрудникам';

FmRCat.ShowModal;

end;
procedure TFmAdminMenu.SpeedButton2Click(Sender: TObject);

var Excel: Variant;

WorkbookName: string;

i, PosInc: Integer;

begin

DM.QRCat.Active := false;

DM.QRCat.Active := true;

WorkbookName := GetCurrentDir + '\Сообщения по.xlt';

Excel := CreateOleObject('Excel.Application');

try

Excel.Workbooks.Open(WorkbookName);

//Экспорт данных из таблиц БД:

Excel.WorkSheets[1].Select;
Excel.Cells[3,3] := 'Отчет по категориям';

Excel.Cells[5,2] := 'Категория';

Excel.Cells[5,5] := 'Количество сообщений';
DM.QRCat.First;

PosInc := 6; //Начальная позиция
//Вывод данных из БД в Excel
//Цикл по всем позициям запроса

for i:=0 to DM.QRCat.RecordCount-1 do

begin

if i <> DM.QRCat.RecordCount-1 then

begin
Excel.Rows.Item[PosInc+1].Select;

Excel.Selection.Insert;

Excel.Rows.Item[PosInc].Select;

Excel.Selection.Copy;

Excel.Rows.Item[PosInc+1].Select;

Excel.ActiveSheet.Paste;

Excel.Application.CutCopyMode := False;

end;

//Вывод данных в Excel

Excel.Cells[PosInc,1] := IntToStr(i+1);

Excel.Cells[PosInc,2] := DM.QRCat.FieldByName('category').AsString;

Excel.Cells[PosInc,5] := DM.QRCat.FieldByName('Количество').AsString;

PosInc := PosInc +1;
DM.QRCat.Next;

end; //for

Excel.WorkSheets[1].Select;

Excel.Visible := True;

except

Excel.Quit;

end;

end;
procedure TFmAdminMenu.SpeedButton3Click(Sender: TObject);

var Excel: Variant;

WorkbookName: string;

i, PosInc: Integer;

begin

DM.QRCat.Active := false;

DM.QRCat.Active := true;

WorkbookName := GetCurrentDir + '\Сообщения по.xlt';

Excel := CreateOleObject('Excel.Application');

try

Excel.Workbooks.Open(WorkbookName);

//Экспорт данных из таблиц БД:

Excel.WorkSheets[1].Select;
Excel.Cells[3,3] := 'Отчет по статусам';

Excel.Cells[5,2] := 'Статус';

Excel.Cells[5,5] := 'Количество сообщений';
DM.QRStatus.First;

PosInc := 6; //Начальная позиция
//Вывод данных из БД в Excel
//Цикл по всем позициям запроса

for i:=0 to DM.QRStatus.RecordCount-1 do

begin

if i <> DM.QRStatus.RecordCount-1 then

begin
Excel.Rows.Item[PosInc+1].Select;

Excel.Selection.Insert;

Excel.Rows.Item[PosInc].Select;

Excel.Selection.Copy;

Excel.Rows.Item[PosInc+1].Select;

Excel.ActiveSheet.Paste;

Excel.Application.CutCopyMode := False;

end;

//Вывод данных в Excel

Excel.Cells[PosInc,1] := IntToStr(i+1);

Excel.Cells[PosInc,2] := DM.QRStatus.FieldByName('status').AsString;

Excel.Cells[PosInc,5] := DM.QRStatus.FieldByName('Количество').AsString;

PosInc := PosInc +1;
DM.QRStatus.Next;

end; //for

Excel.WorkSheets[1].Select;

Excel.Visible := True;

except

Excel.Quit;

end;

end;
procedure TFmAdminMenu.SpeedButton4Click(Sender: TObject);

var Excel: Variant;

WorkbookName: string;

i, PosInc: Integer;

begin

DM.QRCat.Active := false;

DM.QRCat.Active := true;

WorkbookName := GetCurrentDir + '\Сообщения по.xlt';

Excel := CreateOleObject('Excel.Application');

try

Excel.Workbooks.Open(WorkbookName);

//Экспорт данных из таблиц БД:

Excel.WorkSheets[1].Select;
Excel.Cells[3,3] := 'Отчет по сотрудникам';

Excel.Cells[5,2] := 'ФИО ответственного';

Excel.Cells[5,5] := 'Количество сообщений в работе';
DM.QRUser.First;

PosInc := 6; //Начальная позиция
//Вывод данных из БД в Excel
//Цикл по всем позициям запроса

for i:=0 to DM.QRUser.RecordCount-1 do

begin

if i <> DM.QRUser.RecordCount-1 then

begin
Excel.Rows.Item[PosInc+1].Select;

Excel.Selection.Insert;

Excel.Rows.Item[PosInc].Select;

Excel.Selection.Copy;

Excel.Rows.Item[PosInc+1].Select;

Excel.ActiveSheet.Paste;

Excel.Application.CutCopyMode := False;

end;

//Вывод данных в Excel

Excel.Cells[PosInc,1] := IntToStr(i+1);

Excel.Cells[PosInc,2] := DM.QRUser.FieldByName('ФИО ответственного').AsString;

Excel.Cells[PosInc,5] := DM.QRUser.FieldByName('Количество сообщений в работе').AsString;

PosInc := PosInc +1;
DM.QRUser.Next;

end; //for

Excel.WorkSheets[1].Select;

Excel.Visible := True;

except

Excel.Quit;

end;

end;

procedure TFmAdminMenu.BitBtn10Click(Sender: TObject);

begin

FmAbout.ShowModal;

end;
procedure TFmAdminMenu.BitBtn11Click(Sender: TObject);

// label f;

var
st : string;

i : integer; //счетчик писем

count : integer; //Количество сообщений на сервере

begin

POP3.Host:= DM.TbPost.FieldByName('adress').AsString; // адресс почтового сервера

POP3.Port:=110; // порт по которому будет осуществляться подключение

POP3.Username:= DM.TbPost.FieldByName('login').AsString;// Логин пользователя

POP3.Password:= DM.TbPost.FieldByName('pass').AsString; // пароль пользователя

IdMessage.Clear; // очистка буфера для сообщения

POP3.Connect; // подключение по протоколу POP3, по настрокам в компоненте IdPOP3, с именем POP3
count := POP3.CheckMessages;

for i := 1 to count do // цикл получения писем

begin

//if POP3.CheckMessages<1 then goto f ;

IdMessage.Clear; // очистка буфера для сообщения

POP3.Retrieve(i,IdMessage); // получение одного сообщения
DM.TbLetter.Insert;
DM.TbLetter.FieldByName('l_theme').AsString := IdMessage.Subject;

DM.TbLetter.FieldByName('l_from').AsString := IdMessage.From.Text;

DM.TbLetter.FieldByName('l_date').AsDateTime := IdMessage.Date;

DM.TbLetter.FieldByName('l_text').AsString := IdMessage.Body.Text;
DM.TbLetter.Post;
POP3.Delete(i); // удаление с сервера, полученного сообщения

//ShowMessage(IntToStr(POP3.CheckMessages));

end;

//f:

POP3.Disconnect; // разрыв соединения с сервером
DM.TbLetter.Close;

DM.TbLetter.Open;
end;
procedure TFmAdminMenu.BitBtn12Click(Sender: TObject);

begin

FmPost.ShowModal;

end;
procedure TFmAdminMenu.DBGrid1DblClick(Sender: TObject);

begin

FmFull.Show;

end;
end.


unit UnCat;
interface
uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DBCtrls, Grids, DBGrids, ExtCtrls;
type

TFmCat = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

Panel4: TPanel;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

private

{ Private declarations }

public

{ Public declarations }

end;
var

FmCat: TFmCat;
implementation

uses UnDM;

{$R *.dfm}
end.


unit UnDM;
interface
uses

SysUtils, Classes, DB, ADODB, DBTables;
type

TDM = class(TDataModule)

ADOC: TADOConnection;

QLogin: TADOQuery;

TbAdmin: TADOTable;

DSAdmin: TDataSource;

QLoginu_id: TAutoIncField;

QLoginu_fio: TWideStringField;

QLoginu_type: TWideStringField;

TbAdminu_id: TAutoIncField;

TbAdminu_login: TWideStringField;

TbAdminu_password: TWideStringField;

TbAdminu_fio: TWideStringField;

TbAdminu_type: TWideStringField;

TbAdminu_note: TWideStringField;

TbLetter: TADOTable;

DSLetter: TDataSource;

TbLetterl_id: TAutoIncField;

TbLetterl_theme: TWideStringField;

TbLetterl_date: TDateTimeField;

TbLetterl_from: TWideStringField;

TbLetterl_imp: TWideStringField;

TbLetterl_read: TBooleanField;

TbLetterstatus: TIntegerField;

TbLettercat: TIntegerField;

TbStatus: TADOTable;

TbCat: TADOTable;

TbStatuss_id: TAutoIncField;

TbStatusstatus: TWideStringField;

TbCatc_id: TAutoIncField;

TbCatcategory: TWideStringField;

TbCatc_note: TWideStringField;

TbNote: TADOTable;

DSNote: TDataSource;

DSStatus: TDataSource;

DSCat: TDataSource;

TbNoten_id: TAutoIncField;

TbNoteletter: TIntegerField;

TbNoten_text: TWideStringField;

DSEvent: TDataSource;

TbEvent: TADOTable;

TbEvente_id: TAutoIncField;

TbEventletter: TIntegerField;

TbEvente_date: TDateTimeField;

TbEvente_text: TWideStringField;

QMan: TADOQuery;

QManu_id: TAutoIncField;

QManu_login: TWideStringField;

QManu_password: TWideStringField;

QManu_fio: TWideStringField;

QManu_type: TWideStringField;

QManu_note: TWideStringField;

QRCat: TADOQuery;

QRCatcategory: TWideStringField;

QRStatus: TADOQuery;

QRStatusstatus: TWideStringField;

QRStatusDSDesigner: TIntegerField;

QRCatDSDesigner: TIntegerField;

DSRCat: TDataSource;

DSRStatus: TDataSource;

DSMan: TDataSource;

QRUser: TADOQuery;

DSRUser: TDataSource;

QRUserDSDesigner: TWideStringField;

QRUserDSDesigner2: TIntegerField;

DSPost: TDataSource;

TbPost: TADOTable;

TbPostadress: TWideStringField;

TbPostlogin: TWideStringField;

TbPostpass: TWideStringField;

TbLetterl_text: TMemoField;

TbLetterluser: TIntegerField;

TbLetterl_user: TStringField;

TbLetterl_cat: TStringField;

TbLetterl_status: TStringField;

TbLetterl_text2: TStringField;

TbEventluser: TIntegerField;

TbEvente_user: TStringField;

procedure TbLetterAfterPost(DataSet: TDataSet);

procedure TbEventAfterPost(DataSet: TDataSet);

procedure TbNoteAfterPost(DataSet: TDataSet);

procedure TbStatusAfterPost(DataSet: TDataSet);

procedure TbCatAfterPost(DataSet: TDataSet);

procedure TbLetterl_textGetText(Sender: TField; var Text: String;

DisplayText: Boolean);

procedure TbLetterCalcFields(DataSet: TDataSet);

procedure TbEventBeforeInsert(DataSet: TDataSet);

procedure TbEventAfterInsert(DataSet: TDataSet);

//function GrabMemoAsString(TheField : TMemoField): String;

private

{ Private declarations }

public

{ Public declarations }

end;
var

DM: TDM;
implementation
{$R *.dfm}
procedure TDM.TbLetterAfterPost(DataSet: TDataSet);

begin

TbLetter.Refresh;

end;
procedure TDM.TbEventAfterPost(DataSet: TDataSet);

begin

TbEvent.Refresh;

end;
procedure TDM.TbNoteAfterPost(DataSet: TDataSet);

begin

TbNote.Refresh;

end;
procedure TDM.TbStatusAfterPost(DataSet: TDataSet);

begin

TbStatus.Refresh;

end;
procedure TDM.TbCatAfterPost(DataSet: TDataSet);

begin

TbCat.Refresh;

end;
{function GrabMemoAsString(TheField: TMemoField): string;

begin

if TheField.IsNull then

Result := ''

else

with TBlobStream.Create(TheField, bmRead) do

begin

if Size >= 255 then

begin

Read(Result[1], 255);

//Result[0] := #255;

end

else

begin

Read(Result[1], Size);

//Result[0] := Chr(Size);

end;

Free;

while Pos(#10, Result) > 0 do

Result[Pos(#10, Result)] := ' ';

while Pos(#13, Result) > 0 do

Result[Pos(#13, Result)] := ' ';

end;

end; }
procedure TDM.TbLetterl_textGetText(Sender: TField; var Text: String;

DisplayText: Boolean);

begin

//Text := GrabMemoAsString(TMemoField(Sender)); //GrabMemoAsString(TMemoField(Sender));
end;
procedure TDM.TbLetterCalcFields(DataSet: TDataSet);
begin
DM.TbLetter.FieldByName('l_text2').Value := DM.TbLetter.FieldByName('l_text').Value

end;
procedure TDM.TbEventBeforeInsert(DataSet: TDataSet);

begin

//DM.TbEvente_user.LookupCache := true;
end;
procedure TDM.TbEventAfterInsert(DataSet: TDataSet);

begin

//DM.TbEvente_user.LookupCache := false;

end;
end.


unit UnEvent;
interface
uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DBCtrls, Grids, DBGrids, ExtCtrls;
type

TFmEvent = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

Panel4: TPanel;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

private

{ Private declarations }

public

{ Public declarations }
1   2   3   4   5   6   7   8


написать администратору сайта