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

Автор: Пользователь скрыл имя, 04 Июня 2012 в 20:33, курсовая работа

Описание работы

Целью курсовой работы является создание программного продукта по представлению данных о происшествиях на железной дороге в определенный период времени.
Важно, чтобы конечное приложение обладало удобным, легко воспринимаемым интерфейсом, который предоставляет пользователю доступ ко всем необходимым для работы функциям.

Работа содержит 1 файл

Отчёт.doc

— 2.11 Мб (Скачать)

end;

MainRecordForm.VidEdit1.Items.Add(DM.DataSetMainVid_Otkaza.AsString);

MainRecordForm.VidEdit1.ItemIndex:=MainRecordForm.VidEdit1.Items.Count-1;

MainRecordForm.ShowModal;

end; 

procedure TMainForm.EditTableTypeRefusalClick(Sender: TObject);

var i: word;

begin

DM.DataSetOtkazy.Active:=true;

DM.DataSetOtkazy.Sort:='ID_Otkaz';

DM.DataSetOtkazy.First;

EditTypeRefusal.ShowModal;

end; 

end.

Модуль формы добавления новой записи

unit MainRecordUnit; 

interface 

uses

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

  Dialogs, ComCtrls, ToolWin, ExtCtrls, StdCtrls, Mask, Grids, DBGrids,

  ADODB; 

type

  TMainRecordForm = class(TForm)

    ToolBar1: TToolBar;

    ToolButton1: TToolButton;

    ToolButton2: TToolButton;

    ComEdit: TADOCommand;

    ComNew: TADOCommand;

    DRdate: TDateTimePicker;

    DRtime: TDateTimePicker;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    PogEdit: TLabeledEdit;

    RanEdit: TLabeledEdit;

    FinEdit: TLabeledEdit;

    DEtime: TDateTimePicker;

    DEdate: TDateTimePicker;

    DescEdit: TRichEdit;

    Label1: TLabel;

    VidEdit1: TComboBox;

    procedure ToolButton1Click(Sender: TObject);

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

    procedure FinEditKeyPress(Sender: TObject; var Key: Char);

    procedure keyP(Sender: TObject; var Key: Char);

    procedure FinEditContextPopup(Sender: TObject; MousePos: TPoint;

      var Handled: Boolean);

    procedure ToolButton2Click(Sender: TObject);

    procedure ToolButton4Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  MainRecordForm: TMainRecordForm; 

implementation 

uses DMunit, MainUnit, EditOtkazyUnit; 

{$R *.dfm} 

procedure TMainRecordForm.ToolButton1Click(Sender: TObject);

begin

If strtodatetime(datetostr(DEdate.date)+' '+timetostr(DEtime.Time))>

      strtodatetime(datetostr(DRdate.date)+' '+timetostr(DRtime.Time)) then

Begin

  Application.MessageBox('Дата происшествия не может быть позднее даты восстановления','Редактирование не возможно',MB_OK);

  exit;

end; 

case tag of

0:

Begin

ComNew.Parameters.ParamByName('VE').Value:=VidEdit1.Text;

ComNew.Parameters.ParamByName('DD').Value:=StrToIntDef(PogEdit.Text,0);

ComNew.Parameters.ParamByName('WD').Value:=StrToIntDef(RanEdit.Text,0);

ComNew.Parameters.ParamByName('LS').Value:=StrToFloatDef(FinEdit.Text,0);

ComNew.Parameters.ParamByName('DE').Value:=strtodatetime(datetostr(DEdate.date)+' '+timetostr(DEtime.Time));

ComNew.Parameters.ParamByName('DR').Value:=strtodatetime(datetostr(DRdate.date)+' '+timetostr(DRtime.Time)); 

If Trim(DescEdit.Text)=''then

  ComNew.Parameters.ParamByName('DS').Value:=NULL

else

  ComNew.Parameters.ParamByName('DS').Value:=Trim(DescEdit.Text); 

Dm.DataSetMain.Active:=false;

ComNew.Execute;

Dm.DataSetMain.Active:=true;

Close;

end;        {0}

1:

  Begin

ComEdit.Parameters.ParamByName('VE').Value:=VidEdit1.Text;

ComEDit.Parameters.ParamByName('DD').Value:=StrToIntDef(PogEdit.Text,0);

ComEdit.Parameters.ParamByName('WD').Value:=StrToIntDef(RanEdit.Text,0);

ComEdit.Parameters.ParamByName('LS').Value:=StrToFloatDef(FinEdit.Text,0);

ComEdit.Parameters.ParamByName('DE').Value:=strtodatetime(datetostr(DEdate.date)+' '+timetostr(DEtime.Time));

ComEdit.Parameters.ParamByName('DR').Value:=strtodatetime(datetostr(DRdate.date)+' '+timetostr(DRtime.Time)); 

If Trim(DescEdit.Text)=''then

  ComEdit.Parameters.ParamByName('DS').Value:=NULL

else

  ComEdit.Parameters.ParamByName('DS').Value:=Trim(DescEdit.Text); 

ComEdit.Parameters.ParamByName('KE').Value:=DM.DataSetMainID_Sob.AsInteger;

Dm.DataSetMain.Active:=false;

ComEdit.Execute;

Dm.DataSetMain.Active:=true;

Close;

  end;     {1}

end; {case} 

end; 

procedure TMainRecordForm.FormClose(Sender: TObject;

  var Action: TCloseAction);

begin

DM.DataSetOtkazy.Close;

end; 

procedure TMainRecordForm.FinEditKeyPress(Sender: TObject;

  var Key: Char);

begin

case key of

  '0'.. '9', #8, #13: ;

else

  if not ((key = DecimalSeparator) and (Pos(DecimalSeparator,FinEdit.Text)=0))

    then key:= #0;

end;

end; 

procedure TMainRecordForm.keyP(Sender: TObject; var Key: Char);

begin

case key of

   '0'.. '9', #8, #13: ;

else key:= #0;

end;

end; 

procedure TMainRecordForm.FinEditContextPopup(Sender: TObject;

  MousePos: TPoint; var Handled: Boolean);

begin

Handled:=true;

end; 

procedure TMainRecordForm.ToolButton2Click(Sender: TObject);

begin

Close;

end; 

procedure TMainRecordForm.ToolButton4Click(Sender: TObject);

begin

DM.DataSetOtkazy.Active:=true;

end; 
 

end. 
 

Модуль редактирования таблицы «Виды отказов»

 

unit EditOtkazyUnit; 

interface 

uses

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

  Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, DBCtrls, ComCtrls, ToolWin,

  ADODB; 

type

  TEditTypeRefusal = class(TForm)

    DBGridOtkazy: TDBGrid;

    ComNew: TADOCommand;

    ComEdit: TADOCommand;

    ComDel: TADOCommand;

    ToolBar1: TToolBar;

    ToolButton1: TToolButton;

    ToolButton3: TToolButton;

    ToolButton2: TToolButton;

    GroupBox1: TGroupBox;

    Label3: TLabel;

    NameRefusalEdit: TEdit;

    DescRefusalEdit: TRichEdit;

    Label2: TLabel;

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

    procedure ToolButton1Click(Sender: TObject);

    procedure DBGridOtkazyKeyUp(Sender: TObject; var Key: Word;

      Shift: TShiftState);

    procedure DBGridOtkazyTitleClick(Column: TColumn);

    Procedure SelRow;

    procedure DBGridOtkazyMouseUp(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure ToolButton3Click(Sender: TObject);

    procedure ToolButton2Click(Sender: TObject);

    procedure FormShow(Sender: TObject);

    procedure FormResize(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  EditTypeRefusal: TEditTypeRefusal;

  wCol3: array [0..3] of word; 

implementation 

uses DMunit; 

{$R *.dfm} 

Procedure  TEditTypeRefusal.SelRow;

Begin 

NameRefusalEdit.Text:=Dm.DataSetOtkazy.FieldValues['Vid_Otkaza'];

if DM.DataSetOtkazy.FieldValues['Opisanie_Otkaza']<>NULL then

  DescRefusalEdit.Text:=DM.DataSetOtkazy.FieldValues['Opisanie_Otkaza']

else

  DescRefusalEdit.Text:='';

end; 
 

procedure TEditTypeRefusal.FormClose(Sender: TObject;

  var Action: TCloseAction);

begin

DM.DataSetOtkazy.Close;

DescRefusalEdit.Clear;

end; 
 

procedure TEditTypeRefusal.ToolButton1Click(Sender: TObject);

begin

If DM.DataSetOtkazy.Lookup('Vid_Otkaza', Trim(NameRefusalEdit.Text), 'Vid_Otkaza')<>NULL then

Begin

  Application.MessageBox('Отказ с таким нименованием уже существует.','Не возможно добавить запись', MB_OK);

  exit;

end; 

If Trim(NameRefusalEdit.Text)='' then

Begin

  Application.MessageBox('Не правильно заполнено поле "Наименование отказа".','Не возможно добавить запись', MB_OK);

  exit;

end; 

If Application.MessageBox('Добавить новый отказ?','Внимание!',MB_OKCANCEL + MB_DEFBUTTON1) <> IDOK then  exit; 

ComNew.Parameters.ParamByName('NR').Value:=Trim(NameRefusalEdit.Text); 

If Trim(DescRefusalEdit.Text)=''then

  ComNew.Parameters.ParamByName('DS').Value:=NULL

else

  ComNew.Parameters.ParamByName('DS').Value:=Trim(DescRefusalEdit.Text); 
 

DM.DataSetOtkazy.Close;

ComNew.Execute;

DM.DataSetOtkazy.Active:=true; 

end; 

procedure TEditTypeRefusal.DBGridOtkazyKeyUp(Sender: TObject;

  var Key: Word; Shift: TShiftState);

begin

selRow;

end; 

procedure TEditTypeRefusal.DBGridOtkazyTitleClick(Column: TColumn);

begin

if Column.FieldName='TypeRefLook' then

  DM.DataSetOtkazy.Sort:='key_typeRefusal'

else

  DM.DataSetOtkazy.Sort:=Column.FieldName;

end; 

procedure TEditTypeRefusal.DBGridOtkazyMouseUp(Sender: TObject;

  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

SelRow;

end; 

procedure TEditTypeRefusal.ToolButton3Click(Sender: TObject);

var

res: variant;

begin

res:=DM.DataSetOtkazy.Lookup('Vid_Otkaza', Trim(NameRefusalEdit.Text), 'ID_Otkaz'); 

If (res<>NULL) and (res<>DM.DataSetOtkazyID_Otkaz.AsVariant) then

Begin

  Application.MessageBox('Отказ с таким наименованием уже существует.','Не возможно редактировать запись', MB_OK);

  exit;

end; 

If Trim(NameRefusalEdit.Text)='' then

Begin

  Application.MessageBox('Не правильно заполнено поле "Наименование отказа".','Не возможно редактировать запись', MB_OK);

  exit;

end; 

If Application.MessageBox(pchar('Изменить  отказ: '+DM.DataSetOtkazyVid_Otkaza.AsString+'?'),

'Внимание!',MB_OKCANCEL + MB_DEFBUTTON1) <> IDOK then  exit; 

DM.DataSetOtkazy.Edit;

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