
- •Оглавление
- •Выполнение лабораторной работы.
- •3.Назначение и цели создания по
- •3.8 Преимущества программы
- •4.1.2.1 Выбор модели
- •4.1.2.2 Обоснование выбранной модели
- •4.1.2.3 Построение общей модели
- •4.1.3 Архитектура по
- •Список использованной литературы
- •Программный код
- •Скриншоты программы
- •Заключение
- •Список использованной литературы
Список использованной литературы
1.В. Сербин. Методические указания к выполнению лабораторных работ по курсу «Технологии программирования» (для студентов специализации: 050704). -Алматы: АИЭС, 2009. - 118 с.
2. smiroleg.h1.ru/rekl_kadry_tz.html
3. http://ru.wikipedia.org/wiki/Модель
4. http://www.rugost.com
5. smiroleg.h12.ru/KADRY/kadry_page.html
Программный код
unit uMain;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls, cxLookAndFeels,
cxLookAndFeelPainters, dxBar, cxClasses, dxStatusBar, cxStyles, cxCustomData,
cxFilter, cxData, cxDataStorage, cxEdit, Data.DB, cxDBData,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
cxGridCustomView, cxGrid, DBAccess, UniDacVcl, UniProvider, OracleUniProvider,
Uni, MemDS, cxCheckBox, cxGridCustomPopupMenu, cxGridPopupMenu,
cxPropertiesStore;
type
TfrmMain = class(TForm)
dxStatusBar1: TdxStatusBar;
dxBarManager1: TdxBarManager;
dxBarManager1Bar1: TdxBar;
dxBarLargeButton1: TdxBarLargeButton;
btnConnect: TdxBarLargeButton;
UniConnection1: TUniConnection;
qryWokers: TUniQuery;
UniDataSource1: TUniDataSource;
OracleUniProvider1: TOracleUniProvider;
UniConnectDialog1: TUniConnectDialog;
GridKdrDBTableView1: TcxGridDBTableView;
GridKdrLevel1: TcxGridLevel;
GridKdr: TcxGrid;
GridKdrDBTableView1WORKERS_ID: TcxGridDBColumn;
GridKdrDBTableView1T0_FAM_RUS_C: TcxGridDBColumn;
GridKdrDBTableView1BIRTHDAY: TcxGridDBColumn;
GridKdrDBTableView1AGEL: TcxGridDBColumn;
GridKdrDBTableView1SEX: TcxGridDBColumn;
GridKdrDBTableView1T1_NATIONS_ID: TcxGridDBColumn;
GridKdrDBTableView1RNN: TcxGridDBColumn;
GridKdrDBTableView1WORK_STAZ_PDG: TcxGridDBColumn;
GridKdrDBTableView1WORK_STAZ_SPC: TcxGridDBColumn;
GridKdrDBTableView1WORK_STAZ_FULL: TcxGridDBColumn;
btnAdd: TdxBarLargeButton;
btnEdit: TdxBarLargeButton;
dxBarLargeButton3: TdxBarLargeButton;
dxBarLargeButton5: TdxBarLargeButton;
dxBarSubItem2: TdxBarSubItem;
dxBarButton3: TdxBarButton;
TmpQuery1: TUniQuery;
dxBarLargeButton2: TdxBarLargeButton;
GridKdrDBTableView1Column1: TcxGridDBColumn;
cxGridPopupMenu1: TcxGridPopupMenu;
dxBarButton1: TdxBarButton;
dxBarButton2: TdxBarButton;
dxBarButton4: TdxBarButton;
dxBarButton5: TdxBarButton;
qryWokersWORKERS_ID: TStringField;
qryWokersT0_FAM_RUS_C: TStringField;
qryWokersBIRTHDAY: TDateTimeField;
qryWokersAGEL: TFloatField;
qryWokersSEX: TStringField;
qryWokersT1_NATIONS_ID: TStringField;
qryWokersRNN: TStringField;
qryWokersWORK_STAZ_PDG: TFloatField;
qryWokersWORK_STAZ_SPC: TFloatField;
qryWokersWORK_STAZ_FULL: TFloatField;
qryWokersT2_SCHEDUL_WORKID: TStringField;
qryWokersGL_KNOW: TStringField;
qryWokersGL_DELOPR: TStringField;
qryWokersDOCUMENT_IIN: TLargeintField;
qryWokersPHONE: TStringField;
qryWokersDOC_NAME: TStringField;
qryWokersDOCUMENT_NUM: TStringField;
qryWokersDOCUMENT_DATE: TDateTimeField;
qryWokersDOCUMENT_VYDAN: TStringField;
procedure FormCreate(Sender: TObject);
procedure dxBarLargeButton1Click(Sender: TObject);
procedure btnConnectClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure dxBarLargeButton3Click(Sender: TObject);
procedure btnAddClick(Sender: TObject);
procedure GridKdrDBTableView1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure dxBarLargeButton2Click(Sender: TObject);
procedure GridKdrDBTableView1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure dxBarButton3Click(Sender: TObject);
procedure dxBarButton1Click(Sender: TObject);
procedure dxBarButton2Click(Sender: TObject);
procedure dxBarButton4Click(Sender: TObject);
procedure dxBarButton5Click(Sender: TObject);
procedure dxBarLargeButton5Click(Sender: TObject);
procedure btnEditClick(Sender: TObject);
private
procedure ExtractedMethod;
procedure OpenBook(id_: string);
{ Private declarations }
public
{ Public declarations }
procedure PlSetRU;
function PlSendSQL1(sqlstr: string): string;
procedure PlSendSQL(sqlstr: string);
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
uses uEditKrd, uBook, uAbout;
procedure TfrmMain.dxBarButton1Click(Sender: TObject);
begin
OpenBook('2');
end;
procedure TfrmMain.dxBarButton2Click(Sender: TObject);
begin
OpenBook('3');
end;
procedure TfrmMain.dxBarButton3Click(Sender: TObject);
begin
OpenBook('1');
end;
procedure TfrmMain.dxBarButton4Click(Sender: TObject);
begin
OpenBook('4');
end;
procedure TfrmMain.dxBarButton5Click(Sender: TObject);
begin
OpenBook('5');
end;
procedure TfrmMain.dxBarLargeButton1Click(Sender: TObject);
begin
Close;
end;
procedure TfrmMain.dxBarLargeButton2Click(Sender: TObject);
begin
qryWokers.Close;
qryWokers.Open;
GridKdrDBTableView1.DataController.GotoFirst;
end;
procedure TfrmMain.btnAddClick(Sender: TObject);
var
kdr_id_: string;
begin
// Добавляем
frmKrd := TfrmKrd.Create(Application);
try
if frmKrd.ExecuteAdd(kdr_id_) then
begin
//
qryWokers.Close;
qryWokers.Open;
qryWokers.Locate('WORKERS_ID', kdr_id_, []);
end;
finally
FreeAndNil(frmKrd);
end;
end;
procedure TfrmMain.btnConnectClick(Sender: TObject);
begin
if UniConnectDialog1.Execute then
begin
qryWokers.Close;
qryWokers.Open;
btnConnect.Enabled := False;
PlSetRU;
GridKdrDBTableView1.DataController.GotoFirst;
end;
end;
procedure TfrmMain.btnEditClick(Sender: TObject);
begin
ExtractedMethod;
end;
procedure TfrmMain.dxBarLargeButton3Click(Sender: TObject);
begin
if MessageDLg('Вы действительно хотите удалить эту запись?', mtInformation,
[mbyes, mbno], 0) = mrno then
Exit
else
begin
PlSendSQL('delete from kdr.WORKERS where WORKERS_ID = ''' +
qryWokersWORKERS_ID.AsString + '''');
qryWokers.Close;
qryWokers.Open;
GridKdrDBTableView1.DataController.GotoFirst;
end;
end;
procedure TfrmMain.dxBarLargeButton5Click(Sender: TObject);
begin
frmAbout := TfrmAbout.Create(Self);
try
frmAbout.ShowModal;
finally
frmAbout.Free;
end;
end;
procedure TfrmMain.FormActivate(Sender: TObject);
begin
UniConnection1.Connected := False;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
WindowState := wsMaximized;
GridKdr.Align := alClient;
end;
procedure TfrmMain.GridKdrDBTableView1CellDblClick
(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo;
AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
ExtractedMethod;
end;
procedure TfrmMain.GridKdrDBTableView1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_RETURN:
ExtractedMethod; // Enter
end;
end;
procedure TfrmMain.PlSendSQL(sqlstr: string);
begin
with TmpQuery1 do
begin
SQL.Clear;
SQL.Add(sqlstr);
ExecSQL;
end;
end;
procedure TfrmMain.OpenBook(id_: string);
begin
//
frmbook := TfrmBook.Create(Self);
try
frmbook.Execute(id_);
finally
frmbook.Free;
end;
end;
procedure TfrmMain.ExtractedMethod;
var
kdr_id_: string;
begin
// редактируем
kdr_id_ := qryWokersWORKERS_ID.AsString;
frmKrd := TfrmKrd.Create(Application);
try
if frmKrd.Execute(kdr_id_) then
begin
//
qryWokers.Close;
qryWokers.Open;
qryWokers.Locate('WORKERS_ID', kdr_id_, []);
end;
finally
FreeAndNil(frmKrd);
end;
end;
function TfrmMain.PlSendSQL1(sqlstr: string): string;
begin
if trim(sqlstr) <> '' then
begin
with TmpQuery1 do
begin
SQL.Clear;
SQL.Add(sqlstr);
// SQL.SaveToFile('queries.log');
try
Open;
if not IsEmpty then
begin
Result := Fields[0].AsString;
end
else
begin
Result := '';
end;
Close;
except
Result := '';
end;
end;
end
else
Result := '';
end;
procedure TfrmMain.PlSetRU;
var
Layout: array [0 .. KL_NAMELENGTH] of char;
begin
LoadKeyboardLayout(StrCopy(Layout, '00000419'), KLF_ACTIVATE);
end;
end.