📄 unit_frmsaleticket.pas
字号:
unit Unit_frmsaleticket;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Unit_frmtemplate, ExtCtrls, ComCtrls, StdCtrls, Mask, CyberEdit,
CyberPanel, Buttons, ToolWin, Grids,unit_public, CyberXPMenu,QT,
CyberButton, Menus;
type
Tfrmsaleticket = class(Tfrmtemplate)
CyberSizePanel1: TPanel;
Label1: TLabel;
DTPplandate: TDateTimePicker;
Label2: TLabel;
Combocinema: TComboBox;
Label3: TLabel;
Combohall: TComboBox;
Panel4: TPanel;
panelcolor: TPanel;
SelledColor: TStaticText;
Bookcolor: TStaticText;
DrawGrid1: TDrawGrid;
Timer1: TTimer;
ListView2: TListView;
Label8: TLabel;
Edtticketcount: TCyberEdit;
Label11: TLabel;
Edtmoney1: TCyberEdit;
EdtGivechange: TCyberEdit;
Label12: TLabel;
Edtmoney: TCyberEdit;
Label10: TLabel;
Label4: TLabel;
Edtfield: TCyberButtonEdit;
Label6: TLabel;
Combotickettype: TComboBox;
BtnSell: TBitBtn;
Btngiveup: TBitBtn;
Label5: TLabel;
Label7: TLabel;
Label9: TLabel;
MenuOther: TPopupMenu;
MenuBookTicket: TMenuItem;
MenuSellBookticket: TMenuItem;
MenuQuit: TMenuItem;
CyberXPMenu1: TCyberXPMenu;
N4: TMenuItem;
Lblfilm: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
Label13: TLabel;
Edtseat: TCyberEdit;
Label14: TLabel;
Edtalreadysell: TCyberEdit;
Label15: TLabel;
EdtBook: TCyberEdit;
Label16: TLabel;
Label17: TLabel;
Edtfree: TCyberEdit;
EdtSum: TCyberEdit;
Label18: TLabel;
Edtrebate: TCyberEdit;
Label19: TLabel;
ColorDialog1: TColorDialog;
Checkcolor: TStaticText;
ListView1: TListView;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
procedure DTPplandateChange(Sender: TObject);
procedure CombocinemaChange(Sender: TObject);
procedure CombohallChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ListView1Click(Sender: TObject);
procedure DrawGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure DrawGrid1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure DrawGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Timer1Timer(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DrawGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure ListView2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ToolButton3Click(Sender: TObject);
procedure EdtfieldButtonClick(Sender: TObject);
procedure EdtfieldKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ListView1DblClick(Sender: TObject);
procedure ListView1KeyPress(Sender: TObject; var Key: Char);
procedure CombotickettypeEnter(Sender: TObject);
procedure BtnSellClick(Sender: TObject);
procedure BtngiveupClick(Sender: TObject);
procedure Edtmoney1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EdtfieldDblClick(Sender: TObject);
procedure MenuQuitClick(Sender: TObject);
procedure MenuBookTicketClick(Sender: TObject);
procedure MenuSellBookticketClick(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure SelledColorClick(Sender: TObject);
procedure BookcolorClick(Sender: TObject);
procedure CheckcolorClick(Sender: TObject);
private
MouseDown :Boolean;
CurGridrow,CurGridCol :integer;
CurRow,CurCol :integer;
cinemaid,hallid :integer;
seattype,TicketType :integer;
plid :integer;
seatList :TSeatList;
pricelist :TPriceList;
Selled :Boolean;
SetColor :Boolean;
procedure GetSeatColor;
procedure Initcombocinema(sqlstr:string);
procedure Initcombohall(sqlstr:string);
procedure Refreshcombotickettype(_seattype:integer);
procedure Refreshlistviewplan(sqlstr:string);
procedure RefreshSeat(_plid:integer);
procedure RefreshGrid;
procedure Refreshstatus(_plid:integer);
procedure RefreshPriceList(_plid:integer);
procedure AddItem(prt:PTicketNode);
function ItemExist(_row,_col:integer):Boolean;
procedure Clear;
{ Private declarations }
public
{ Public declarations }
end;
var
frmsaleticket: Tfrmsaleticket;
implementation
uses unit_adodm,unit_frmsellrecord, Unit_frmkhinfo,unit_frmsellBookTicket;
{$R *.dfm}
{ Tfrmsaleticket }
procedure Tfrmsaleticket.GetSeatColor;
var
sqlstr:string;
txt:TStaticText;
i,_top:integer;
begin
_top:=Checkcolor.Top+Checkcolor.Height+10;
sqlstr:='select * from tblseattype';
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
txt:=TStaticText.Create(panelColor);
txt.Parent :=panelColor;
txt.AutoSize :=false;
txt.Alignment :=taCenter;
txt.BevelEdges :=[beLeft,beTop,beRight,beBottom];
txt.BevelInner :=bvRaised;
txt.BorderStyle :=sbsSunken;
txt.Left :=selledcolor.Left ;
txt.Top :=_top ;
txt.Width :=selledcolor.Width;
txt.Height :=selledcolor.Height;
txt.Caption :=fieldbyname('name').AsString ;
txt.Color :=fieldbyname('color').AsInteger ;
_top:=_top+txt.Height +10 ;
next;
end;
end;
end;
end;
procedure Tfrmsaleticket.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
27:
BtngiveupClick(nil);
13:
perform(WM_NEXTDLGCTL,0,0);
Key_V:
begin
frmsellrecord:=Tfrmsellrecord.MyCreate(Application,true);
try
frmsellrecord.sqlstr :=' where plid='+inttostr(plid)+' and (personid='+inttostr(publicinfo.OperID)+
' or Delperson='+inttostr(publicinfo.OperID)+')';
frmsellrecord.ShowModal ;
finally
frmsellrecord.Free ;
end;
end;
Key_S:
BtnSellClick(nil);
Key_X:
BtngiveupClick(nil);
Key_Q:
MenuQuitClick(nil);
Key_R:
MenuBookTicketClick(nil);
Key_D:
MenuSellBookticketClick(nil);
end;
end;
procedure Tfrmsaleticket.FormCreate(Sender: TObject);
begin
inherited;
seatList :=TSeatList.Create ;
pricelist:=TPriceList.Create ;
end;
procedure Tfrmsaleticket.Initcombocinema(sqlstr: string);
var
i,_cinemaid:integer;
_cinemaname:string;
begin
combocinema.Items.Clear ;
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
_cinemaid:=fieldbyname('cinemaid').AsInteger ;
_cinemaname:=fieldbyname('cinemaname').AsString ;
combocinema.Items.AddObject(_cinemaname,Tobject(_cinemaid));
next;
end;
combocinema.ItemIndex :=0;
cinemaid:=integer(combocinema.Items.Objects[0]);
end;
end;
end;
procedure Tfrmsaleticket.DTPplandateChange(Sender: TObject);
var
sqlstr:string;
begin
inherited;
sqlstr:='select distinct cinemaid,cinemaname from tblfeatureplan_view where plandate='+
#39+datetostr(dtpplandate.Date)+#39+' and status=''1''';
Initcombocinema(sqlstr);
sqlstr:='select distinct hallid,hallname from tblfeatureplan_view where plandate='+
#39+datetostr(dtpplandate.Date)+#39+' and cinemaid='+inttostr(cinemaid)+
' and status=''1''';
Initcombohall(sqlstr);
sqlstr:='select * from tblfeatureplan_view where plandate='+
#39+datetostr(dtpplandate.Date)+#39+' and hallid='+inttostr(hallid)+
' and status=''1''';
Refreshlistviewplan(sqlstr);
end;
procedure Tfrmsaleticket.Initcombohall(sqlstr: string);
var
i,_hallid:integer;
_hallname:string;
begin
combohall.Items.Clear ;
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
_hallid:=fieldbyname('hallid').AsInteger ;
_hallname:=fieldbyname('hallname').AsString ;
combohall.Items.AddObject(_hallname,Tobject(_hallid));
next;
end;
combohall.ItemIndex :=0;
hallid:=integer(combohall.Items.Objects[0]);
end;
end;
end;
procedure Tfrmsaleticket.CombocinemaChange(Sender: TObject);
var
sqlstr:string;
i:integer;
begin
inherited;
i:=Combocinema.ItemIndex ;
if i<0 then exit;
cinemaid:=integer(Combocinema.Items.Objects[i]);
sqlstr:='select distinct hallid,hallname from tblfeatureplan_view where plandate='+
#39+datetostr(dtpplandate.Date)+#39+' and cinemaid='+inttostr(cinemaid)+
' and status=''1''';
Initcombohall(sqlstr);
sqlstr:='select * from tblfeatureplan_view where plandate='+
#39+datetostr(dtpplandate.Date)+#39+
' and hallid='+inttostr(hallid)+
' and status=''1''';
Refreshlistviewplan(sqlstr);
end;
procedure Tfrmsaleticket.Refreshlistviewplan(sqlstr: string);
var
i:integer;
item0:TListItem;
prt:PPlanNode;
begin
listview1.Items.Clear ;
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
new(prt);
prt^.id :=fieldbyname('id').AsInteger;
prt^.fieldnum :=fieldbyname('fieldnum').AsString ;
prt^.starttime :=formatdatetime('HH:mm',fieldbyname('starttime').AsDateTime);
prt^.endtime :=formatdatetime('HH:mm',fieldbyname('endtime').AsDateTime);
prt^.filmname :=fieldbyname('filmname').AsString ;
prt^.hallid :=fieldbyname('hallid').AsInteger ;
item0:=listview1.Items.Add ;
item0.Caption :=prt^.fieldnum ;
item0.SubItems.Add(prt^.starttime);
item0.SubItems.Add(prt^.endtime);
item0.SubItems.Add(prt^.filmname);
item0.Data :=prt;
next;
end;
listview1.Selected :=listview1.Items[0] ;
end;
end;
end;
procedure Tfrmsaleticket.CombohallChange(Sender: TObject);
var
i:integer;
sqlstr:string;
begin
inherited;
i:=Combohall.ItemIndex ;
if i<0 then exit;
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 ;
end;
procedure Tfrmsaleticket.FormShow(Sender: TObject);
begin
inherited;
GetSeatColor;
DTPplandate.Date :=date;
DTPplandate.SetFocus ;
DTPplandateChange(nil);
Refreshcombotickettype(plid);
end;
procedure Tfrmsaleticket.RefreshSeat(_plid: integer);
var
i,j:integer;
sqlstr:string;
_rowcount,_colcount:integer;
_rownum,_colnum,_seattype:integer;
_gridrow,_gridcol,_color:integer;
_Seattypename,_status:string;
rect1:TRect;
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -