Диплом: Автоматизация приема заявок на ремонт и модернизацию ПК в ООО "Ф-Центр"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
96
ПРИЛОЖЕНИЕ
Фрагмент исходного кода
unit uMain;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Menus, Vcl.StdCtrls, Vcl.Buttons,
Vcl.DBCtrls, Vcl.ComCtrls, Vcl.Mask, Vcl.ExtCtrls, Data.DB, Vcl.Grids,
Vcl.DBGrids, Vcl.Samples.Spin, System.Rtti, System.Bindings.Outputs,
Vcl.Bind.Editors, Data.Bind.EngExt, Vcl.Bind.DBEngExt,
Data.Bind.Components,
Data.Bind.DBScope;
type
TfMain = class(TForm)
mm: TMainMenu;
imMain: TMenuItem;
imLibrary: TMenuItem;
imReport: TMenuItem;
imSettings: TMenuItem;
pnlGrid: TPanel;
pnlMain: TPanel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
cbClientOrder: TDBLookupComboBox;
cnStatusOrder: TDBLookupComboBox;
97
edtCostOrder: TDBEdit;
dtpStartOrder: TDateTimePicker;
dtpEndOrder: TDateTimePicker;
cbCloseOrder: TDBCheckBox;
btnSave: TBitBtn;
btnCancel: TBitBtn;
pnlSearch: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
cbCloseFilter: TComboBox;
btnSearch: TBitBtn;
btnErase: TBitBtn;
edtIDFilter: TSpinEdit;
cbClientFilter: TDBLookupComboBox;
grdMain: TDBGrid;
pm: TPopupMenu;
imAdd: TMenuItem;
imEdit: TMenuItem;
imDelete: TMenuItem;
imCommand: TMenuItem;
imHardware: TMenuItem;
imTask: TMenuItem;
imDocument: TMenuItem;
N12: TMenuItem;
BindSourceDB1: TBindSourceDB;
BindingsList1: TBindingsList;
LinkControlToField1: TLinkControlToField;
BindSourceDB2: TBindSourceDB;
LinkControlToField2: TLinkControlToField;
imLinking: TMenuItem;
imClient: TMenuItem;
98
imEmployee: TMenuItem;
N4: TMenuItem;
imClose: TMenuItem;
imLibrary0: TMenuItem;
imLibrary1: TMenuItem;
imLibrary2: TMenuItem;
imLibrary3: TMenuItem;
imLibrary4: TMenuItem;
imLibrary5: TMenuItem;
imReport0: TMenuItem;
N1: TMenuItem;
imReport1: TMenuItem;
procedure cbCloseOrderClick(Sender: TObject);
procedure imAddClick(Sender: TObject);
procedure imEditClick(Sender: TObject);
procedure imDeleteClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure pmPopup(Sender: TObject);
procedure imGridClick(Sender: TObject);
procedure imReportClick(Sender: TObject);
procedure imSettingsClick(Sender: TObject);
procedure imCloseClick(Sender: TObject);
procedure btnSearchClick(Sender: TObject);
procedure btnEraseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
procedure PanelView(view: boolean);
public
{ Public declarations }
end;
99
var
fMain: TfMain;
implementation
{$R *.dfm}
uses
uDM, uGrid, uSetLink, uReport;
procedure TfMain.btnCancelClick(Sender: TObject);
begin
PanelView(false);
grdMain.DataSource.DataSet.Cancel;
end;
procedure TfMain.btnEraseClick(Sender: TObject);
var
str: string;
begin
DM.tblClient.First;
DM.tblClient.Last;
cbCloseFilter.ItemIndex:=0;
edtIDFilter.Value:=0;
str:='[Закрыт]='+IntToStr(cbCloseFilter.ItemIndex);
grdMain.DataSource.DataSet.Filtered:=false;
grdMain.DataSource.DataSet.Filter:=str;
grdMain.DataSource.DataSet.Filtered:=true;
end;
procedure TfMain.btnSaveClick(Sender: TObject);
100
begin
try
PanelView(false);
if not cbCloseOrder.Checked then
DM.tblOrder.FieldByName('Закрыт').AsBoolean:=false;
grdMain.DataSource.DataSet.Post;
except
on E: EDataBaseError do
begin
MessageDlg(e.Message,mtError,[mbOk],0);
PanelView(true);
end;
end;
end;
procedure TfMain.btnSearchClick(Sender: TObject);
var
str: string;
begin
str:='';
if edtIDFilter.Value<>0 then str:='[Код] = '+edtIDFilter.Text;
if str<>'' then str:='('+str+') and ([Закрыт] =
'+IntToStr(cbCloseFilter.ItemIndex)+')'
else str:='[Закрыт]='+IntToStr(cbCloseFilter.ItemIndex);
if DM.tblClient.FieldByName('Код').AsInteger<>0 then
str:='('+str+') and
([Клиент_код]='+DM.tblClient.FieldByName('Код').AsString+')';
grdMain.DataSource.DataSet.Filtered:=false;
grdMain.DataSource.DataSet.Filter:=str;
grdMain.DataSource.DataSet.Filtered:=true;
101
end;
procedure TfMain.cbCloseOrderClick(Sender: TObject);
begin
dtpEndOrder.Visible:=cbCloseOrder.Checked;
Label9.Visible:=dtpEndOrder.Visible;
end;
procedure TfMain.FormShow(Sender: TObject);
begin
imSettings.Visible:=DM.user.admin;
end;
{*************События меню*************}
procedure TfMain.pmPopup(Sender: TObject);
begin
imEdit.Visible:=grdMain.DataSource.DataSet.RecordCount>0;
imDelete.Visible:=imEdit.Visible;
imCommand.Visible:=imEdit.Visible;
imHardware.Visible:=imEdit.Visible;
imTask.Visible:=imEdit.Visible;
imDocument.Visible:=imEdit.Visible;
imReport1.Visible:=imEdit.Visible;
N1.Visible:=imEdit.Visible;
N12.Visible:=imEdit.Visible;
end;
procedure TfMain.imAddClick(Sender: TObject);
begin
PanelView(true);
grdMain.DataSource.DataSet.Append;
102
dtpStartOrder.DateTime:=Date;
end;
procedure TfMain.imEditClick(Sender: TObject);
begin
PanelView(true);
grdMain.DataSource.DataSet.Edit;
dtpEndOrder.Visible:=cbCloseOrder.Checked;
Label9.Visible:=dtpEndOrder.Visible;
end;
procedure TfMain.imDeleteClick(Sender: TObject);
begin
if MessageDlg('Вы действительно хотите удалить
запись?',mtWarning,mbOkCancel,0)=mrOk then
grdMain.DataSource.DataSet.Delete;
end;
procedure TfMain.imGridClick(Sender: TObject);
var
frm: TfrmGrid;
begin
Application.CreateForm(TfrmGrid,frm);
frm.Tag:=(Sender as TMenuItem).Tag;
frm.ShowModal;
if frm.Tag in [3,12] then
begin
grdMain.DataSource.DataSet.Edit;
grdMain.DataSource.DataSet.FieldByName('Стоимость').AsCurrency:=grdMain.Data
Source.DataSet.FieldByName('Стоимость').AsCurrency+frm.curr;
grdMain.DataSource.DataSet.Post;
103
end;
frm.Free;
end;
procedure TfMain.imReportClick(Sender: TObject);
var
frm: TfrmReport;
begin
Application.CreateForm(TfrmReport,frm);
frm.Tag:=(Sender as TMenuItem).Tag;
frm.ShowModal;
frm.Free;
end;
procedure TfMain.imSettingsClick(Sender: TObject);
begin
frmSetLink.ShowModal;
end;
procedure TfMain.imCloseClick(Sender: TObject);
begin
Application.Terminate;
end;
{*************Вспомогательные процедуры*************}
procedure TfMain.PanelView(view: boolean);
begin
pnlMain.Visible:=view;
pnlGrid.Enabled:=not view;
end;
end.
104
unit uDM;
interface
uses
System.SysUtils, System.Classes, FireDAC.Stan.Intf, FireDAC.Stan.Option,
FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def,
FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys,
FireDAC.VCLUI.Wait,
FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt,
Data.DB,
FireDAC.Comp.Client, FireDAC.Comp.DataSet, Dialogs,
FireDAC.Phys.MSSQL,
FireDAC.Phys.MSSQLDef;
type
TUser = record
kod: integer;
admin: boolean;
end;
TDM = class(TDataModule)
MainConn: TFDConnection;
tblClient: TFDTable;
tblStatus: TFDTable;
tblOrder: TFDTable;
tblWork: TFDTable;
tblTask: TFDTable;
tblDocument: TFDTable;
tblPost: TFDTable;
tblDepartment: TFDTable;
tblEmployee: TFDTable;
105
tblCommand: TFDTable;
tblCategory: TFDTable;
tblHardware: TFDTable;
tblList: TFDTable;
qryReport: TFDQuery;
dsClient: TDataSource;
dsStatus: TDataSource;
dsOrder: TDataSource;
dsWork: TDataSource;
dsTask: TDataSource;
dsDocument: TDataSource;
dsPost: TDataSource;
dsDepartment: TDataSource;
dsEmployee: TDataSource;
dsCommand: TDataSource;
dsCategory: TDataSource;
dsHardware: TDataSource;
dsList: TDataSource;
tblClientКод: TFDAutoIncField;
tblClientНазвание: TStringField;
tblClientТелефон: TStringField;
tblClientАдрес: TStringField;
tblStatusКод: TFDAutoIncField;
tblStatusНазвание: TStringField;
tblOrderКод: TFDAutoIncField;
tblOrderКлиент_код: TIntegerField;
tblOrderПоступил: TSQLTimeStampField;
tblOrderСтоимость: TCurrencyField;
tblOrderСтатус_код: TIntegerField;
tblOrderЗакрыт: TBooleanField;
tblOrderВыполнен: TSQLTimeStampField;
tblOrderКлиент: TStringField;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)