Дипломная работа: Автоматизация продажи железнодорожных билетов ООО «Four cardinal points Train»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
126
end;
end;
end;
if CancelConnect then
Application.Terminate;
end;
procedure TfmConnect.BitBtn1Click(Sender: TObject);
//Запись в ini-файл имени сервера:
procedure SaveToFile;
var
IniFile: TIniFile;
APchar: array[0..254] of Char;
f: File;
begin
GetWindowsDirectory(APchar, 255);
if not FileExists(string(APchar)+'\Station.ini') then
begin
//Создание файла, если он не существует:
AssignFile(f, string(APchar)+'\Station.ini');
Rewrite(f);
CloseFile(f);
end;
IniFile := TIniFile.Create(string(APchar)+'\Station.ini');
try
IniFile.WriteString('Base', 'ServerName', ServerName);
IniFile.WriteBool('Base', 'PersistSec', PersistSec);
if PersistSec then
begin
IniFile.WriteString('Base', 'UserID', UserID);
IniFile.WriteString('Base', 'Password', Password);
end;
finally
IniFile.Free;
end;
end;
begin
ServerName := edServer.Text;
PersistSec := RadioButton2.Checked;
UserID := edUser.Text;
Password := edPass.Text;
SaveToFile;
Close;
end;
procedure TfmConnect.BitBtn2Click(Sender: TObject);
begin
CancelConnect := True;
end;
end.
Листинг модуля uTrainSearch.pas
unit uTrainSearch;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
127
Dialogs, StdCtrls, Grids, DBGrids, Buttons, ComCtrls;
type
TfmTrainSearch = class(TForm)
DBGrid1: TDBGrid;
edSearch: TEdit;
Label4: TLabel;
Label1: TLabel;
bbtStationFrom: TBitBtn;
bbtStationTo: TBitBtn;
edStationFrom: TEdit;
edStationTo: TEdit;
MonthCalendar1: TMonthCalendar;
MonthCalendar2: TMonthCalendar;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
bbtSearch: TBitBtn;
Label6: TLabel;
DBGrid2: TDBGrid;
bbtTrainInfo: TBitBtn;
bbtTicketCell: TBitBtn;
bbtTicketPres: TBitBtn;
BitBtn2: TBitBtn;
procedure bbtStationFromClick(Sender: TObject);
procedure bbtStationToClick(Sender: TObject);
procedure bbtSearchClick(Sender: TObject);
procedure edSearchChange(Sender: TObject);
procedure bbtTrainInfoClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure bbtTicketCellClick(Sender: TObject);
procedure bbtTicketPresClick(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmTrainSearch: TfmTrainSearch;
implementation
uses uDM, DB, uInfoStockAndPath, uTicketCell, uTicketPres;
var Station1, Station2: Integer;
{$R *.dfm}
//Фиксируем станцию отправления:
procedure TfmTrainSearch.bbtStationFromClick(Sender: TObject);
begin
DM.qrTrainSearch.Parameters.ParamByName('pStation1').Value :=
DM.qrStation.FieldByName('ID').AsInteger;
edStationFrom.Text :=
DM.qrStation.FieldByName('НазваниеСтанции').AsString;
Station1 := DM.qrStation.FieldByName('ID').AsInteger;
end;
//Фиксируем станцию прибытия:
procedure TfmTrainSearch.bbtStationToClick(Sender: TObject);
begin
DM.qrTrainSearch.Parameters.ParamByName('pStation2').Value :=
DM.qrStation.FieldByName('ID').AsInteger;
128
edStationTo.Text := DM.qrStation.FieldByName('НазваниеСтанции').AsString;
Station2 := DM.qrStation.FieldByName('ID').AsInteger;
end;
//Поиск рейсов на заданный диапазон дат и для заданных станций отправления и
прибытия:
procedure TfmTrainSearch.bbtSearchClick(Sender: TObject);
begin
DM.qrTrainSearch.Close;
DM.qrTrainSearch.Parameters.ParamByName('pDate1').Value :=
MonthCalendar1.Date;
DM.qrTrainSearch.Parameters.ParamByName('pDate2').Value :=
MonthCalendar2.Date;
DM.qrTrainSearch.Open;
end;
//Поиск станции по частичному совпадению названия:
procedure TfmTrainSearch.edSearchChange(Sender: TObject);
begin
DM.qrStation.Locate('НазваниеСтанции', edSearch.Text, [loPartialKey,
loCaseInsensitive])
end;
//Вывод на экран формы "Состав и путь следования поезда" и поиск на этой
форме
//информации о выбранном поезде:
procedure TfmTrainSearch.bbtTrainInfoClick(Sender: TObject);
begin
if DM.qrTrainSearch.Active then
if DM.qrTrainSearch.RecordCount<>0 then begin
fmInfoStockAndPath.dblcbN.KeyValue :=
DM.qrTrainSearch.FieldByName('NПоезда').Value;
fmInfoStockAndPath.dblcbNClick(Self);
fmInfoStockAndPath.ShowModal;
end;
end;
procedure TfmTrainSearch.FormShow(Sender: TObject);
begin
edStationFrom.Clear;
edStationTo.Clear;
MonthCalendar1.Date := Now;
MonthCalendar2.Date := Now;
DM.qrTrainSearch.Close;
end;
//Вывод на экран формы продажи билета и поиск на этой форме
//выбранного поезда, станции, даты:
procedure TfmTrainSearch.bbtTicketCellClick(Sender: TObject);
begin
if DM.qrTrainSearch.Active then
if DM.qrTrainSearch.RecordCount<>0 then begin
fmTicketSell.dblcbN.KeyValue :=
DM.qrTrainSearch.FieldByName('NПоезда').Value;
fmTicketSell.dblcbStationFrom.KeyValue := Station1;
fmTicketSell.dblcbStationTo.KeyValue := Station2;
fmTicketSell.dblcbDateFrom.KeyValue := MonthCalendar1.Date;
DM.qrTimetable.Locate('Дата',
DM.qrTrainSearch.FieldbyName('Дата').AsString, []);
fmTicketSell.dblcbDateFrom.KeyValue :=
DM.qrTimetable.FieldbyName('ID').Value;
fmTicketSell.dblcbNClick(Self);
129
fmTicketSell.ShowModal;
end;
end;
//Вывод на экран формы информации о билетах в наличии и поиск на этой форме
//выбранного поезда, станции, даты:
procedure TfmTrainSearch.bbtTicketPresClick(Sender: TObject);
begin
if DM.qrTrainSearch.Active then
if DM.qrTrainSearch.RecordCount<>0 then begin
fmTicketPres.dblcbN.KeyValue :=
DM.qrTrainSearch.FieldByName('NПоезда').Value;
fmTicketPres.dblcbStationFrom.KeyValue := Station1;
DM.qrTimetable.Locate('Дата',
DM.qrTrainSearch.FieldbyName('Дата').AsString, []);
fmTicketPres.dblcbDateFrom.KeyValue :=
DM.qrTimetable.FieldbyName('ID').Value;
fmTicketPres.dblcbNClick(Self);
fmTicketPres.ShowModal;
end;
end;
procedure TfmTrainSearch.BitBtn2Click(Sender: TObject);
begin
Close;
end;
end.
Листинг модуля uTrainSearch.pas
unit uTrainSearch;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, Buttons, ComCtrls;
type
TfmTrainSearch = class(TForm)
DBGrid1: TDBGrid;
edSearch: TEdit;
Label4: TLabel;
Label1: TLabel;
bbtStationFrom: TBitBtn;
bbtStationTo: TBitBtn;
edStationFrom: TEdit;
edStationTo: TEdit;
MonthCalendar1: TMonthCalendar;
MonthCalendar2: TMonthCalendar;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
bbtSearch: TBitBtn;
Label6: TLabel;
DBGrid2: TDBGrid;
bbtTrainInfo: TBitBtn;
bbtTicketCell: TBitBtn;
bbtTicketPres: TBitBtn;
BitBtn2: TBitBtn;
procedure bbtStationFromClick(Sender: TObject);
procedure bbtStationToClick(Sender: TObject);
130
procedure bbtSearchClick(Sender: TObject);
procedure edSearchChange(Sender: TObject);
procedure bbtTrainInfoClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure bbtTicketCellClick(Sender: TObject);
procedure bbtTicketPresClick(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmTrainSearch: TfmTrainSearch;
implementation
uses uDM, DB, uInfoStockAndPath, uTicketCell, uTicketPres;
var Station1, Station2: Integer;
{$R *.dfm}
//Фиксируем станцию отправления:
procedure TfmTrainSearch.bbtStationFromClick(Sender: TObject);
begin
DM.qrTrainSearch.Parameters.ParamByName('pStation1').Value :=
DM.qrStation.FieldByName('ID').AsInteger;
edStationFrom.Text :=
DM.qrStation.FieldByName('НазваниеСтанции').AsString;
Station1 := DM.qrStation.FieldByName('ID').AsInteger;
end;
//Фиксируем станцию прибытия:
procedure TfmTrainSearch.bbtStationToClick(Sender: TObject);
begin
DM.qrTrainSearch.Parameters.ParamByName('pStation2').Value :=
DM.qrStation.FieldByName('ID').AsInteger;
edStationTo.Text := DM.qrStation.FieldByName('НазваниеСтанции').AsString;
Station2 := DM.qrStation.FieldByName('ID').AsInteger;
end;
//Поиск рейсов на заданный диапазон дат и для заданных станций отправления и
прибытия:
procedure TfmTrainSearch.bbtSearchClick(Sender: TObject);
begin
DM.qrTrainSearch.Close;
DM.qrTrainSearch.Parameters.ParamByName('pDate1').Value :=
MonthCalendar1.Date;
DM.qrTrainSearch.Parameters.ParamByName('pDate2').Value :=
MonthCalendar2.Date;
DM.qrTrainSearch.Open;
end;
//Поиск станции по частичному совпадению названия:
procedure TfmTrainSearch.edSearchChange(Sender: TObject);
begin
DM.qrStation.Locate('НазваниеСтанции', edSearch.Text, [loPartialKey,
loCaseInsensitive])
end;
//Вывод на экран формы "Состав и путь следования поезда" и поиск на этой
форме
//информации о выбранном поезде:
Источник: https://baza.diplomsite.ru/previewfile/567