📄 unit_frmplan.pas
字号:
unit Unit_frmplan;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Unit_frmtemplate, ExtCtrls, ComCtrls, CyberListVw, CyberPanel,
StdCtrls, Buttons, CyberXPMenu, Mask, CyberEdit, CyberButton, Menus;
type
Tfrmplan = class(Tfrmtemplate)
CyberSizePanel1: TCyberSizePanel;
ListView1: TCyberListView;
Label1: TLabel;
BtnAdd: TBitBtn;
BtnEdit: TBitBtn;
BtnDel: TBitBtn;
BtnExit: TBitBtn;
BtnCopy: TBitBtn;
GroupBox1: TGroupBox;
Panelconsign: TPanel;
Panel4: TPanel;
Panel31: TPanel;
Chkcode: TCheckBox;
EdTcode: TEdit;
Panel32: TPanel;
ChkCinema: TCheckBox;
Panel35: TPanel;
Label2: TLabel;
Chkplandate: TCheckBox;
Dtpstartdate: TDateTimePicker;
Dtpenddate: TDateTimePicker;
Combocinema: TComboBox;
Panel33: TPanel;
Chkhall: TCheckBox;
Combohall: TComboBox;
Panel34: TPanel;
chkstatus: TCheckBox;
Combostatus: TComboBox;
BtnQuery: TBitBtn;
Btncontrol: TCyberMenuButton;
PopupMenu1: TPopupMenu;
Menustart: TMenuItem;
Menuend: TMenuItem;
Menustop: TMenuItem;
CyberXPMenu1: TCyberXPMenu;
BtnExcel: TBitBtn;
ProgressBar1: TProgressBar;
procedure ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
procedure BtnAddClick(Sender: TObject);
procedure BtnEditClick(Sender: TObject);
procedure BtnDelClick(Sender: TObject);
procedure BtnExitClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ListView1DblClick(Sender: TObject);
procedure ChkcodeClick(Sender: TObject);
procedure ChkCinemaClick(Sender: TObject);
procedure ChkhallClick(Sender: TObject);
procedure chkstatusClick(Sender: TObject);
procedure ChkplandateClick(Sender: TObject);
procedure BtnQueryClick(Sender: TObject);
procedure MenustartClick(Sender: TObject);
procedure MenuendClick(Sender: TObject);
procedure MenustopClick(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure CombocinemaChange(Sender: TObject);
procedure BtnCopyClick(Sender: TObject);
procedure BtnExcelClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
function Updatestatus(_planid:integer;_status:string):Boolean;
procedure refreshlistview(sqlstr:string);
{ Private declarations }
public
viewmode:Boolean;
constructor MyCreate(AOwner: TComponent; _ViewMode: Boolean);
{ Public declarations }
end;
var
frmplan: Tfrmplan;
implementation
uses unit_public,unit_adodm,unit_frm_plan_info,unit_frmplantemplate,
unit_frmCopyPlan;
{$R *.dfm}
procedure Tfrmplan.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
inherited;
publicinfo.ListViewDraw(item,DefaultDraw);
end;
procedure Tfrmplan.BtnAddClick(Sender: TObject);
begin
inherited;
frm_plan_info:=Tfrm_plan_info.MyCreate(Application,false);
try
frm_plan_info.ShowModal ;
finally
frm_plan_info.Free ;
end;
end;
procedure Tfrmplan.BtnEditClick(Sender: TObject);
var
selitem:TListItem;
begin
inherited;
selitem:=listview1.Selected ;
if selitem=nil then exit;
frm_plan_info:=Tfrm_plan_info.MyCreate(Application,true);
try
frm_plan_info.id :=integer(selitem.Data) ;
frm_plan_info.ShowModal ;
finally
frm_plan_info.Free ;
end;
end;
procedure Tfrmplan.BtnDelClick(Sender: TObject);
var
selitem:TListItem;
sqlstr:string;
begin
inherited;
selitem:=listview1.Selected ;
if selitem=nil then exit;
with adodm.ADOProc do
begin
Close;
ProcedureName := 'my_delete_plan';
Parameters.Refresh;
Parameters.Items[1].Value :=integer(selitem.Data);
Parameters.Items[2].Value :=-1;
ExecProc;
if Parameters.ParamByName('@retcode').Value=1 then
selitem.Delete ;
end;
end;
procedure Tfrmplan.BtnExitClick(Sender: TObject);
begin
inherited;
close;
end;
procedure Tfrmplan.refreshlistview(sqlstr: string);
var
item0:TListItem;
i:integer;
_freecount,_Sumcount:integer;
begin
listview1.Items.BeginUpdate ;
listview1.Items.Clear ;
listview1.Items.EndUpdate;
try
screen.Cursor :=crHourGlass;
listview1.Items.BeginUpdate ;
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
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(Formatdatetime('HH:mm',fieldbyname('endtime').AsDateTime));
item0.SubItems.Add(fieldbyname('filmname').AsString);
item0.SubItems.Add(fieldbyname('statuscn').AsString);
_sumcount:=fieldbyname('sumcount').AsInteger ;
item0.SubItems.Add(inttostr(_sumcount));
item0.SubItems.Add(fieldbyname('alreadysell').AsString);
item0.SubItems.Add(fieldbyname('reservecount').AsString);
_freecount:=fieldbyname('freecount').AsInteger ;
item0.SubItems.Add(inttostr(_freecount));
item0.SubItems.Add(format('%.2f',[(_freecount/_sumcount)*100])+'%');
item0.SubItems.Add(format('%.2f',[fieldbyname('summoney').asfloat]));
item0.Data :=pointer(fieldbyname('id').AsInteger);
next;
end;
end;
end;
finally
listview1.Items.EndUpdate;
screen.Cursor :=crDefault;
end;
end;
procedure Tfrmplan.FormShow(Sender: TObject);
var
_cinemaid:integer;
begin
inherited;
dtpstartdate.Date :=date;
dtpenddate.Date :=date;
publicinfo.DatasetToCombbox(Combocinema,2);
_cinemaid:=integer(Combocinema.Items.Objects[0]);
publicinfo.refreshhallcomb(combohall,_cinemaid);
refreshlistview('select * from tblfeatureplan_view where plandate='+#39+datetostr(date)+#39);
end;
procedure Tfrmplan.ListView1DblClick(Sender: TObject);
var
selitem:TListItem;
begin
inherited;
if ((btnedit.Enabled) and (viewmode=false))then BtnEditClick(nil);
if viewmode then
begin
selitem:=listview1.Selected ;
if selitem=nil then exit;
frm_plan_info:=Tfrm_plan_info.MyCreate(Application,true);
try
frm_plan_info.id :=integer(selitem.Data) ;
frm_plan_info.BtnSave.Visible :=false;
frm_plan_info.BitBtn1.Visible :=false;
publicinfo.frmview(frm_plan_info);
frm_plan_info.ShowModal ;
finally
frm_plan_info.Free ;
end;
end;
end;
procedure Tfrmplan.ChkcodeClick(Sender: TObject);
begin
inherited;
if Chkcode.Checked then
Panel31.Height :=panelheigh
else
panel31.Height :=panelheigh1;
end;
procedure Tfrmplan.ChkCinemaClick(Sender: TObject);
begin
inherited;
if Chkcinema.Checked then
Panel32.Height :=panelheigh
else
panel32.Height :=panelheigh1;
end;
procedure Tfrmplan.ChkhallClick(Sender: TObject);
begin
inherited;
if Chkhall.Checked then
Panel33.Height :=panelheigh
else
panel33.Height :=panelheigh1;
end;
procedure Tfrmplan.chkstatusClick(Sender: TObject);
begin
inherited;
if Chkstatus.Checked then
Panel34.Height :=panelheigh
else
panel34.Height :=panelheigh1;
end;
procedure Tfrmplan.ChkplandateClick(Sender: TObject);
begin
inherited;
if Chkplandate.Checked then
Panel35.Height :=panelheigh+40
else
panel35.Height :=panelheigh1;
end;
procedure Tfrmplan.BtnQueryClick(Sender: TObject);
var
sqlstr:string;
begin
inherited;
sqlstr:='where 1=1' ;
if (Chkcode.Checked) and (EdTcode.Text<>'') then
sqlstr:=sqlstr+' and plancode='+#39+EdTcode.Text+#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 (chkstatus.Checked) and (Combostatus.Text<>'') then
sqlstr:=sqlstr+' and status='+#39+copy(Combostatus.Text,1,1)+#39;
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;
refreshlistview('select * from tblfeatureplan_view '+sqlstr);
end;
function Tfrmplan.Updatestatus(_planid:integer; _status: string):Boolean;
var
sqlstr:string;
begin
result:=false;
sqlstr:='update tblfeatureplan set status='+#39+_status+#39+
' where id='+inttostr(_planid);
if publicinfo.Execsql(sqlstr,true) then
begin
result:=true;
publicinfo.showmsg('控制状态修改成功!');
end;
end;
procedure Tfrmplan.MenustartClick(Sender: TObject);
var
selitem:TListItem;
begin
inherited;
selitem:=listview1.Selected ;
if selitem=nil then exit;
if updatestatus(integer(selitem.Data),'1') then
selitem.SubItems[6]:='开售';
end;
procedure Tfrmplan.MenuendClick(Sender: TObject);
var
selitem:TListItem;
begin
inherited;
selitem:=listview1.Selected ;
if selitem=nil then exit;
if updatestatus(integer(selitem.Data),'2') then
selitem.SubItems[6]:='停售';
end;
procedure Tfrmplan.MenustopClick(Sender: TObject);
var
selitem:TListItem;
begin
inherited;
selitem:=listview1.Selected ;
if selitem=nil then exit;
if updatestatus(integer(selitem.Data),'3') then
selitem.SubItems[6]:='注销';
end;
procedure Tfrmplan.FormResize(Sender: TObject);
begin
inherited;
btnexit.Left :=self.Width-btnexit.Width-10;
btnExcel.Left :=btnexit.Left-btnexit.Width-10;
btndel.Left :=btnExcel.Left-btnExcel.Width-10;
btnedit.Left :=btndel.Left-btndel.Width-10;
btnadd.Left :=btnedit.Left-btnedit.Width-10;
btncopy.Left :=btnadd.Left-btnadd.Width-10;
btncontrol.Left :=btncopy.Left-btncopy.Width-10;
BtnQuery.Top :=panel4.Height-btnquery.Height-10;
end;
procedure Tfrmplan.CombocinemaChange(Sender: TObject);
var
i,_cinemaid:integer;
begin
inherited;
i:=Combocinema.ItemIndex ;
if i<0 then exit;
_cinemaid:=integer(Combocinema.Items.Objects[i]);
publicinfo.refreshhallcomb(combohall,_cinemaid);
end;
procedure Tfrmplan.BtnCopyClick(Sender: TObject);
begin
inherited;
frmCopyPlan:=TfrmCopyPlan.Create(Application);
try
frmCopyPlan.ShowModal ;
finally
frmCopyPlan.Free ;
end;
end;
procedure Tfrmplan.BtnExcelClick(Sender: TObject);
begin
inherited;
publicinfo.ExportToExcel(self,TListview(listview1),'放映计划表',ProgressBar1);
end;
constructor Tfrmplan.MyCreate(AOwner: TComponent; _ViewMode: Boolean);
begin
viewmode:=_viewMode;
Inherited Create(AOwner);
end;
procedure Tfrmplan.FormActivate(Sender: TObject);
begin
inherited;
if viewmode then
begin
btnadd.Visible :=false;
btnedit.Visible :=false;
btndel.Visible :=false;
Btncontrol.Visible :=false;
btncopy.Visible :=false;
end
else
begin
btnadd.Visible :=true;
btnedit.Visible :=true;
btndel.Visible :=true;
Btncontrol.Visible :=true;
btncopy.Visible :=true;
listview1.PopupMenu :=PopupMenu1;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -