📄 unit_frmsaleticket.pas
字号:
hallid:=integer(Combohall.Items.Objects[i]);
sqlstr:='select * from tblfeatureplan_view where plandate='+
#39+datetostr(dtpplandate.Date)+#39+' and hallid='+inttostr(hallid)+
' and status=''1''';
Refreshlistviewplan(sqlstr);
listview1.Visible :=true;
listview1.SetFocus ;
if listview1.Items.Count >0 then listview1.Selected :=listview1.Items[0];
end;
procedure Tfrmsaleticket.EdtfieldKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if key=13 then EdtfieldButtonClick(nil);
end;
procedure Tfrmsaleticket.ListView1DblClick(Sender: TObject);
begin
inherited;
ListView1Click(nil);
end;
procedure Tfrmsaleticket.ListView1KeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if key=#13 then ListView1Click(nil);
end;
procedure Tfrmsaleticket.CombotickettypeEnter(Sender: TObject);
begin
inherited;
Refreshcombotickettype(seattype);
end;
procedure Tfrmsaleticket.Refreshstatus(_plid: integer);
var
sqlstr,_status:string ;
i,j,_gridrow,_gridcol:integer;
begin
sqlstr:='select gridrow,gridcol,status from tblplanseat_view where plid='+inttostr(_plid)+' order by gridrow,gridcol ';
if publicinfo.Execsql(sqlstr,false) then
begin
with adodm.ADOQRY do
begin
if recordcount<=0 then exit;
first;
for i:=1 to recordcount do
begin
_gridrow:=fieldbyname('gridrow').AsInteger ;
_gridcol:=fieldbyname('gridcol').AsInteger ;
j:=seatlist.IndexOf_Seat(_gridrow,_gridcol);
if j<0 then continue;
_status:=fieldbyname('status').AsString ;
PSeatNode(seatlist.Items[j]).status :=_status;
next;
end;
end;
end;
sqlstr:='select sumcount,alreadysell,reservecount,freecount from tblfeatureplan_view where id='+inttostr(_plid);
if publicinfo.Execsql(sqlstr,false) then
begin
with adodm.ADOQRY do
begin
if recordcount<=0 then exit;
first;
edtsum.Text :=fieldbyname('sumcount').AsString;
edtalreadysell.Text :=fieldbyname('alreadysell').AsString ;
edtbook.Text :=fieldbyname('reservecount').AsString ;
edtfree.Text :=fieldbyname('freecount').AsString ;
end;
end;
end;
procedure Tfrmsaleticket.BtnSellClick(Sender: TObject);
var
i:integer;
item0:TListItem;
_price:single;
begin
inherited;
Selled:=false;
if listview2.Items.Count<=0 then exit;
try
adodm.ADOCN.BeginTrans ;
for i:=0 to listview2.Items.Count-1 do
begin
item0:=listview2.Items[i];
_price:=round((PTicketNode(item0.Data)^.price*Edtrebate.Value)/100);
Edtmoney.Value :=Edtmoney.Value +_price;
with Adodm.ADOProc do
begin
Close;
ProcedureName := 'My_sell_ticket';
Parameters.Refresh;
Parameters.Items[1].Value :=plid;
Parameters.Items[2].Value :=PTicketNode(item0.Data)^.rownum;
Parameters.Items[3].Value :=PTicketNode(item0.Data)^.colnum;
Parameters.Items[4].Value :=PTicketNode(item0.Data)^.seattype;
Parameters.Items[5].Value :=PTicketNode(item0.Data)^.tickettype;
Parameters.Items[6].Value :=_price;
Parameters.Items[7].Value :=publicinfo.OperID;
Parameters.Items[8].Value :='';
Parameters.Items[9].Value :='';
Parameters.Items[10].Value :='';
Parameters.Items[11].Value :='0';
Parameters.Items[12].Value :=0;
Parameters.Items[13].Value :=0;
Parameters.Items[14].Value :=Edtrebate.Value;
Parameters.Items[15].Value :=-1;
ExecProc;
if Parameters.ParamByName('@retcode').Value <>1 then
begin
adodm.ADOCN.RollbackTrans;
publicinfo.showmsg('你所选的票已经售出或被预订,请重新选择!');
listview2.Clear ;
Clear;
exit;
end;
end;
end;
adodm.ADOCN.CommitTrans ;
Selled:=True;
Edtticketcount.Text :=inttostr(listview2.Items.Count);
Edtmoney1.Value :=Edtmoney.Value ;
edtmoney1.SetFocus ;
except
on e:exception do publicinfo.showmsg(e.Message);
end;
end;
Function Tfrmsaleticket.ItemExist(_row, _col: integer):Boolean;
var
item0:TListItem;
i:integer;
begin
result:=false;
for i:=0 to listview2.Items.Count-1 do
begin
item0:=listview2.Items[i];
if (PTicketNode(item0.Data)^.rownum=_row)
and (PTicketNode(item0.Data)^.colnum=_col) then
begin
result:=true;
exit;
end;
end;
end;
procedure Tfrmsaleticket.BtngiveupClick(Sender: TObject);
var
i:integer;
item0:TListItem;
begin
inherited;
if listview2.Items.Count<=0 then exit;
if not selled then
begin
listview2.Clear ;
exit;
end;
try
adodm.ADOCN.BeginTrans ;
for i:=0 to listview2.Items.Count-1 do
begin
item0:=listview2.Items[i];
with Adodm.ADOProc do
begin
Close;
ProcedureName := 'My_Del_ticket';
Parameters.Refresh;
Parameters.Items[1].Value :=plid;
Parameters.Items[2].Value :=PTicketNode(item0.Data)^.rownum;
Parameters.Items[3].Value :=PTicketNode(item0.Data)^.colnum;
Parameters.Items[4].Value :=PTicketNode(item0.Data)^.seattype;
Parameters.Items[5].Value :=PTicketNode(item0.Data)^.tickettype;
Parameters.Items[6].Value :=PTicketNode(item0.Data)^.price;
Parameters.Items[7].Value :=publicinfo.OperID;
Parameters.Items[8].Value :=-1;
ExecProc;
if Parameters.ParamByName('@retcode').Value <>1 then
begin
adodm.ADOCN.RollbackTrans;
exit;
end;
end;
end;
adodm.ADOCN.CommitTrans ;
publicinfo.showmsg('成功放弃你所选的所有影票!');
listview2.Items.Clear ;
Edtmoney1.Text :='';
Edtmoney.Text :='';
Edtticketcount.Text :='';
EdtGivechange.Text :='';
finally
selled:=false;
end;
end;
procedure Tfrmsaleticket.Edtmoney1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if key=13 then
begin
EdtGivechange.Value :=Edtmoney1.Value-Edtmoney.Value;
listview2.Items.Clear ;
Clear;
BtnSell.SetFocus ;
selled:=false;
end;
end;
procedure Tfrmsaleticket.EdtfieldDblClick(Sender: TObject);
begin
inherited;
EdtfieldButtonClick(nil);
end;
procedure Tfrmsaleticket.Clear;
begin
edtmoney1.Text :='';
edtmoney.Text :='';
edtticketcount.Text :='';
EdtGivechange.Text :='';
end;
procedure Tfrmsaleticket.MenuQuitClick(Sender: TObject);
var
txt:string;
i:integer;
prt:PSeatNode;
_scale:single;
begin
inherited;
_scale:=0;
i:=seatlist.IndexOf_row_col(currow,curcol);
if i<0 then exit;
prt:=seatlist.Items[i];
if prt^.status<>'1' then exit;
txt:=inttostr(currow)+' 排'+inttostr(curcol)+' 号'+'座位';
if application.MessageBox(pchar(txt+'的影票确定要退吗?'),'退票',MB_YESNO)=7 then exit;
if publicinfo.Execsql('select paramvalue from tblsysparam where paramid=1',false) then
begin
if adodm.ADOQRY.RecordCount >0 then
begin
adodm.ADOQRY.first;
_scale:=adodm.ADOQRY.fieldbyname('paramvalue').AsFloat/100;
end;
end;
with Adodm.ADOProc do
begin
Close;
ProcedureName := 'My_quit_ticket';
Parameters.Refresh;
Parameters.Items[1].Value :=plid;
Parameters.Items[2].Value :=currow;
Parameters.Items[3].Value :=curcol;
Parameters.Items[4].Value :=_scale;
Parameters.Items[5].Value :=publicinfo.OperID;
Parameters.Items[6].Value :=-1;
ExecProc;
if Parameters.ParamByName('@retcode').Value =1 then
publicinfo.showmsg(txt+'影票退票成功')
else
publicinfo.showmsg(txt+'影票退票失败');
end;
end;
procedure Tfrmsaleticket.MenuBookTicketClick(Sender: TObject);
var
i:integer;
item0:TListItem;
begin
inherited;
if listview2.Items.Count<=0 then exit;
frmkhinfo:=Tfrmkhinfo.create(Application);
try
frmkhinfo.plid:=plid;
if frmkhinfo.showmodal=mrok then
begin
adodm.ADOCN.BeginTrans ;
for i:=0 to listview2.Items.Count-1 do
begin
item0:=listview2.Items[i];
with Adodm.ADOProc do
begin
Close;
ProcedureName := 'My_sell_ticket';
Parameters.Refresh;
Parameters.Items[1].Value :=plid;
Parameters.Items[2].Value :=PTicketNode(item0.Data)^.rownum;
Parameters.Items[3].Value :=PTicketNode(item0.Data)^.colnum;
Parameters.Items[4].Value :=PTicketNode(item0.Data)^.seattype;
Parameters.Items[5].Value :=PTicketNode(item0.Data)^.tickettype;
Parameters.Items[6].Value :=round((PTicketNode(item0.Data)^.price*Edtrebate.Value)/100);
Parameters.Items[7].Value :=publicinfo.OperID;
Parameters.Items[8].Value :=frmkhinfo.name ;
Parameters.Items[9].Value :=frmkhinfo.phone ;
Parameters.Items[10].Value :=frmkhinfo.No ;
Parameters.Items[11].Value :='3';
Parameters.Items[12].Value :=publicinfo.OperID;
Parameters.Items[13].Value :=0;
Parameters.Items[14].Value :=Edtrebate.Value;
Parameters.Items[15].Value :=-1;
ExecProc;
if Parameters.ParamByName('@retcode').Value <>1 then
begin
adodm.ADOCN.RollbackTrans;
publicinfo.showmsg('你所选的票已经被售出获被预订,不能预订!');
listview2.Clear ;
exit;
end;
end;
end;
adodm.ADOCN.CommitTrans ;
listview2.Items.Clear ;
Application.MessageBox(pchar('成功预订影票,'+'请记住你的取票号为:'+frmkhinfo.No),'预订影票',mb_ok);
end;
finally
frmkhinfo.free;
end;
end;
procedure Tfrmsaleticket.MenuSellBookticketClick(Sender: TObject);
begin
inherited;
frmsellBookTicket:=TfrmsellBookTicket.Create(Application);
try
frmsellBookTicket.Plid :=plid;
frmsellBookTicket.ShowModal ;
finally
frmsellBookTicket.Free ;
end;
end;
procedure Tfrmsaleticket.BitBtn4Click(Sender: TObject);
begin
inherited;
close;
end;
procedure Tfrmsaleticket.BitBtn3Click(Sender: TObject);
begin
inherited;
MenuQuitClick(nil);
end;
procedure Tfrmsaleticket.BitBtn2Click(Sender: TObject);
begin
inherited;
MenuSellBookticketClick(nil);
end;
procedure Tfrmsaleticket.BitBtn1Click(Sender: TObject);
begin
inherited;
MenuBookTicketClick(nil);
end;
procedure Tfrmsaleticket.SelledColorClick(Sender: TObject);
begin
inherited;
if ColorDialog1.Execute then
selledcolor.Color :=ColorDialog1.Color ;
end;
procedure Tfrmsaleticket.BookcolorClick(Sender: TObject);
begin
inherited;
if ColorDialog1.Execute then
Bookcolor.Color :=ColorDialog1.Color ;
end;
procedure Tfrmsaleticket.CheckcolorClick(Sender: TObject);
begin
inherited;
if ColorDialog1.Execute then
Checkcolor.Color :=ColorDialog1.Color ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -