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

📄 unit_frmplan.pas

📁 影院售票系统完整源码
💻 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 + -