Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
моя ПЗ.doc
Скачиваний:
22
Добавлен:
13.09.2019
Размер:
5.7 Mб
Скачать

8.4 Входные и выходные данные

Входные данные системы:

а) по категориям поезда – код категории, название;

б) по поездам – номер поезда, название, состав, периодичность;

в) по категориям вагона – код категории, название, стоимость постельного белья;

г) по вагонам – номер вагона, количество мест;

д) по электропоездам – номер, название;

е) по зонам – номер зоны, название;

ж) по станциям – код станции, название;

з) по расписанию – код расписания, название поезда или электропоезда, название станции, время отправления, время прибытия, время в пути.

Выходными данными должны быть ответы на запросы и следующие отчеты:

а) со списком поездов до станции назначения;

б) о времени отправления и прибытия, длительности пути и периодичности поездов;

в) о стоимости проезда.

Заключение

В данной работе была разработана автоматизированная система «Расписание движения поездов».

Реализация системы проводилась в среде программирования Delphi 7.0, база данных реализована средствами утилиты IBExpert, СУБД Firebird 2.0.

При написании программы основное внимание было уделено удобству работы пользователя с программой и построению дружественного интерфейса.

Результаты тестирования показали, что программа работает верно во всех предполагаемых ситуациях.

Список использованных источников

  1. Вендров А.М Проектирование программного обеспечения экономических информационных систем. – М.: Финансы и статистика, 2003. – 352с.

  2. www.interface.ru;

  3. www.wikipedia.ru;

  4. www.ms.by.ru;

  5. www.firebird-server.narod.ru.

Функциональная модель Приложение а

(обязательное)

Рисунок А.1-Контекстная диаграмма

Рисунок А.2-Функциональная декомпозиция работы« Учет расписания движения поездов»

Рисунок А.3 - Функциональная декомпозиция работы «Формирование запросов к системе и получение отчётов»

Модель структуры базы данных системы Приложение б

(обязательное)

Рисунок Б.1 – ER- диаграмма логического уровня

Рисунок Б.2 – ER- диаграмма физического уровня

Текст программы Приложение в

(обязательное)

unit Form_Main_Unit;

interface

uses

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

Dialogs, ActnList, ComCtrls, ImgList, ToolWin, Menus, jpeg, ExtCtrls;

type

TfmMain = class(TForm)

MainMenu1: TMainMenu;

N3: TMenuItem;

ImageList1: TImageList;

StatusBar1: TStatusBar;

ActionList1: TActionList;

Action1: TAction;

Action2: TAction;

Action3: TAction;

N12: TMenuItem;

N1: TMenuItem;

N2: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

Image1: TImage;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

N18: TMenuItem;

N19: TMenuItem;

N20: TMenuItem;

N21: TMenuItem;

N22: TMenuItem;

procedure N3Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure N15Click(Sender: TObject);

procedure N16Click(Sender: TObject);

procedure N17Click(Sender: TObject);

procedure N19Click(Sender: TObject);

procedure N20Click(Sender: TObject);

procedure N22Click(Sender: TObject);

procedure N23Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmMain: TfmMain;

implementation

uses DM_Unit, Form_Kat_Poezd_Unit, Form_Kat_Vag_Unit, Form_Poezda_Unit,

Form_ElPoezda_Unit, Form_Zona_Unit, Form_Stancii_Unit,

Form_Raspisanie_Unit, Form_Raspisanie_ElPoezd_Unit, Unit1,

Form_Zapros2_Unit, Form_Graph_Unit, Otchet1Unit, Form_Perekr_Unit,

SpravUnit3, Unit3;

{$R *.dfm}

procedure TfmMain.N3Click(Sender: TObject);

begin

close;

end;

procedure TfmMain.N2Click(Sender: TObject);

begin

fmKat_Poezd:= TfmKat_Poezd.Create(Application);

dmVokzal.dst_kategor_poezda.Open;

fmKat_Poezd.Show;

end;

procedure TfmMain.N4Click(Sender: TObject);

begin

fmKat_Vag:= TfmKat_Vag.Create(Application);

dmVokzal.dst_kategor_vagon.Open;

fmKat_Vag.Show;

end;

procedure TfmMain.N1Click(Sender: TObject);

begin

fmPoezda:= TfmPoezda.Create(Application);

dmVokzal.dst_poezda.Open;

dmVokzal.dst_vagony.Open;

fmPoezda.Show;

end;

procedure TfmMain.N5Click(Sender: TObject);

begin

fmElPoezda:= TfmElPoezda.Create(Application);

dmVokzal.dst_epoezda.Open;

fmElPoezda.Show;

end;

procedure TfmMain.N8Click(Sender: TObject);

begin

fmZona:= TfmZona.Create(Application);

dmVokzal.dst_zona.Open;

fmZona.Show;

end;

procedure TfmMain.N7Click(Sender: TObject);

begin

fmStancii:= TfmStancii.Create(Application);

dmVokzal.dst_stancii.Open;

fmStancii.Show;

end;

procedure TfmMain.N10Click(Sender: TObject);

begin

fmRaspisaniePoezd:= TfmRaspisaniePoezd.Create(Application);

dmVokzal.dst_raspisanie.Open;

dmVokzal.dstraspis1.Open;

fmRaspisaniePoezd.Show;

end;

procedure TfmMain.N14Click(Sender: TObject);

begin

fmRaspisanieElPoezd:= TfmRaspisanieElPoezd.Create(Application);

dmVokzal.dst_raspisanie_ElPoezda.Open;

dmVokzal.dstRaspis2.Open;

fmRaspisanieElPoezd.Show;

end;

procedure TfmMain.N15Click(Sender: TObject);

begin

fmZapros:= TfmZapros.Create(Application);

dmVokzal.dst_stancii.Open;

fmZapros.Show;

end;

procedure TfmMain.N16Click(Sender: TObject);

begin

fmZapros2:= TfmZapros2.Create(Application);

dmVokzal.dst_stancii_ElPoezda.Open;

fmZapros2.Show;

end;

procedure TfmMain.N17Click(Sender: TObject);

begin

fmGraph:= TfmGraph.Create(Application);

dmVokzal.QGraph.Open;

dmVokzal.QGraph2.Open;

fmGraph.Show;

end;

procedure TfmMain.N19Click(Sender: TObject);

begin

Otchet1.Show;

dmVokzal.dst_stancii.Open;

end;

procedure TfmMain.N20Click(Sender: TObject);

begin

fmPerekr.Show;

dmVokzal.dst_poezda.Open;

dmVokzal.dstPEREKR.Open;

end;

procedure TfmMain.N22Click(Sender: TObject);

begin

fmSprav.Show;

end;

procedure TfmMain.N23Click(Sender: TObject);

begin

dmVokzal.dst_poezda.Open;

fmOtchet2.show;

end;

end.

unit DM_Unit;

interface

uses

SysUtils, Classes, DB, IBCustomDataSet, IBDatabase, Controls, StdCtrls,

Mask, DBCtrls, IBQuery;

type

TdmVokzal = class(TDataModule)

db_vokzal: TIBDatabase;

tr_vokzal: TIBTransaction;

ds_kategor_poezda: TDataSource;

dst_kategor_poezda: TIBDataSet;

tr_read: TIBTransaction;

tr_write: TIBTransaction;

ds_kategor_vagon: TDataSource;

dst_kategor_vagon: TIBDataSet;

ds_poezda: TDataSource;

dst_poezda: TIBDataSet;

ds_vagony: TDataSource;

dst_vagony: TIBDataSet;

Label5: TLabel;

DBEdit4: TDBEdit;

dst_stancii: TIBDataSet;

ds_stancii: TDataSource;

dst_stoimost_proezda: TIBDataSet;

ds_stoimost_proezda: TDataSource;

dst_kategor_poezdaKAT_POEZD_ID: TIntegerField;

dst_kategor_poezdaKAT_POEZD_NAZ: TIBStringField;

dst_kategor_vagonKAT_VAGON_ID: TIntegerField;

dst_kategor_vagonKAT_VAGON_NAZV: TIBStringField;

dst_kategor_vagonKAT_VAGON_STOIM_BELIA: TFloatField;

dst_vagonyVAGON_NUM: TIBStringField;

dst_vagonyPOEZD_NUM: TIBStringField;

dst_vagonyKAT_VAGON_ID: TIntegerField;

dst_vagonyVAGON_KOLICH_MEST: TIntegerField;

dst_stanciiSTANCIA_ID: TIntegerField;

dst_stanciiSTANCIA_NAZV: TIBStringField;

dst_stoimost_proezdaSTOIMOST_ID: TIntegerField;

dst_stoimost_proezdaRASPISANIE_ID: TIntegerField;

dst_stoimost_proezdaKAT_VAGON_ID: TIntegerField;

dst_stoimost_proezdaSTOIMOST_CENA: TFloatField;

dst_epoezda: TIBDataSet;

dst_epoezdaEPOEZDA_ID: TIntegerField;

dst_epoezdaEPOEZDA_NAZV: TIBStringField;

ds_epoezda: TDataSource;

dst_zona: TIBDataSet;

ds_zona: TDataSource;

dst_zonaZONA_ID: TIntegerField;

dst_zonaZONA_CENA: TFloatField;

dst_poezdaPOEZD_NUM: TIBStringField;

dst_poezdaKAT_POEZD_ID: TIntegerField;

dst_poezdaPOEZD_NAZV: TIBStringField;

dst_poezdaPOEZD_SOSTAV: TIBStringField;

dst_poezdaPOEZD_PERIOD: TIBStringField;

dst_poezdaKategor: TStringField;

dst_vagonyKategor: TStringField;

ds_InPoezda: TDataSource;

ds_InVagony: TDataSource;

dst_InPoezda: TIBDataSet;

dst_InVagony: TIBDataSet;

dst_InPoezdaPOEZD_NUM: TIBStringField;

dst_InPoezdaKAT_POEZD_ID: TIntegerField;

dst_InPoezdaPOEZD_NAZV: TIBStringField;

dst_InPoezdaPOEZD_SOSTAV: TIBStringField;

dst_InPoezdaPOEZD_PERIOD: TIBStringField;

dst_InPoezdakategor: TStringField;

dst_InVagonyVAGON_NUM: TIBStringField;

dst_InVagonyPOEZD_NUM: TIBStringField;

dst_InVagonyKAT_VAGON_ID: TIntegerField;

dst_InVagonyVAGON_KOLICH_MEST: TIntegerField;

dst_InVagonykategor: TStringField;

dst_stanciiZONA_ID: TIntegerField;

ds_InStancii: TDataSource;

dst_InStancii: TIBDataSet;

dst_InStanciiSTANCIA_ID: TIntegerField;

dst_InStanciiSTANCIA_NAZV: TIBStringField;

dst_InStanciiZONA_ID: TIntegerField;

dst_InStanciicena: TCurrencyField;

dst_stanciicena: TCurrencyField;

dst_raspisanie: TIBDataSet;

ds_raspisanie: TDataSource;

dst_raspisanieRASPISANIE_ID: TIntegerField;

dst_raspisanieSTANCIA_ID: TIntegerField;

dst_raspisaniePOEZD_NUM: TIBStringField;

dst_raspisanieRASPISANIE_VR_VP: TIBStringField;

dst_InRaspisanie: TIBDataSet;

ds_InRaspisanie: TDataSource;

dst_InRaspisanieRASPISANIE_ID: TIntegerField;

dst_InRaspisanieSTANCIA_ID: TIntegerField;

dst_InRaspisaniePOEZD_NUM: TIBStringField;

dst_InRaspisanieEPOEZDA_ID: TIntegerField;

dst_InRaspisanieRASPISANIE_VR_VP: TIBStringField;

dst_InRaspisaniestancia: TStringField;

dst_stoimost_proezdakatvag: TStringField;

QStoimost: TIBQuery;

ds_QStoimost: TDataSource;

dst_InRaspisaniepoezd: TStringField;

dst_InRaspisanieepoezd: TStringField;

dst_raspisaniestancia: TStringField;

dst_raspisanieRASPISANIE_VR_OTPR: TTimeField;

dst_raspisanieRASPISANIE_VR_PRIB: TTimeField;

dst_InRaspisanieRASPISANIE_VR_OTPR: TTimeField;

dst_InRaspisanieRASPISANIE_VR_PRIB: TTimeField;

dst_raspisanie_ElPoezda: TIBDataSet;

ds_raspisanie_ElPoezda: TDataSource;

dst_raspisanie_ElPoezdaRASPISANIE_ID: TIntegerField;

dst_raspisanie_ElPoezdaSTANCIA_ID: TIntegerField;

dst_raspisanie_ElPoezdaPOEZD_NUM: TIBStringField;

dst_raspisanie_ElPoezdaEPOEZDA_ID: TIntegerField;

dst_raspisanie_ElPoezdaRASPISANIE_VR_OTPR: TTimeField;

dst_raspisanie_ElPoezdaRASPISANIE_VR_PRIB: TTimeField;

dst_raspisanie_ElPoezdaRASPISANIE_VR_VP: TIBStringField;

dst_raspisanie_ElPoezdastancia: TStringField;

QZapros_Stancii: TIBQuery;

QZapros_Stanciistancii: TStringField;

dsZapros_Stancii: TDataSource;

QZapros_StanciiRASPISANIE_ID: TIntegerField;

QZapros_StanciiSTANCIA_ID: TIntegerField;

QZapros_StanciiPOEZD_NUM: TIBStringField;

QZapros_StanciiEPOEZDA_ID: TIntegerField;

QZapros_StanciiRASPISANIE_VR_OTPR: TTimeField;

QZapros_StanciiRASPISANIE_VR_PRIB: TTimeField;

QZapros_StanciiRASPISANIE_VR_VP: TIBStringField;

QZapros_Stoimost: TIBQuery;

dsZapros_Stoimost: TDataSource;

dst_InVagonyVAGON_ID: TIntegerField;

QZapros_StanciiPoezdname: TStringField;

QZapros_Stanciikat: TStringField;

QZapros_Stanciikatname: TStringField;

QZapros_StoimostSTOIMOST_CENA: TFloatField;

QZapros_StoimostKAT_VAGON_ID: TIntegerField;

QZapros_Stoimostkatvagname: TStringField;

QZapros_Promez: TIBQuery;

dsZapros_Promez: TDataSource;

QZapros_PromezstanName: TStringField;

QZapros_PromezRASPISANIE_ID: TIntegerField;

QZapros_PromezSTANCIA_ID: TIntegerField;

QZapros_PromezPOEZD_NUM: TIBStringField;

QZapros_PromezEPOEZDA_ID: TIntegerField;

QZapros_PromezRASPISANIE_VR_OTPR: TTimeField;

QZapros_PromezRASPISANIE_VR_PRIB: TTimeField;

QZapros_PromezRASPISANIE_VR_VP: TIBStringField;

QZapros_PromezPoezdname: TStringField;

QZapros_Promezkat: TStringField;

QZapros2_Stancii: TIBQuery;

QZapros2_StanciiRASPISANIE_ID: TIntegerField;

QZapros2_StanciiSTANCIA_ID: TIntegerField;

QZapros2_StanciiPOEZD_NUM: TIBStringField;

QZapros2_StanciiEPOEZDA_ID: TIntegerField;

QZapros2_StanciiRASPISANIE_VR_OTPR: TTimeField;

QZapros2_StanciiRASPISANIE_VR_PRIB: TTimeField;

QZapros2_StanciiRASPISANIE_VR_VP: TIBStringField;

QZapros2_StanciiEnazv: TStringField;

dsZapros2_Stancii: TDataSource;

QZapros2_Stoimost: TIBQuery;

dsZapros2_Stoimost: TDataSource;

QZapros2_StoimostZONA_ID: TIntegerField;

QZapros2_Stoimostzonastoim: TCurrencyField;

dst_Stancii_ElPoezda: TIBDataSet;

dst_Stancii_ElPoezdaSTANCIA_ID: TIntegerField;

dst_Stancii_ElPoezdaSTANCIA_NAZV: TIBStringField;

dst_Stancii_ElPoezdaZONA_ID: TIntegerField;

ds_Stancii_ElPoezda: TDataSource;

dsZapros2_Promez: TDataSource;

QZapros2_Promez: TIBQuery;

QZapros2_PromezRASPISANIE_ID: TIntegerField;

QZapros2_PromezSTANCIA_ID: TIntegerField;

QZapros2_PromezPOEZD_NUM: TIBStringField;

QZapros2_PromezEPOEZDA_ID: TIntegerField;

QZapros2_PromezRASPISANIE_VR_OTPR: TTimeField;

QZapros2_PromezRASPISANIE_VR_PRIB: TTimeField;

QZapros2_PromezRASPISANIE_VR_VP: TIBStringField;

QZapros2_Promezstanname: TStringField;

QZapros2_Promezponame: TStringField;

QGraph: TIBQuery;

QGraph2: TIBQuery;

QGraph2COUNT: TIntegerField;

QGraphCOUNT: TIntegerField;

QOtchet1: TIBQuery;

QOtchet1POEZD_NUM: TIBStringField;

QOtchet1poezdnam: TStringField;

dstRaspis1: TIBDataSet;

dsRaspis1: TDataSource;

dstRaspis1RASPISANIE_ID: TIntegerField;

dstRaspis1STANCIA_ID: TIntegerField;

dstRaspis1POEZD_NUM: TIBStringField;

dstRaspis1EPOEZDA_ID: TIntegerField;

dstRaspis1RASPISANIE_VR_OTPR: TTimeField;

dstRaspis1RASPISANIE_VR_PRIB: TTimeField;

dstRaspis1RASPISANIE_VR_VP: TIBStringField;

dstRaspis1stann: TStringField;

dstRaspis2: TIBDataSet;

dsRaspis2: TDataSource;

dstRaspis2RASPISANIE_ID: TIntegerField;

dstRaspis2STANCIA_ID: TIntegerField;

dstRaspis2POEZD_NUM: TIBStringField;

dstRaspis2EPOEZDA_ID: TIntegerField;

dstRaspis2RASPISANIE_VR_OTPR: TTimeField;

dstRaspis2RASPISANIE_VR_PRIB: TTimeField;

dstRaspis2RASPISANIE_VR_VP: TIBStringField;

dstRaspis2stan: TStringField;

dst_raspisanie_ElPoezdaep: TStringField;

dstRaspis1po: TStringField;

dst_raspisaniepoe: TStringField;

DSQPERERKR: TDataSource;

dstPEREKR: TIBQuery;

dstPEREKRRASPISANIE_ID: TIntegerField;

dstPEREKRSTANCIA_ID: TIntegerField;

dstPEREKRPOEZD_NUM: TIBStringField;

dstPEREKREPOEZDA_ID: TIntegerField;

dstPEREKRRASPISANIE_VR_OTPR: TTimeField;

dstPEREKRRASPISANIE_VR_PRIB: TTimeField;

dstPEREKRRASPISANIE_VR_VP: TIBStringField;

dstPEREKRst: TStringField;

dstPEREKRpz: TStringField;

otchet2: TIBQuery;

dstPEREKRper: TStringField;

procedure dst_vagonyNewRecord(DataSet: TDataSet);

procedure dst_InVagonyNewRecord(DataSet: TDataSet);

procedure dst_stoimost_proezdaNewRecord(DataSet: TDataSet);

procedure dst_stanciiFilterRecord(DataSet: TDataSet;

var Accept: Boolean);

procedure dst_Stancii_ElPoezdaFilterRecord(DataSet: TDataSet;

var Accept: Boolean);

procedure dst_poezdaFilterRecord(DataSet: TDataSet;

var Accept: Boolean);

private

{ Private declarations }

public

{ Public declarations }

end;

var

dmVokzal: TdmVokzal;

implementation

uses Unit1, Form_Zapros2_Unit, Form_Perekr_Unit;

{$R *.dfm}

procedure TdmVokzal.dst_vagonyNewRecord(DataSet: TDataSet);

begin

dst_vagony.FieldValues['POEZD_NUM']:=dst_poezda.FieldValues['POEZD_NUM']

end;

procedure TdmVokzal.dst_InVagonyNewRecord(DataSet: TDataSet);

begin

dst_InVagony.FieldValues['POEZD_NUM']:=dst_poezda.FieldValues['POEZD_NUM']

end;

procedure TdmVokzal.dst_stoimost_proezdaNewRecord(DataSet: TDataSet);

begin

dst_stoimost_proezda.FieldValues['RASPISANIE_ID']:=dst_raspisanie.FieldValues['RASPISANIE_ID']

end;

procedure TdmVokzal.dst_stanciiFilterRecord(DataSet: TDataSet;

var Accept: Boolean);

Var

s:string;

begin

s:=AnsiUpperCase(DataSet.FieldByName('STANCIA_NAZV').AsString);

accept:= POS(AnsiUpperCase(fmZapros.Edit1.Text), s) <> 0;

end;

procedure TdmVokzal.dst_Stancii_ElPoezdaFilterRecord(DataSet: TDataSet;

var Accept: Boolean);

Var

s:string;

begin

s:=AnsiUpperCase(DataSet.FieldByName('STANCIA_NAZV').AsString);

accept:= POS(AnsiUpperCase(fmZapros2.Edit1.Text), s) <> 0;

end;

procedure TdmVokzal.dst_poezdaFilterRecord(DataSet: TDataSet;

var Accept: Boolean);

Var

s:string;

begin

s:=AnsiUpperCase(DataSet.FieldByName('POEZD_NAZV').AsString);

accept:= POS(AnsiUpperCase(fmPerekr.Edit1.Text), s) <> 0;

end;

end.

unit Form_ElPoezda_Unit;

interface

uses

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

Dialogs, DBCtrls, Grids, DBGrids, ExtCtrls;

type

TfmElPoezda = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

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

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmElPoezda: TfmElPoezda;

implementation

uses DM_Unit;

{$R *.dfm}

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

begin

if dmVokzal.dst_epoezda.Active then dmVokzal.dst_epoezda.Close;

Action := caFree;

fmElPoezda := nil;

dmVokzal.tr_vokzal.Commit;

end;

end.

unit Form_Graph_Unit;

interface

uses

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

Dialogs, DbChart, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls;

type

TfmGraph = class(TForm)

Chart1: TChart;

Series1: TPieSeries;

Label1: TLabel;

procedure FormShow(Sender: TObject);

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

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmGraph: TfmGraph;

implementation

uses DM_Unit;

{$R *.dfm}

procedure TfmGraph.FormShow(Sender: TObject);

begin

With Series1 do

begin

Clear;

AddPie(dmVokzal.QGraph.FieldValues['COUNT'], 'Поезда дальнего назначения', clYellow);

AddPie(dmVokzal.QGraph2.FieldValues['COUNT'], 'Пригородные поезда', clBlue);

end;

end;

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

begin

dmVokzal.QGraph.Close;

dmVokzal.QGraph2.Close;

end;

end.

unit Form_Kat_Poezd_Unit;

interface

uses

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

Dialogs, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls;

type

TfmKat_Poezd = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

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

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmKat_Poezd: TfmKat_Poezd;

implementation

uses DM_Unit;

{$R *.dfm}

procedure TfmKat_Poezd.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

if dmVokzal.dst_kategor_poezda.Active then dmVokzal.dst_kategor_poezda.Close;

Action := caFree;

fmKat_Poezd := nil;

dmVokzal.tr_vokzal.Commit;

end;

end.

unit Form_Kat_Vag_Unit;

interface

uses

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

Dialogs, DBCtrls, Grids, DBGrids, ExtCtrls;

type

TfmKat_Vag = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

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

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmKat_Vag: TfmKat_Vag;

implementation

uses DM_Unit;

{$R *.dfm}

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

begin

if dmVokzal.dst_kategor_vagon.Active then dmVokzal.dst_kategor_vagon.Close;

Action := caFree;

fmKat_Vag := nil;

dmVokzal.tr_vokzal.Commit;

end;

end.

unit Form_New_Poezda_Unit;

interface

uses

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

Dialogs, DBCtrls, StdCtrls, Mask, ExtCtrls;

type

TfmNewPoezd = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Button1: TButton;

Button2: TButton;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

Label1: TLabel;

Label2: TLabel;

DBEdit3: TDBEdit;

DBEdit4: TDBEdit;

Label3: TLabel;

Label4: TLabel;

DBLookupComboBox1: TDBLookupComboBox;

Label5: TLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmNewPoezd: TfmNewPoezd;

implementation

uses DM_Unit;

{$R *.dfm}

end.

unit Form_New_Raspisanie_Unit;

interface

uses

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

Dialogs,DateUtils, StdCtrls, ExtCtrls, Mask, DBCtrls, ComCtrls;

type

TfmNewRaspis = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Button1: TButton;

Button2: TButton;

GroupBox1: TGroupBox;

Label1: TLabel;

Label2: TLabel;

GroupBox2: TGroupBox;

GroupBox3: TGroupBox;

DateTimePicker2: TDateTimePicker;

Label6: TLabel;

GroupBox4: TGroupBox;

Label5: TLabel;

DateTimePicker4: TDateTimePicker;

GroupBox5: TGroupBox;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

DBLookupComboBox1: TDBLookupComboBox;

DBLookupComboBox2: TDBLookupComboBox;

DBLookupComboBox3: TDBLookupComboBox;

procedure DateTimePicker2Change(Sender: TObject);

procedure DateTimePicker4Change(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmNewRaspis: TfmNewRaspis;

implementation

uses DM_Unit;

{$R *.dfm}

function Vputi(date1:string; date2:string):Int64;

begin

Vputi:=MinutesBetween(StrToTime(date2),StrToTime(date1));

end;

procedure TfmNewRaspis.DateTimePicker2Change(Sender: TObject);

begin

DBEdit1.Text:=TimeToStr(DateTimePicker2.Time);

DBEdit3.Text:=IntToStr(Vputi(DBEdit1.Text,DBEdit2.Text) div 60)+' ÷. '+IntToStr(Vputi(DBEdit1.Text,DBEdit2.Text) mod 60)+' ìèí.';

end;

procedure TfmNewRaspis.DateTimePicker4Change(Sender: TObject);

begin

DBEdit2.Text:=TimeToStr(DateTimePicker4.Time);

DBEdit3.Text:=IntToStr(Vputi(DBEdit1.Text,DBEdit2.Text) div 60)+' ÷. '+IntToStr(Vputi(DBEdit1.Text,DBEdit2.Text) mod 60)+' ìèí.';

end;

procedure TfmNewRaspis.FormCreate(Sender: TObject);

begin

if DBEdit1.Text='' then DBEdit1.Text:=TimeToStr(DateTimePicker2.Time)

else begin

DateTimePicker2.DateTime:=StrToTime(DBEdit1.Text);

end;

if DBEdit2.Text='' then DBEdit2.Text:=TimeToStr(DateTimePicker4.Time)

else begin

DateTimePicker4.DateTime:=StrToTime(DBEdit2.Text);

end;

DBEdit3.Text:=IntToStr(Vputi(DBEdit1.Text,DBEdit2.Text) div 60)+' ÷. '+IntToStr(Vputi(DBEdit1.Text,DBEdit2.Text) mod 60)+' ìèí.';

end;

end.

unit Form_New_Stancii_Unit;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, DBCtrls, Mask;

type

TfmNewStancii = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Button1: TButton;

Button2: TButton;

DBEdit1: TDBEdit;

DBLookupComboBox1: TDBLookupComboBox;

Label1: TLabel;

Label2: TLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmNewStancii: TfmNewStancii;

implementation

uses DM_Unit;

{$R *.dfm}

end.

unit Form_New_Stoimost_Unit;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, Mask, DBCtrls;

type

TfmStoimost = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Button1: TButton;

Button2: TButton;

GroupBox1: TGroupBox;

DBLookupComboBox1: TDBLookupComboBox;

Label1: TLabel;

GroupBox2: TGroupBox;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

procedure DBLookupComboBox1CloseUp(Sender: TObject);

procedure DBEdit1Exit(Sender: TObject);

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

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmStoimost: TfmStoimost;

implementation

uses DM_Unit;

{$R *.dfm}

procedure TfmStoimost.DBLookupComboBox1CloseUp(Sender: TObject);

var

Num: integer;

begin

dmVokzal.QStoimost.Close;

Num := DBLookupComboBox1.KeyValue;

dmVokzal.QStoimost.ParamByName('ID').AsInteger := Num;

dmVokzal.QStoimost.Open;

end;

procedure TfmStoimost.DBEdit1Exit(Sender: TObject);

begin

DBEdit1.Text:=IntToStr(StrToInt(DBEdit2.Text)+StrToInt(DBEdit1.Text));

end;

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

begin

dmVokzal.QStoimost.Close;

end;

end.

unit Form_New_Vagon_Unit;

interface

uses

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

Dialogs, StdCtrls, Mask, DBCtrls, ExtCtrls;

type

TfmNewVagon = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Button1: TButton;

Button2: TButton;

DBEdit1: TDBEdit;

Label1: TLabel;

DBEdit2: TDBEdit;

Label2: TLabel;

DBLookupComboBox1: TDBLookupComboBox;

Label3: TLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmNewVagon: TfmNewVagon;

implementation

uses DM_Unit;

{$R *.dfm}

end.

unit Form_Perekr_Unit;

interface

uses

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

Dialogs, ExtCtrls, Grids, DBGrids, StdCtrls, QuickRpt, QRCtrls;

type

TfmPerekr = class(TForm)

Panel1: TPanel;

DBGrid1: TDBGrid;

Edit1: TEdit;

DBGrid3: TDBGrid;

Button1: TButton;

QuickRep1: TQuickRep;

QRBand1: TQRBand;

QRGroup1: TQRGroup;

QRLabel1: TQRLabel;

DetailBand1: TQRBand;

QRDBText1: TQRDBText;

QRBand2: TQRBand;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

QRLabel4: TQRLabel;

QRLabel5: TQRLabel;

QRDBText2: TQRDBText;

QRDBText3: TQRDBText;

QRDBText4: TQRDBText;

QRDBText5: TQRDBText;

QRLabel6: TQRLabel;

QRDBText6: TQRDBText;

QRDBText7: TQRDBText;

QRLabel7: TQRLabel;

procedure Edit1Change(Sender: TObject);

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

procedure DBGrid1CellClick(Column: TColumn);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmPerekr: TfmPerekr;

implementation

uses DM_Unit;

{$R *.dfm}

procedure TfmPerekr.Edit1Change(Sender: TObject);

begin

if Edit1.Text='' then dmVokzal.dst_poezda.Filtered:=false

else begin

dmVokzal.dst_poezda.Filtered:=false;

dmVokzal.dst_poezda.Filtered:=true;

end;

end;

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

begin

dmVokzal.dst_poezda.Close;

//dmVokzal.dst_stancii.Close;

end;

procedure TfmPerekr.DBGrid1CellClick(Column: TColumn);

begin

dmVokzal.dstPEREKR.Close;

dmVokzal.dstPEREKR.ParamByName('POEZD_NUM').AsInteger:=dmVokzal.dst_poezda.FieldValues['POEZD_NUM'];

dmVokzal.dstPEREKR.Open;

end;

procedure TfmPerekr.Button1Click(Sender: TObject);

begin

dmVokzal.dstPEREKR.Close;

dmVokzal.dstPEREKR.ParamByName('POEZD_NUM').AsInteger:=dmVokzal.dst_poezda.FieldValues['POEZD_NUM'];

dmVokzal.dstPEREKR.Open;

QuickRep1.Preview;

end;

end.

unit Form_Poezda_Unit;

interface

uses

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

Dialogs, StdCtrls, Grids, DBGrids, ExtCtrls;

type

TfmPoezda = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

Panel4: TPanel;

DBGrid1: TDBGrid;

buAdd: TButton;

buChang: TButton;

BuDel: TButton;

DBGrid2: TDBGrid;

buAdd1: TButton;

buChang1: TButton;

buDel1: TButton;

Label1: TLabel;

Label2: TLabel;

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

procedure buAddClick(Sender: TObject);

procedure buAdd1Click(Sender: TObject);

procedure buChangClick(Sender: TObject);

procedure BuDelClick(Sender: TObject);

procedure buChang1Click(Sender: TObject);

procedure buDel1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmPoezda: TfmPoezda;

implementation

uses DM_Unit, Form_New_Poezda_Unit, Form_New_Vagon_Unit;

{$R *.dfm}

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

begin

if dmVokzal.dst_vagony.Active then dmVokzal.dst_vagony.Close;

if dmVokzal.dst_poezda.Active then dmVokzal.dst_poezda.Close;

Action := caFree;

fmPoezda := nil;

dmVokzal.tr_vokzal.Commit;

end;

procedure TfmPoezda.buAddClick(Sender: TObject);

begin

dmVokzal.dst_InPoezda.Open;

dmVokzal.dst_InPoezda.Insert;

try //Отлов ошибок начало

fmNewPoezd := TfmNewPoezd .Create(Application); //создание формы

if fmNewPoezd.ShowModal = mrOK then

begin

try

dmVokzal.dst_InPoezda.Post;

except //при ошибке выводит

ShowMessage('Ошибка при записи в таблицу POEZDA!');

end;

end

else

begin

dmVokzal.dst_InPoezda.Cancel;

end;

finally

fmNewPoezd.Free;

fmNewPoezd := nil;

end; //отлав ошибок конец

dmVokzal.dst_InPoezda.Close;

dmVokzal.tr_write.Commit;

dmVokzal.dst_poezda.Close;

dmVokzal.dst_poezda.Open;

dmVokzal.tr_write.Active:=true;

end;

procedure TfmPoezda.buAdd1Click(Sender: TObject);

begin

dmVokzal.dst_InVagony.Open;

dmVokzal.dst_InVagony.Insert;

try

fmNewVagon := TfmNewVagon.Create(Application);

if fmNewVagon.ShowModal = mrOK then

begin

try

dmVokzal.dst_InVagony.Post;

except

ShowMessage('Ошибка при записи в таблицу VAGONY!');

end;

end

else

begin

dmVokzal.dst_InVagony.Cancel;

end;

finally

fmNewVagon.Free;

fmNewVagon:= nil;

end;

dmVokzal.dst_InVagony.Close;

dmVokzal.tr_write.Commit;

dmVokzal.dst_vagony.Close;

dmVokzal.dst_vagony.Open;

dmVokzal.tr_write.Active:=true;

end;

procedure TfmPoezda.buChangClick(Sender: TObject);

var

Num: String;

begin

Num := dmVokzal.dst_poezda.FieldValues['POEZD_NUM']; //запоминаем номер поезда

dmVokzal.dst_InPoezda.ParamByName('NUM').AsString := Num;

dmVokzal.dst_InPoezda.Open;

dmVokzal.dst_InPoezda.Edit;

try

fmNewPoezd := TfmNewPoezd.Create(Application);

if fmNewPoezd.ShowModal = mrOK then

begin

dmVokzal.dst_InPoezda.Post;

end

else

begin

dmVokzal.dst_InPoezda.Cancel

end;

finally

fmNewPoezd.Free;

fmNewPoezd := nil;

end;

dmVokzal.dst_InPoezda.Close;

dmVokzal.tr_Write.Commit;

dmVokzal.dst_poezda.Refresh;

dmVokzal.dst_poezda.Open;

dmVokzal.tr_Write.Active:=true;

dmVokzal.tr_Read.Active:=true;

end;

procedure TfmPoezda.BuDelClick(Sender: TObject);

var

Num: String;

begin

if MessageDlg('Вы действительно хотите удалить запись?',

mtConfirmation, [mbYes, mbNo], 0) = mrYes then

begin

Num := dmVokzal.dst_poezda.FieldValues['POEZD_NUM'];

dmVokzal.dst_InPoezda.ParamByName('NUM').AsString := Num;

dmVokzal.dst_InPoezda.Open;

dmVokzal.dst_InPoezda.Delete;

dmVokzal.dst_InPoezda.Close;

dmVokzal.tr_Write.Commit;

dmVokzal.tr_Read.Commit;

dmVokzal.dst_poezda.Open;

dmVokzal.tr_Write.Active:=true;

dmVokzal.tr_Read.Active:=true;

end;

end;

procedure TfmPoezda.buChang1Click(Sender: TObject);

var

Num: String;

begin

Num := dmVokzal.dst_vagony.FieldValues['VAGON_NUM'];

dmVokzal.dst_vagony.Refresh;

dmVokzal.dst_InVagony.ParamByName('NUM').AsString := Num;

dmVokzal.dst_InVagony.Open;

dmVokzal.dst_InVagony.Edit;

try

fmNewVagon := TfmNewVagon.Create(Application);

if fmNewVagon.ShowModal = mrOK then

begin

try

dmVokzal.dst_InVagony.Post;

except

ShowMessage('Ошибка при записи в таблицу VAGONY!');

end;

end

else

begin

dmVokzal.dst_InVagony.Cancel;

end;

finally

fmNewVagon.Free;

fmNewVagon:= nil;

end;

dmVokzal.dst_InVagony.Close;

dmVokzal.tr_Write.Commit;

dmVokzal.dst_vagony.Refresh;

dmVokzal.dst_vagony.Open;

dmVokzal.tr_Write.Active:=true;

dmVokzal.tr_Read.Active:=true;

end;

procedure TfmPoezda.buDel1Click(Sender: TObject);

var

Num: String;

begin

if MessageDlg('Вы действительно хотите удалить запись?',

mtConfirmation, [mbYes, mbNo], 0) = mrYes then

begin

Num := dmVokzal.dst_vagony.FieldValues['VAGON_NUM'];

dmVokzal.dst_InVagony.ParamByName('NUM').AsString := Num;

dmVokzal.dst_InVagony.Open;

dmVokzal.dst_InVagony.Delete;

dmVokzal.dst_InVagony.Close;

dmVokzal.tr_Write.Commit;

dmVokzal.tr_Read.Commit;

dmVokzal.dst_poezda.Open;

dmVokzal.dst_vagony.Open;

dmVokzal.tr_Write.Active:=true;

dmVokzal.tr_Read.Active:=true;

end;

end;

end.

unit Form_Raspisanie_ElPoezd_Unit;

interface

uses

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

Dialogs, Grids, DBGrids, StdCtrls, ExtCtrls;

type

TfmRaspisanieElPoezd = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

buAdd: TButton;

buChang: TButton;

buDel: TButton;

DBGrid1: TDBGrid;

DBGrid2: TDBGrid;

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

procedure buAddClick(Sender: TObject);

procedure buChangClick(Sender: TObject);

procedure buDelClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmRaspisanieElPoezd: TfmRaspisanieElPoezd;

implementation

uses DM_Unit, Form_New_Raspisanie_Unit;

{$R *.dfm}

procedure TfmRaspisanieElPoezd.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

if dmVokzal.dst_raspisanie_ElPoezda.Active then dmVokzal.dst_raspisanie_ElPoezda.Close;

Action := caFree;

fmRaspisanieElPoezd := nil;

dmVokzal.tr_read.Commit;

end;

procedure TfmRaspisanieElPoezd.buAddClick(Sender: TObject);

begin

dmVokzal.dst_InRaspisanie.Open;

dmVokzal.dst_InRaspisanie.Insert;

try

fmNewRaspis := TfmNewRaspis .Create(Application);

if fmNewRaspis .ShowModal = mrOK then

begin

try

dmVokzal.dst_InRaspisanie.Post;

except

ShowMessage('Ошибка при записи в таблицу RASPISANIE!');

end;

end

else

begin

dmVokzal.dst_InRaspisanie.Cancel;

end;

finally

fmNewRaspis.Free;

fmNewRaspis := nil;

end;

dmVokzal.dst_InRaspisanie.Close;

dmVokzal.tr_write.Commit;

dmVokzal.dst_raspisanie_ElPoezda.Close;

dmVokzal.dst_raspisanie_ElPoezda.Open;

dmVokzal.tr_write.Active:=true;

end;

procedure TfmRaspisanieElPoezd.buChangClick(Sender: TObject);

var

Num: integer;

begin

Num := dmVokzal.dst_raspisanie_ElPoezda.FieldValues['RASPISANIE_ID'];

dmVokzal.dst_InRaspisanie.ParamByName('ID').AsInteger := Num;

dmVokzal.dst_InRaspisanie.Open;

dmVokzal.dst_InRaspisanie.Edit;

try

fmNewRaspis := TfmNewRaspis.Create(Application);

if fmNewRaspis.ShowModal = mrOK then

dmVokzal.dst_InRaspisanie.Post

else

dmVokzal.dst_InRaspisanie.Cancel

finally

fmNewRaspis.Free;

fmNewRaspis := nil;

end;

dmVokzal.dst_InRaspisanie.Close;

dmVokzal.tr_Write.Commit;

dmVokzal.dst_raspisanie_ElPoezda.Refresh;

dmVokzal.dst_raspisanie_ElPoezda.Open;

dmVokzal.tr_Write.Active:=true;

dmVokzal.tr_Read.Active:=true;

end;

procedure TfmRaspisanieElPoezd.buDelClick(Sender: TObject);

var

Num: integer;

begin

if MessageDlg('Вы действительно хотите удалить запись?',

mtConfirmation, [mbYes, mbNo], 0) = mrYes then

begin

Num := dmVokzal.dst_raspisanie_ElPoezda.FieldValues['RASPISANIE_ID'];

dmVokzal.dst_InRaspisanie.ParamByName('ID').AsInteger := Num;

dmVokzal.dst_InRaspisanie.Open;

dmVokzal.dst_InRaspisanie.Delete;

dmVokzal.dst_InRaspisanie.Close;

dmVokzal.tr_Write.Commit;

dmVokzal.tr_Read.Commit;

dmVokzal.dst_raspisanie_ElPoezda.Open;

dmVokzal.tr_Write.Active:=true;

dmVokzal.tr_Read.Active:=true;

end;

end;

end.

unit Form_Raspisanie_Unit;

interface

uses

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

Dialogs, StdCtrls, Grids, DBGrids, ExtCtrls;

type

TfmRaspisaniePoezd = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

DBGrid1: TDBGrid;

buAdd: TButton;

buChang: TButton;

buDel: TButton;

buPrice: TButton;

buPriceChang: TButton;

DBGrid2: TDBGrid;

procedure buAddClick(Sender: TObject);

procedure buChangClick(Sender: TObject);

procedure buDelClick(Sender: TObject);

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

procedure buPriceClick(Sender: TObject);

procedure buPriceChangClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmRaspisaniePoezd: TfmRaspisaniePoezd;

implementation

uses DM_Unit, Form_New_Raspisanie_Unit, Form_New_Stoimost_Unit;

{$R *.dfm}

procedure TfmRaspisaniePoezd.buAddClick(Sender: TObject);

begin

dmVokzal.dst_InRaspisanie.Open;

dmVokzal.dst_InRaspisanie.Insert;

try

fmNewRaspis := TfmNewRaspis .Create(Application);

if fmNewRaspis .ShowModal = mrOK then

begin

try

dmVokzal.dst_InRaspisanie.Post;

except

ShowMessage('Ошибка при записи в таблицу RASPISANIE!');

end;

end

else

begin

dmVokzal.dst_InRaspisanie.Cancel;

end;

finally

fmNewRaspis.Free;

fmNewRaspis := nil;

end;

dmVokzal.dst_InRaspisanie.Close;

dmVokzal.tr_Write.Commit;

dmVokzal.tr_Read.Commit;

dmVokzal.tr_vokzal.Commit;

dmVokzal.dst_raspisanie.Open;

dmVokzal.dstRaspis1.Open;

dmVokzal.tr_Write.Active:=true;

dmVokzal.tr_Read.Active:=true;

end;

procedure TfmRaspisaniePoezd.buChangClick(Sender: TObject);

var

Num: integer;

begin

Num := dmVokzal.dst_raspisanie.FieldValues['RASPISANIE_ID'];

dmVokzal.dst_raspisanie.Refresh;

dmVokzal.dst_InRaspisanie.ParamByName('ID').AsInteger := Num;

dmVokzal.dst_InRaspisanie.Open;

dmVokzal.dst_InRaspisanie.Edit;

try

fmNewRaspis := TfmNewRaspis.Create(Application);

if fmNewRaspis.ShowModal = mrOK then

dmVokzal.dst_InRaspisanie.Post

else

dmVokzal.dst_InRaspisanie.Cancel

finally

fmNewRaspis.Free;

fmNewRaspis := nil;

end;

dmVokzal.dst_InRaspisanie.Close;

dmVokzal.tr_Write.Commit;

dmVokzal.tr_Read.Commit;

dmVokzal.tr_vokzal.Commit;

dmVokzal.dst_raspisanie.Open;

dmVokzal.dstRaspis1.Open;

dmVokzal.tr_Write.Active:=true;

dmVokzal.tr_Read.Active:=true;

end;

procedure TfmRaspisaniePoezd.buDelClick(Sender: TObject);

var

Num: integer;

begin

if MessageDlg('Вы действительно хотите удалить запись?',

mtConfirmation, [mbYes, mbNo], 0) = mrYes then

begin

Num := dmVokzal.dst_raspisanie.FieldValues['RASPISANIE_ID'];

dmVokzal.dst_InRaspisanie.ParamByName('ID').AsInteger := Num;

dmVokzal.dst_InRaspisanie.Open;

dmVokzal.dst_InRaspisanie.Delete;

dmVokzal.dst_InRaspisanie.Close;

dmVokzal.tr_Write.Commit;

dmVokzal.tr_Read.Commit;

dmVokzal.dst_raspisanie.Open;

dmVokzal.tr_Write.Active:=true;

dmVokzal.tr_Read.Active:=true;

end;

end;

procedure TfmRaspisaniePoezd.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

if dmVokzal.dst_raspisanie.Active then dmVokzal.dst_raspisanie.Close;

Action := caFree;

fmRaspisaniePoezd := nil;

dmVokzal.tr_read.Commit;

end;

procedure TfmRaspisaniePoezd.buPriceClick(Sender: TObject);

begin

dmVokzal.dst_stoimost_proezda.Open;

dmVokzal.dst_stoimost_proezda.Insert;

try

fmStoimost := TfmStoimost.Create(Application);

if fmStoimost.ShowModal = mrOK then

dmVokzal.dst_stoimost_proezda.Post

else

dmVokzal.dst_stoimost_proezda.Cancel

finally

fmStoimost.Free;

fmStoimost := nil;

end;

dmVokzal.dst_stoimost_proezda.Close;

dmVokzal.tr_Write.Commit;

dmVokzal.tr_Write.Active:=true;

dmVokzal.tr_Read.Active:=true;

end;

procedure TfmRaspisaniePoezd.buPriceChangClick(Sender: TObject);

begin

dmVokzal.dst_stoimost_proezda.ParamByName('ID').AsInteger:=dmVokzal.dstRaspis1.FieldValues['RASPISANIE_ID'];

dmVokzal.dst_stoimost_proezda.Open;

dmVokzal.dst_stoimost_proezda.Edit;

try

fmStoimost := TfmStoimost.Create(Application);

if fmStoimost.ShowModal = mrOK then

dmVokzal.dst_stoimost_proezda.Post

else

dmVokzal.dst_stoimost_proezda.Cancel

finally

fmStoimost.Free;

fmStoimost := nil;

end;

dmVokzal.dst_stoimost_proezda.Close;

dmVokzal.tr_Write.Commit;

dmVokzal.tr_Write.Active:=true;

dmVokzal.tr_Read.Active:=true;

end;

end.

unit Form_Stancii_Unit;

interface

uses

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

Dialogs, ExtCtrls, Grids, DBGrids, StdCtrls;

type

TfmStancii = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

buAdd: TButton;

buChang: TButton;

buDel: TButton;

DBGrid1: TDBGrid;

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

procedure buAddClick(Sender: TObject);

procedure buChangClick(Sender: TObject);

procedure buDelClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmStancii: TfmStancii;

implementation

uses DM_Unit, Form_New_Stancii_Unit, Form_New_Poezda_Unit;

{$R *.dfm}

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

begin

if dmVokzal.dst_stancii.Active then dmVokzal.dst_stancii.Close;

Action := caFree;

fmStancii := nil;

dmVokzal.tr_vokzal.Commit;

end;

procedure TfmStancii.buAddClick(Sender: TObject);

begin

dmVokzal.dst_InStancii.Open;

dmVokzal.dst_InStancii.Insert;

try

fmNewStancii := TfmNewStancii .Create(Application);

if fmNewStancii .ShowModal = mrOK then

begin

try

dmVokzal.dst_InStancii.Post;

except

ShowMessage('Ошибка при записи в таблицу STANCII!');

end;

end

else

begin

dmVokzal.dst_InStancii.Cancel;

end;

finally

fmNewStancii.Free;

fmNewStancii := nil;

end;

dmVokzal.dst_InStancii.Close;

dmVokzal.tr_write.Commit;

dmVokzal.dst_stancii.Close;

dmVokzal.dst_stancii.Open;

dmVokzal.tr_write.Active:=true;

end;

procedure TfmStancii.buChangClick(Sender: TObject);

var

Num: integer;

begin

Num := dmVokzal.dst_stancii.FieldValues['STANCIA_ID'];

dmVokzal.dst_stancii.Refresh;

dmVokzal.dst_InStancii.ParamByName('ID').AsInteger := Num;

dmVokzal.dst_InStancii.Open;

dmVokzal.dst_InStancii.Edit;

try

fmNewStancii := TfmNewStancii.Create(Application);

if fmNewStancii.ShowModal = mrOK then

begin

dmVokzal.dst_InStancii.Post;

end

else

begin

dmVokzal.dst_InStancii.Cancel

end;

finally

fmNewStancii.Free;

fmNewStancii := nil;

end;

dmVokzal.dst_InStancii.Close;

dmVokzal.tr_Write.Commit;

dmVokzal.dst_stancii.Refresh;

dmVokzal.dst_stancii.Open;

dmVokzal.tr_Write.Active:=true;

dmVokzal.tr_Read.Active:=true;

end;

procedure TfmStancii.buDelClick(Sender: TObject);

var

Num: integer;

begin

if MessageDlg('Вы действительно хотите удалить запись?',

mtConfirmation, [mbYes, mbNo], 0) = mrYes then

begin

Num := dmVokzal.dst_stancii.FieldValues['STANCIA_ID'];

dmVokzal.dst_InStancii.ParamByName('ID').AsInteger := Num;

dmVokzal.dst_InStancii.Open;

dmVokzal.dst_InStancii.Delete;

dmVokzal.dst_InStancii.Close;

dmVokzal.tr_Write.Commit;

dmVokzal.tr_Read.Commit;

dmVokzal.dst_stancii.Open;

dmVokzal.tr_Write.Active:=true;

dmVokzal.tr_Read.Active:=true;

end;

end;

end.

unit Form_Zapros2_Unit;

interface

uses

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

Dialogs, Grids, DBGrids, ExtCtrls, ComCtrls, StdCtrls;

type

TfmZapros2 = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

DBGrid1: TDBGrid;

DBGrid2: TDBGrid;

DBGrid3: TDBGrid;

Time1: TDateTimePicker;

Time2: TDateTimePicker;

DBGrid4: TDBGrid;

DBGrid5: TDBGrid;

Edit1: TEdit;

procedure DBGrid1CellClick(Column: TColumn);

procedure DBGrid2CellClick(Column: TColumn);

procedure DBGrid4CellClick(Column: TColumn);

procedure Time1Change(Sender: TObject);

procedure Time2Change(Sender: TObject);

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

procedure Edit1Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmZapros2: TfmZapros2;

implementation

uses DM_Unit;

{$R *.dfm}

procedure TfmZapros2.DBGrid1CellClick(Column: TColumn);

begin

dmVokzal.QZapros2_Stancii.Close;

dmVokzal.QZapros2_Stancii.ParamByName('ID').AsInteger:=dmVokzal.dst_stancii_ElPoezda.FieldValues['STANCIA_ID'];

dmVokzal.QZapros2_Stancii.Open;

end;

procedure TfmZapros2.DBGrid2CellClick(Column: TColumn);

begin

dmVokzal.QZapros2_Stoimost.Close;

dmVokzal.QZapros2_Stoimost.ParamByName('ID').AsInteger:=dmVokzal.dst_stancii_ElPoezda.FieldValues['STANCIA_ID'];

dmVokzal.QZapros2_Stoimost.Open;

end;

procedure TfmZapros2.DBGrid4CellClick(Column: TColumn);

begin

dmVokzal.QZapros2_Promez.Close;

dmVokzal.QZapros2_Promez.ParamByName('TIME1').AsTime:=Time1.Time;

dmVokzal.QZapros2_Promez.ParamByName('TIME2').AsTime:=Time2.Time;

dmVokzal.QZapros2_Promez.ParamByName('STANCIA_ID').AsInteger:=dmVokzal.dst_stancii_Elpoezda.FieldValues['STANCIA_ID'];

dmVokzal.QZapros2_Promez.Open;

end;

procedure TfmZapros2.Time1Change(Sender: TObject);

begin

dmVokzal.QZapros2_Promez.Close;

dmVokzal.QZapros2_Promez.ParamByName('TIME1').AsTime:=Time1.Time;

dmVokzal.QZapros2_Promez.ParamByName('TIME2').AsTime:=Time2.Time;

dmVokzal.QZapros2_Promez.ParamByName('STANCIA_ID').AsInteger:=dmVokzal.dst_stancii_ElPoezda.FieldValues['STANCIA_ID'];

dmVokzal.QZapros2_Promez.Open;

end;

procedure TfmZapros2.Time2Change(Sender: TObject);

begin

dmVokzal.QZapros2_Promez.Close;

dmVokzal.QZapros2_Promez.ParamByName('TIME1').AsTime:=Time1.Time;

dmVokzal.QZapros2_Promez.ParamByName('TIME2').AsTime:=Time2.Time;

dmVokzal.QZapros2_Promez.ParamByName('STANCIA_ID').AsInteger:=dmVokzal.dst_stancii_ElPoezda.FieldValues['STANCIA_ID'];

dmVokzal.QZapros2_Promez.Open;

end;

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

begin

dmVokzal.QZapros2_Stancii.Close;

dmVokzal.QZapros2_Stoimost.Close;

dmVokzal.QZapros2_Promez.Close;

dmVokzal.dst_stancii_ElPoezda.Close;

dmVokzal.tr_read.Active:=true;

end;

procedure TfmZapros2.Edit1Change(Sender: TObject);

begin

if Edit1.Text='' then dmVokzal.dst_Stancii_ElPoezda.Filtered:=false

else begin

dmVokzal.dst_Stancii_ElPoezda.Filtered:=false;

dmVokzal.dst_Stancii_ElPoezda.Filtered:=true;

end;

end;

end.

unit Form_Zona_Unit;

interface

uses

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

Dialogs, DBCtrls, Grids, DBGrids, ExtCtrls;

type

TfmZona = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

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

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmZona: TfmZona;

implementation

uses DM_Unit;

{$R *.dfm}

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

begin

if dmVokzal.dst_zona.Active then dmVokzal.dst_zona.Close;

Action := caFree;

fmZona := nil;

dmVokzal.tr_vokzal.Commit;

end;

end.

unit Otchet1Unit;

interface

uses

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

Dialogs, QuickRpt, ExtCtrls, QRCtrls, DBCtrls, StdCtrls, DB,

IBCustomDataSet, IBTable;

type

TOtchet1 = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

QuickRep1: TQuickRep;

DBLookupComboBox1: TDBLookupComboBox;

Button1: TButton;

QRBand1: TQRBand;

QRGroup1: TQRGroup;

QRBand2: TQRBand;

DetailBand1: TQRBand;

QRDBText1: TQRDBText;

QRLabel1: TQRLabel;

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

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Otchet1: TOtchet1;

implementation

uses DM_Unit;

{$R *.dfm}

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

begin

dmVokzal.QOtchet1.Close;

dmVokzal.dst_stancii.Close;

end;

procedure TOtchet1.Button1Click(Sender: TObject);

begin

dmVokzal.QOtchet1.Close;

dmVokzal.QOtchet1.ParamByName('ID').AsInteger:=dmVokzal.dst_stancii.FieldValues['STANCIA_ID'];

dmVokzal.QOtchet1.Open;

QuickRep1.Preview;

end;

end.

unit SpravUnit3;

interface

uses

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

Dialogs, StdCtrls;

type

TfmSprav = class(TForm)

Memo1: TMemo;

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmSprav: TfmSprav;

implementation

{$R *.dfm}

end.

nit Zapros_Unit2;

interface

uses

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

Dialogs;

type

TForm2 = class(TForm)

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

{$R *.dfm}

end.

unit Unit1;

interface

uses

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

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

DBTables;

type

TfmZapros = class(TForm)

Panel1: TPanel;

DBGrid1: TDBGrid;

DBGrid2: TDBGrid;

DBGrid3: TDBGrid;

Panel2: TPanel;

DBGrid4: TDBGrid;

Time1: TDateTimePicker;

Time2: TDateTimePicker;

DBGrid5: TDBGrid;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Edit1: TEdit;

procedure DBGrid1CellClick(Column: TColumn);

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

procedure DBGrid2CellClick(Column: TColumn);

procedure DBGrid4CellClick(Column: TColumn);

procedure Time1Change(Sender: TObject);

procedure Time2Change(Sender: TObject);

procedure Edit1Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmZapros: TfmZapros;

implementation

uses DM_Unit;

{$R *.dfm}

procedure TfmZapros.DBGrid1CellClick(Column: TColumn);

begin

dmVokzal.QZapros_Stancii.Close;

dmVokzal.QZapros_Stancii.ParamByName('ID').AsInteger:=dmVokzal.dst_stancii.FieldValues['STANCIA_ID'];

dmVokzal.QZapros_Stancii.Open;

end;

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

begin

dmVokzal.QZapros_Stancii.Close;

dmVokzal.QZapros_Stoimost.Close;

dmVokzal.dst_stancii.Close;

dmVokzal.tr_read.Active:=true;

end;

procedure TfmZapros.DBGrid2CellClick(Column: TColumn);

begin

dmVokzal.QZapros_Stoimost.Close;

dmVokzal.QZapros_Stoimost.Open;

end;

procedure TfmZapros.DBGrid4CellClick(Column: TColumn);

begin

dmVokzal.QZapros_Promez.Close;

dmVokzal.QZapros_Promez.ParamByName('TIME1').AsTime:=Time1.Time;

dmVokzal.QZapros_Promez.ParamByName('TIME2').AsTime:=Time2.Time;

dmVokzal.QZapros_Promez.ParamByName('STANCIA_ID').AsInteger:=dmVokzal.dst_stancii.FieldValues['STANCIA_ID'];

dmVokzal.QZapros_Promez.Open;

end;

procedure TfmZapros.Time1Change(Sender: TObject);

begin

dmVokzal.QZapros_Promez.Close;

dmVokzal.QZapros_Promez.ParamByName('TIME1').AsTime:=Time1.Time;

dmVokzal.QZapros_Promez.ParamByName('TIME2').AsTime:=Time2.Time;

dmVokzal.QZapros_Promez.ParamByName('STANCIA_ID').AsInteger:=dmVokzal.dst_stancii.FieldValues['STANCIA_ID'];

dmVokzal.QZapros_Promez.Open;

end;

procedure TfmZapros.Time2Change(Sender: TObject);

begin

dmVokzal.QZapros_Promez.Close;

dmVokzal.QZapros_Promez.ParamByName('TIME1').AsTime:=Time1.Time;

dmVokzal.QZapros_Promez.ParamByName('TIME2').AsTime:=Time2.Time;

dmVokzal.QZapros_Promez.ParamByName('STANCIA_ID').AsInteger:=dmVokzal.dst_stancii.FieldValues['STANCIA_ID'];

dmVokzal.QZapros_Promez.Open;

end;

procedure TfmZapros.Edit1Change(Sender: TObject);

begin

if Edit1.Text='' then dmVokzal.dst_stancii.Filtered:=false

else begin

dmVokzal.dst_stancii.Filtered:=false;

dmVokzal.dst_stancii.Filtered:=true;

end;

end;

end.