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

📄 buyticket.~pas

📁 该程序不能实现全程售票
💻 ~PAS
字号:
unit BuyTicket;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TBuyTicketFrm = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    Edit3: TEdit;
    Edit4: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Edit5: TEdit;
    Timer1: TTimer;
    Label6: TLabel;
    Edit6: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Timer1Timer(Sender: TObject);
    procedure Edit6KeyPress(Sender: TObject; var Key: Char);
     private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  BuyTicketFrm: TBuyTicketFrm;
   opel,midd:string;
implementation

uses Login;

{$R *.dfm}
procedure TBuyTicketFrm.Timer1Timer(Sender: TObject);
begin
opel:=datetostr(date());
midd:=timetostr(now);
opel:=opel+midd;
end;
procedure TBuyTicketFrm.Button1Click(Sender: TObject);
var maxn,day,s,d,id,room,seat:string;
begin
     with LoginFrm.ADOQuery1 do
     begin
    close;
    sql.clear;
    sql.Add('select * from 售票员 where sailorid=');
   sql.Add(''''+LoginFrm.Edit1.Text+'''');
   open;
   first;
   if recordcount=0 then
   showmessage('您没有权限售票!')
    else
    if edit1.text='' then
       showmessage('请输入身份证号码!')
    else
       if edit2.text='' then
          showmessage('请确认身份证号码')
    else
       if edit3.text='' then
          showmessage('请输入车次名称!')
       else
           if edit4.text='' then
              showmessage('请输入起点!')
       else
           if edit5.text='' then
              showmessage('请输入终点!')
       else
       if edit6.text='' then
              showmessage('请输入时间(月-日)!')
       else
       if edit1.text<>edit2.Text then
              showmessage('两次身份证号码不一致,重新输入!')
       else
        begin
         close;
         sql.clear;
         sql.add('select * from 车次 where trainnum='+''''+edit3.text+''''+'and traindate='+''''+Edit6.Text+'''');
         open;
         first;
         if recordcount=0 then
           begin
            showmessage('对不起,不存在此趟列车!请重新选择车次号!');
            edit1.Text:='';
            edit2.text:='';
            edit3.text:='';
            edit4.text:='';
            edit5.text:='';
               end
        else
        if strtodate(edit6.Text)<date()then
        showmessage('您不能购买此车票,该趟列车已过期')
        else
        begin
          close;
       sql.clear;
       sql.Add('select *  from 车次 as s1, 车次 as s2 where s1.passnum<s2.passnum and s1.trainnum=s2.trainnum and s1.passed='+''''+Edit4.Text+''''+'and s2.passed='+''''+Edit5.Text+''''+'and s1.traindate='+''''+Edit6.Text+''''+'and s2.traindate='+''''+Edit6.Text+'''');
       open;
       first;
         if recordcount=0 then
          begin
          showmessage('对不起,没有符合条件的查询结果!请重新查询!');
          edit1.setfocus;
          edit1.Text:='';
          edit2.Text:='';
          edit3.Text:='';
          edit4.Text:='';
          edit5.Text:='';
          end
            else
            begin
               close;
              sql.clear;
              sql.add('select * from 车次 where trainnum='+''''+edit3.text+''''+'and traindate='+''''+Edit6.Text+'''');
              open;
              first;
              maxn:=fieldbyname('maxnum').asstring;
              maxn:=floattostr(strtofloat(maxn)-1);
              if strtofloat(maxn)<0 then
              showmessage('该趟列车车票已售完')
              else
               begin
              room:=floattostr((strtoint(maxn)+1 )div 130);
              seat:=floattostr((strtoint(maxn)+1 )mod 130);
              room:=room+'车厢'+seat+'座';
              showmessage(room);
            close;
            sql.clear;
            sql.add('select * from 车次 where trainnum='+''''+edit3.text+''''+'and passed='+''''+Edit4.Text+''''+'and traindate='+''''+Edit6.Text+'''');
            open;
            first;
            s:=fieldbyname('price').asstring;
            close;
            close;
            sql.clear;
            sql.add('select * from 车票 ');
            open;
            first;
            id:=floattostr(recordcount+1);
            close;
            sql.clear;
            sql.add('select * from 车次 where trainnum='+''''+edit3.text+''''+'and passed='+''''+Edit5.Text+''''+'and traindate='+''''+Edit6.Text+'''');
            open;
            first;
            d:=fieldbyname('price').asstring;
            d:=floattostr(strtofloat(d)-strtofloat(s));
            close;
            sql.clear;
            sql.add('insert into 车票 (dest,seatnum,arrivetime,ticketid,source,price,sailorid,date) values('+''''+Edit5.text+''''+','+''''+room+''''+','+''''+day+''''+','+''''+id+''''+','+''''+edit4.text+''''+','+''''+d+''''+','+''''+LoginFrm.Edit1.text+''''+','+''''+edit6.Text+''''+')');
            execsql;
            close;
            room:=d+'元';
            showmessage(room);
            sql.clear;
            sql.Add('update 车次 set maxnum='+''''+maxn+''''+' where trainnum='+''''+edit3.text+''''+'and traindate='+''''+Edit6.Text+'''');
            execsql;
            close;
            sql.clear;
            sql.add('insert into 乘客 (buytime,passengerid,source,ticketid,dest,trainnum,time) values('+''''+opel+''''+','+''''+edit1.text+''''+','+''''+edit4.text+''''+','+''''+id+''''+','+''''+edit5.text+''''+','+''''+edit3.text+''''+','+''''+edit6.Text+''''+')');
            execsql;
            showmessage('购票成功!');
            edit1.Text:='';
            edit2.text:='';
            edit3.text:='';
            edit4.text:='';
            edit5.text:='';
               end;
            end;
         end;
       end;
       end;
 end;
procedure TBuyTicketFrm.Button2Click(Sender: TObject);
begin
edit1.Text:='';
edit2.text:='';
edit3.text:='';
edit4.text:='';
edit5.text:='';
BuyTicketFrm.Hide;
end;

procedure TBuyTicketFrm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9','X']) then
   begin
    showmessage('请输入正确身份证号码');
    key:=#0;
   end
end;

procedure TBuyTicketFrm.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9','x']) then
   begin
    showmessage('请输入正确身份证号码');
    key:=#0;
   end
end;


procedure TBuyTicketFrm.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9','-']) then
   begin
    showmessage('请输入正确的格式,如6-16');
    key:=#0;
   end
end;
end.


⌨️ 快捷键说明

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