📄 unit_frmsellrecord.pas
字号:
unit Unit_frmsellrecord;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Unit_frmtemplate2, StdCtrls, Buttons, ExtCtrls, ComCtrls,
CyberPanel, CyberListVw, CyberXPMenu;
type
Tfrmsellrecord = class(Tfrmtemplate2)
CyberSizePanel1: TCyberSizePanel;
GroupBox1: TGroupBox;
Panelconsign: TPanel;
Panel4: TPanel;
Panel35: TPanel;
Panel33: TPanel;
ChkCinema: TCheckBox;
Combocinema: TComboBox;
Panel31: TPanel;
Label2: TLabel;
Chkplandate: TCheckBox;
Dtpstartdate: TDateTimePicker;
Dtpenddate: TDateTimePicker;
Panel34: TPanel;
Chkhall: TCheckBox;
Combohall: TComboBox;
Panel32: TPanel;
chkstatus: TCheckBox;
Combostatus: TComboBox;
Panel5: TPanel;
Btnquery: TBitBtn;
ListView1: TCyberListView;
chkperson: TCheckBox;
Comboperson: TComboBox;
Panel36: TPanel;
chktickettype: TCheckBox;
Combotickettype: TComboBox;
Panel37: TPanel;
chkseattype: TCheckBox;
Comboseattype: TComboBox;
Label1: TLabel;
CyberXPMenu1: TCyberXPMenu;
BtnExcel: TBitBtn;
procedure FormShow(Sender: TObject);
procedure ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
procedure ChkplandateClick(Sender: TObject);
procedure chkstatusClick(Sender: TObject);
procedure ChkCinemaClick(Sender: TObject);
procedure ChkhallClick(Sender: TObject);
procedure chkpersonClick(Sender: TObject);
procedure BtnqueryClick(Sender: TObject);
procedure chktickettypeClick(Sender: TObject);
procedure chkseattypeClick(Sender: TObject);
procedure CombocinemaChange(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure BtnExcelClick(Sender: TObject);
private
viewmode:Boolean;
cinemaid,hallid:integer;
procedure InitComboperson;
procedure refreshlistview(_sqlstr:string);
{ Private declarations }
public
sqlstr:string;
constructor MyCreate(AOwner: TComponent; _Viewmode: Boolean);
{ Public declarations }
end;
var
frmsellrecord: Tfrmsellrecord;
implementation
uses unit_public,unit_adodm;
{$R *.dfm}
{ Tfrmsellrecord }
constructor Tfrmsellrecord.MyCreate(AOwner: TComponent;
_Viewmode: Boolean);
begin
inherited Create(AOwner);
viewmode:=_viewmode;
end;
procedure Tfrmsellrecord.refreshlistview(_sqlstr: string);
var
i,reccount:integer;
item0:TListItem;
validcount,quitcount,invalidcount :integer;
validprice,quitprice,invalidprice :single;
_status :string;
begin
listview1.items.BeginUpdate ;
listview1.Items.Clear ;
listview1.Items.EndUpdate ;
_sqlstr:='select id,plandate,cinemaname,hallname,fieldnum,starttime,filmname,seatname,ticketname,rebate,price,'+
'username,selldate,quitperson,poundage,deldate,status,statuscn from tblticketsale_view '+_sqlstr;
try
screen.Cursor :=crHourGlass;
listview1.Items.BeginUpdate ;
if publicinfo.Execsql(_sqlstr,false) then
begin
with adodm.ADOQRY do
begin
reccount:=recordcount;
if reccount<=0 then exit;
first;
for i:=1 to reccount do
begin
item0:=listview1.Items.Add ;
item0.Caption :=fieldbyname('plandate').AsString;
item0.SubItems.Add(fieldbyname('cinemaname').AsString);
item0.SubItems.Add(fieldbyname('hallname').AsString);
item0.SubItems.Add(fieldbyname('fieldnum').AsString);
item0.SubItems.Add(formatdatetime('HH:mm',fieldbyname('starttime').AsDateTime));
item0.SubItems.Add(fieldbyname('filmname').AsString);
item0.SubItems.Add(fieldbyname('seatname').AsString);
item0.SubItems.Add(fieldbyname('ticketname').AsString);
item0.SubItems.Add(fieldbyname('rebate').AsString);
item0.SubItems.Add(format('%.1f',[fieldbyname('price').asfloat]));
item0.SubItems.Add(fieldbyname('username').AsString);
item0.SubItems.Add(fieldbyname('selldate').AsString);
item0.SubItems.Add(fieldbyname('statuscn').AsString);
item0.SubItems.Add(fieldbyname('quitperson').AsString);
item0.SubItems.Add(fieldbyname('poundage').AsString);
item0.SubItems.Add(fieldbyname('deldate').AsString);
item0.Data :=pointer(fieldbyname('id').AsInteger);
_status:=fieldbyname('status').asstring;
if _status='0' then
begin
inc(validcount);
validprice:=validprice+fieldbyname('price').AsFloat;
end
else if _status='1' then
begin
inc(quitcount);
quitprice :=quitprice+fieldbyname('poundage').AsFloat;
end
else if _status='2' then
begin
inc(invalidcount);
invalidprice:=invalidprice+fieldbyname('price').AsFloat;
end;
next;
end;
item0:=listview1.Items.Add ;
item0.Caption :='售出:'+inttostr(Validcount);
item0.SubItems.Add ('票房收入:'+format('%.2f',[validprice]));
item0.SubItems.Add ('退票:'+inttostr(quitcount));
item0.SubItems.Add ('手续费:'+format('%.2f',[quitprice]));
item0.SubItems.Add ('废票:'+inttostr(invalidcount));
end;
end;
finally
listview1.items.EndUpdate;
screen.Cursor :=crDefault;
end;
end;
procedure Tfrmsellrecord.FormShow(Sender: TObject);
var
_sqlstr:string;
begin
inherited;
publicinfo.DatasetToCombbox(combocinema,2);
if combocinema.ItemIndex>=0 then
begin
cinemaid:=integer(combocinema.Items.Objects[combocinema.ItemIndex]);
publicinfo.refreshhallcomb(combohall,cinemaid);
end;
initcomboperson;
publicinfo.DatasetToCombbox(Comboseattype,5);
publicinfo.DatasetToCombbox(combotickettype,6);
if viewmode then
btnquery.Visible :=false
else
btnquery.Visible :=true;
if sqlstr='' then
begin
_sqlstr:='where selldate>='+#39+datetostr(date-1)+#39+' and selldate<='+#39+datetimetostr(Now)+#39;
refreshlistview(_sqlstr);
end
else
refreshlistview(sqlstr);
end;
procedure Tfrmsellrecord.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
inherited;
publicinfo.ListViewDraw(item,DefaultDraw);
end;
procedure Tfrmsellrecord.ChkplandateClick(Sender: TObject);
begin
inherited;
if Chkplandate.Checked then
Panel31.Height :=panelheigh+40
else
panel31.Height :=panelheigh1;
end;
procedure Tfrmsellrecord.chkstatusClick(Sender: TObject);
begin
inherited;
if Chkstatus.Checked then
Panel32.Height :=panelheigh
else
panel32.Height :=panelheigh1;
end;
procedure Tfrmsellrecord.ChkCinemaClick(Sender: TObject);
begin
inherited;
if Chkcinema.Checked then
Panel33.Height :=panelheigh
else
panel33.Height :=panelheigh1;
end;
procedure Tfrmsellrecord.ChkhallClick(Sender: TObject);
begin
inherited;
if Chkhall.Checked then
Panel34.Height :=panelheigh
else
panel34.Height :=panelheigh1;
end;
procedure Tfrmsellrecord.chkpersonClick(Sender: TObject);
begin
inherited;
if Chkperson.Checked then
Panel35.Height :=panelheigh
else
panel35.Height :=panelheigh1;
end;
procedure Tfrmsellrecord.InitComboperson;
var
_sqlstr:string;
i,reccount,_id:integer;
_name:string;
begin
_sqlstr:='select id,username from tbluser';
if publicinfo.Execsql(_sqlstr,false) then
begin
reccount:=Adodm.ADOQRY.RecordCount;
if reccount>0 then
begin
Adodm.ADOQRY.First ;
for i:=1 to reccount do
begin
_id := Adodm.ADOQRY.fieldByName('id').AsInteger;
_name := Adodm.ADOQRY.fieldByName('username').AsString;
Comboperson.Items.AddObject(_name,Tobject(_id));
Adodm.ADOQRY.Next ;
end;
Comboperson.ItemIndex := 0;
end;
end;
end;
procedure Tfrmsellrecord.BtnqueryClick(Sender: TObject);
var
_sqlstr:string;
begin
_sqlstr:='where 1=1' ;
if (Chkplandate.Checked) then
begin
if dtpstartdate.Checked then
_sqlstr:=_sqlstr+' and plandate>='+#39+datetostr(dtpstartdate.Date)+#39 ;
if dtpenddate.Checked then
_sqlstr:=_sqlstr+' and plandate<='+#39+datetostr(dtpenddate.Date)+#39 ;
end;
if (chkstatus.Checked) and (Combostatus.Text<>'') then
_sqlstr:=_sqlstr+' and status='+#39+copy(Combostatus.Text,1,1)+#39;
if (ChkCinema.Checked) and (combocinema.ItemIndex>-1) then
_sqlstr:=_sqlstr+' and cinemaid='+inttostr(integer(combocinema.Items.Objects[combocinema.ItemIndex]));
if (Chkhall.Checked) and (combohall.ItemIndex>-1) then
_sqlstr:=_sqlstr+' and hallid='+inttostr(integer(combohall.Items.Objects[combohall.ItemIndex]));
if (Chkperson.Checked) and (comboperson.ItemIndex>-1) then
_sqlstr:=_sqlstr+' and (personid='+inttostr(integer(comboperson.Items.Objects[comboperson.ItemIndex]))+
' or delperson='+inttostr(integer(comboperson.Items.Objects[comboperson.ItemIndex]))+')';
if (Chktickettype.Checked) and (combotickettype.ItemIndex>-1) then
_sqlstr:=_sqlstr+' and tickettype='+inttostr(integer(combotickettype.Items.Objects[combotickettype.ItemIndex]));
if (Chkseattype.Checked) and (comboseattype.ItemIndex>-1) then
_sqlstr:=_sqlstr+' and seattype='+inttostr(integer(comboseattype.Items.Objects[comboseattype.ItemIndex]));
refreshlistview(_sqlstr);
end;
procedure Tfrmsellrecord.chktickettypeClick(Sender: TObject);
begin
inherited;
if Chktickettype.Checked then
Panel36.Height :=panelheigh
else
panel36.Height :=panelheigh1;
end;
procedure Tfrmsellrecord.chkseattypeClick(Sender: TObject);
begin
inherited;
if Chkseattype.Checked then
Panel37.Height :=panelheigh
else
panel37.Height :=panelheigh1;
end;
procedure Tfrmsellrecord.CombocinemaChange(Sender: TObject);
var
_cinemaid:integer;
i:integer;
begin
inherited;
i:=Combocinema.ItemIndex ;
if i<0 then exit;
_cinemaid:=integer(Combocinema.Items.Objects[i]);
publicinfo.refreshhallcomb(combohall,_cinemaid);
end;
procedure Tfrmsellrecord.FormResize(Sender: TObject);
begin
inherited;
Btnquery.Top:=Panel4.Height-btnquery.Height-10;
btnexit.Left:=self.Width-btnexit.Width-10;
BtnExcel.Left :=btnexit.Left-btnexcel.Width-10;
end;
procedure Tfrmsellrecord.BtnExcelClick(Sender: TObject);
begin
inherited;
publicinfo.ExportToExcel(self,TListView(listview1),'售票记录表',nil);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -