- •Введение
- •1 Анализ предметной области
- •2.6 Порядок контроля и приемки
- •3 Функциональное проектирование системы автоматизированной системы «Расписание движение поездов»
- •3.1 Общие сведения case-средства bpWin
- •3.2 Описание функциональной модели
- •4 Проектирование базы данных автоматизированной системы «Расписание движение поездов»
- •4.1 Описание case-средства erWin
- •4.2 Логическое проектирование базы данных системы
- •4.3 Разработка структуры связей
- •4.4 Нормализация отношений базы данных
- •5 Обоснование выбора средств разработки
- •6 Описание программы
- •6.1 Общие сведения
- •6.2 Функциональное назначение
- •6.3 Описание логической структуры
- •6.4 Используемые технические средства
- •6.5 Вызов и загрузка
- •6.6 Входные данные
- •7.4 Требования к программной документации
- •7.5 Средства и порядок испытаний
- •7.6 Методы испытаний
- •8.4 Входные и выходные данные
- •Заключение
- •Список использованных источников
- •Функциональная модель Приложение а
- •Модель структуры базы данных системы Приложение б
- •Текст программы Приложение в
- •Результаты испытаний Приложение г
- •Приложение д
8.4 Входные и выходные данные
Входные данные системы:
а) по категориям поезда – код категории, название;
б) по поездам – номер поезда, название, состав, периодичность;
в) по категориям вагона – код категории, название, стоимость постельного белья;
г) по вагонам – номер вагона, количество мест;
д) по электропоездам – номер, название;
е) по зонам – номер зоны, название;
ж) по станциям – код станции, название;
з) по расписанию – код расписания, название поезда или электропоезда, название станции, время отправления, время прибытия, время в пути.
Выходными данными должны быть ответы на запросы и следующие отчеты:
а) со списком поездов до станции назначения;
б) о времени отправления и прибытия, длительности пути и периодичности поездов;
в) о стоимости проезда.
Заключение
В данной работе была разработана автоматизированная система «Расписание движения поездов».
Реализация системы проводилась в среде программирования Delphi 7.0, база данных реализована средствами утилиты IBExpert, СУБД Firebird 2.0.
При написании программы основное внимание было уделено удобству работы пользователя с программой и построению дружественного интерфейса.
Результаты тестирования показали, что программа работает верно во всех предполагаемых ситуациях.
Список использованных источников
Вендров А.М Проектирование программного обеспечения экономических информационных систем. – М.: Финансы и статистика, 2003. – 352с.
www.interface.ru;
www.wikipedia.ru;
www.ms.by.ru;
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.