⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addtrain.pas

📁 基于DELPHI的列车时刻查询系统设计与实现
💻 PAS
字号:
unit AddTrain;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  se_controls, KsSkinSpeedButtons, KsSkinToolBars, KsSkinEdits,
  KsSkinLabels, Mask, ksskinstdcontrol, KsSkinComboBoxs, StdCtrls, ComCtrls;

type
  TfrmAddTrain = class(TForm)
    SeSkinToolBar1: TSeSkinToolBar;
    btnAdd: TSeSkinSpeedButton;
    btnSave: TSeSkinSpeedButton;
    btnClose: TSeSkinSpeedButton;
    SeSkinLabel1: TSeSkinLabel;
    edtName: TSeSkinEdit;
    SeSkinLabel2: TSeSkinLabel;
    SeSkinLabel3: TSeSkinLabel;
    SeSkinLabel4: TSeSkinLabel;
    SeSkinLabel5: TSeSkinLabel;
    SeSkinLabel9: TSeSkinLabel;
    SeSkinLabel10: TSeSkinLabel;
    SeSkinLabel11: TSeSkinLabel;
    edtSumTime: TSeSkinEdit;
    cbxDepID: TSeSkinComboBox;
    cbxStartSiteID: TSeSkinComboBox;
    cbxEndSiteID: TSeSkinComboBox;
    btnRepain: TSeSkinSpeedButton;
    cbxStartSite: TComboBox;
    cbxDep: TComboBox;
    cbxEndSite: TComboBox;
    edtStartTime: TSeSkinMaskEdit;
    edtEndTime: TSeSkinMaskEdit;
    edtMilega: TSeSkinEdit;
    SeSkinLabel6: TSeSkinLabel;
    edtGeneralSeat: TSeSkinEdit;
    SeSkinLabel7: TSeSkinLabel;
    edtSoftSeat: TSeSkinEdit;
    SeSkinLabel8: TSeSkinLabel;
    edtGeneralBed: TSeSkinEdit;
    SeSkinLabel12: TSeSkinLabel;
    edtSoftBed: TSeSkinEdit;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnCloseClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btnRepainClick(Sender: TObject);
    procedure btnSaveClick(Sender: TObject);
    procedure cbxDepChange(Sender: TObject);
    procedure cbxEndSiteChange(Sender: TObject);
    procedure btnAddClick(Sender: TObject);
    procedure cbxStartSiteChange(Sender: TObject);
    procedure edtMilegaKeyPress(Sender: TObject; var Key: Char);
    procedure edtSumTimeKeyPress(Sender: TObject; var Key: Char);
  private
    procedure ClearAll;
    procedure GetAllList;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmAddTrain: TfrmAddTrain;

implementation

{$R *.DFM}

uses DataModule,Main,Comman;

procedure TfrmAddTrain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
  frmAddTrain := nil;
end;

procedure TfrmAddTrain.btnCloseClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmAddTrain.ClearAll;
begin
  edtName.Text := '';
  cbxEndSite.ItemIndex := -1;
  cbxStartSite.ItemIndex := -1;
  cbxDep.ItemIndex := -1;
  cbxEndSiteID.ItemIndex := -1;
  cbxStartSiteID.ItemIndex := -1;
  cbxDepID.ItemIndex := -1;
  edtStartTime.Text := '';
  edtEndTime.Text := '';
  edtMilega.Text := '';
  edtSumTime.Text := '';
  edtGeneralSeat.Text := '';
  edtSoftSeat.Text := '';
  edtGeneralBed.Text := '';
  edtSoftBed.Text := '';
end;


procedure TfrmAddTrain.FormCreate(Sender: TObject);
begin
  ClearAll;
  GetAllList;
end;

procedure TfrmAddTrain.GetAllList;
begin
  with DataModule1.qrySelect do
  begin
    if Active then Close ;
    Sql.Text := 'SELECT TypeID,Name from TypeBase';
    Open;
    while not eof do
    begin
      cbxDep.Items.Add(FieldbyName('Name').AsString);
      cbxDepID.Items.Add(FieldbyName('TypeID').AsString);
      next;
    end;
    First;
    Close;
    sql.Text := 'SELECT ID,Name from SiteBase where Stop = False';
    Open;
    while not eof do
    begin
      cbxStartSite.Items.Add(FieldbyName('Name').AsString);
      cbxStartSiteID.Items.Add(FieldbyName('ID').AsString);
      cbxEndSite.Items.Add(FieldbyName('Name').AsString);
      cbxEndSiteID.Items.Add(FieldbyName('ID').AsString);
      next;
    end;
    First;
    Close;
  end;
end;


procedure TfrmAddTrain.btnRepainClick(Sender: TObject);
begin
  ClearAll;
end;

procedure TfrmAddTrain.btnSaveClick(Sender: TObject);
var
  strName,strSex,strBirth,strAddress,strPhone,strNum:string;
  strDep,strClass,strPro,strEmail,strPost,strTrainID:string;
  strInsert,strSelect:string;
begin
  strInsert := '';
  strSelect := '';
  strName := edtName.Text ;
  if Trim(cbxDepID.Text) = '' then
  begin
    Comman.MBox('请选择列车类型。','警告','warning');
    Exit;
  end;
  strDep := cbxDepID.Text ;
  if Trim(cbxStartSiteID.Text) = '' then
  begin
    Comman.MBox('请选择始发站。','警告','warning');
    Exit;
  end;
  if Trim(cbxEndSiteID.Text) = '' then
  begin
    Comman.MBox('请选择终点站。','警告','warning');
    Exit;
  end;
  if Trim(edtMilega.Text) = '' then
  begin
    Comman.MBox('请选择里程。','警告','warning');
    Exit;
  end;
  if Trim(edtSumTime.Text) = '' then
  begin
    Comman.MBox('请选择共用时间。','警告','warning');
    Exit;
  end;
  {strSelect := 'SELECT ID FROM Student WHERE Num = ''' + Trim(strNum) + '''';
  with DataModule1.qrySelect do
  begin
    if Active then
    begin
      First;
      Close;
    end;
    Sql.Text :=  strSelect;
    open;
    if not FieldbyName('ID').isNull then
    begin
      Comman.MBox('数据库中有重复学号的学生。','警告','warning');
      edtNumber.SetFocus ;
      First;
      Close;
      Exit;
    end;
  end;
  if DataModule1.qrySelect.Active then
  begin
    DataModule1.qrySelect.First;
    DataModule1.qrySelect.Close;
  end; }
  strInsert := 'INSERT INTO TrainBase(TrainName,StartSiteID,EndSiteID,StartTime,EndTime,TypeID,Mileage,SumTime) Values(';
  strInsert := strInsert + '''' + edtName.Text + ''',';
  strInsert := strInsert + cbxStartSiteID.Text + ',';
  strInsert := strInsert + cbxEndSiteID.Text + ',';
  strInsert := strInsert + '''' + edtStartTime.Text + ''',';
  strInsert := strInsert + '''' + edtEndTime.Text + ''',';
  strInsert := strInsert + strDep + ',';
  strInsert := strInsert + edtMilega.Text + ',';
  strInsert := strInsert + edtSumTime.Text + ')';
  with DataModule1.qryExecsql do
  begin
    //if Active then Close;
    try
      Sql.Text :=  strInsert;
      Execsql;
      Sql.Text := 'SELECT TrainID from TrainBase WHERE TrainName = ''' + edtName.Text + '''';
      Open;
      if FieldbyName('TrainID').AsString <> '' then
      begin
        strTrainID := FieldbyName('TrainID').AsString;
        close;
        sql.Text := 'INSERT INTO TrainPrice(TrainID,GeneralSeat,SoftSeat,GeneralBed,SoftBed) values(' + strTrainID + ',' + edtGeneralSeat.Text + ',' + edtSoftSeat.Text + ',' + edtGeneralBed.Text + ',' + edtSoftBed.Text + ')' ;
        //inputbox('','',sql.text);
        Execsql;
      end;
    except on E: Exception do
      begin
        Comman.MBox(e.message,'警告','warning');
        Exit;
      end;
    end;
    Comman.MBox('成功插入数据。','系统消息','ok');
    Close;
  end;
end;

procedure TfrmAddTrain.cbxDepChange(Sender: TObject);
begin
  cbxDepID.ItemIndex := cbxDep.ItemIndex ;
end;

procedure TfrmAddTrain.cbxEndSiteChange(Sender: TObject);
begin
  cbxEndSiteID.ItemIndex := cbxEndSite.ItemIndex ;
end;

procedure TfrmAddTrain.btnAddClick(Sender: TObject);
begin
  ClearAll;
end;

procedure TfrmAddTrain.cbxStartSiteChange(Sender: TObject);
begin
  cbxStartSiteID.ItemIndex := cbxStartSite.ItemIndex ;
end;

procedure TfrmAddTrain.edtMilegaKeyPress(Sender: TObject; var Key: Char);
begin
  if not (((Ord(Key) >= 48) and (Ord(Key) <= 57)) or (Ord(Key) = 8) or (Ord(Key) = 46)) then
    Key := #0;
end;

procedure TfrmAddTrain.edtSumTimeKeyPress(Sender: TObject; var Key: Char);
begin
  if not (((Ord(Key) >= 48) and (Ord(Key) <= 57)) or (Ord(Key) = 8) or (Ord(Key) = 46)) then
    Key := #0;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -