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

📄 unit_frmplanitem.pas

📁 影院售票系统完整源码
💻 PAS
字号:
unit Unit_frmplanitem;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Unit_frmtemplate, ExtCtrls, StdCtrls, ComCtrls, CyberListVw,
  CyberEdit, CyberPanel, Buttons, CyberXPMenu,ADODB, Menus;

type
  Tfrmplanitem = class(Tfrmtemplate)
    CyberSizePanel1: TCyberSizePanel;
    ListView1: TCyberListView;
    BtnAdd: TBitBtn;
    BtnEdit: TBitBtn;
    BtnDel: TBitBtn;
    BtnExit: TBitBtn;
    CyberXPMenu1: TCyberXPMenu;
    Label6: TLabel;
    TreeView1: TTreeView;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    procedure BtnAddClick(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BtnEditClick(Sender: TObject);
    procedure BtnDelClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BtnExitClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure ListView1DblClick(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure TreeView1Click(Sender: TObject);
  private
    cinemaid,hallid:integer;
    templateid:integer;
    procedure InitTreeview;
    procedure refreshlistview(sqlstr:string);
    { Private declarations }
  public

    constructor MyCreate(AOwner: TComponent; _templateid: integer);
    { Public declarations }
  end;

var
  frmplanitem: Tfrmplanitem;

implementation
uses unit_public,unit_adodm,unit_frmplaninfo;
{$R *.dfm}

procedure Tfrmplanitem.BtnAddClick(Sender: TObject);
var
  sqlstr:string;
  selnode:TTreeNode;
begin
  inherited;
  selnode:=treeview1.Selected ;
  if (selnode=nil) or (selnode.Level <>2) then
  begin
     publicinfo.showmsg('请选择一个影厅!');
     exit;
  end;
  frmplaninfo:=Tfrmplaninfo.MyCreate(Application,false);
  try
    frmplaninfo.templateid :=templateid;
    frmplaninfo.cinemaid :=integer(selnode.Parent.Data);
    frmplaninfo.cinemaname :=selnode.Parent.Text ;
    frmplaninfo.hallid :=integer(selnode.Data);
    frmplaninfo.hallname :=selnode.Text ;
    frmplaninfo.ShowModal ;
  finally
    frmplaninfo.Free ;
    sqlstr:='select * from tbldefaultplan_view where templateid='+inttostr(templateid);
    refreshlistview(sqlstr);
  end;
end;

procedure Tfrmplanitem.refreshlistview(sqlstr: string);
var
  I,_id:integer;
  item0:TListItem;
  reccount:integer;
  _cinemaname,_hallname,_fieldnum,_startdate,_enddate:string;
begin
  listview1.Items.BeginUpdate;
  listview1.Items.Clear ;
  listview1.Items.EndUpdate;
  try
    //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
          _id           :=fieldbyname('id').asinteger;
          _cinemaname   :=fieldbyname('cinemaname').AsString;
          _hallname     :=fieldbyname('hallname').AsString;
          _fieldnum     :=fieldbyname('fieldnum').AsString;
          _startdate    :=Formatdatetime('HH:mm',fieldbyname('starttime').AsDateTime);
          _enddate      :=Formatdatetime('HH:mm',fieldbyname('endtime').AsDateTime);
          item0         :=listview1.Items.Add ;
          item0.Caption :=_cinemaname;
          item0.SubItems.Add(_hallname);
          item0.SubItems.Add(_fieldnum);
          item0.SubItems.Add(_startdate);
          item0.SubItems.Add(_enddate);
          item0.Data :=pointer(_id);
          next;
        end;
      end;
    end;
  finally
   // listview1.Items.EndUpdate ;
  end;
end;

procedure Tfrmplanitem.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if key=27 then close;
end;

procedure Tfrmplanitem.BtnEditClick(Sender: TObject);
var
  selitem       :TListItem;
begin
  inherited;
  selitem:=listview1.Selected ;
  if selitem=nil then exit;
  frmplaninfo:=Tfrmplaninfo.MyCreate(Application,true);
  try
    frmplaninfo.id  :=integer(selitem.Data);
    if frmplaninfo.ShowModal=mrok  then
    begin
      selitem.Caption :=frmplaninfo.Edtcinema.Text ;
      selitem.SubItems[0]:=frmplaninfo.edthall.Text ;
      selitem.SubItems[1]:=frmplaninfo.Edtfieldnum.Text ;
      selitem.SubItems[2]:=formatdatetime('hh:mm',frmplaninfo.DTPStartdate.time);
      selitem.SubItems[3]:=formatdatetime('hh:mm',frmplaninfo.dtpenddate.time);
    end;
  finally
    frmplaninfo.Free ;
  end;
end;

procedure Tfrmplanitem.BtnDelClick(Sender: TObject);
var
  selitem       :TListItem;
  sqlstr        :string;
begin
  inherited;
  selitem:=listview1.Selected ;
  if selitem=nil then exit;
  sqlstr:='delete from tbldefaultplan where id='+inttostr(integer(selitem.Data));
  if publicinfo.Execsql(sqlstr,true) then
  begin
    selitem.Delete ;
    publicinfo.showmsg('模板计划信息删除成功');
  end;
end;

procedure Tfrmplanitem.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  Action :=cafree;
end;

procedure Tfrmplanitem.BtnExitClick(Sender: TObject);
begin
  inherited;
  close;
end;

constructor Tfrmplanitem.MyCreate(AOwner: TComponent;
  _templateid: integer);
begin
  Inherited Create(AOwner);
  templateid:=_templateid;
end;

procedure Tfrmplanitem.FormActivate(Sender: TObject);
var
  sqlstr:string;
begin
  inherited;
  InitTreeview;
  sqlstr:='select * from tbldefaultplan_view where templateid='+inttostr(templateid);
  refreshlistview(sqlstr);
end;

procedure Tfrmplanitem.ListView1DblClick(Sender: TObject);
begin
  inherited;
  BtnEditClick(nil);  
end;

procedure Tfrmplanitem.InitTreeview;
var
  I,j,_id                 :integer;
  rootnode,node0,node1  :TTreeNode;
  qry                   :TAdoQuery;
  reccount              :Integer;
  _name                 :String;
begin
  treeview1.Items.Clear ;
  treeview1.Items.BeginUpdate ;
  try
    qry :=TAdoQuery.Create(Application);
    qry.Connection :=adodm.ADOCN ;
    rootnode:=treeview1.Items.Add(nil,'所有影院');
    rootnode.Data :=pointer(-1);
    if publicinfo.Execsql('select * from Tblcinemainfo',false) then
    begin
       reccount :=adodm.ADOQRY.RecordCount;
       if reccount<=0 then  exit;
       adodm.ADOQRY.First ;
       for i:=1 to reccount do
       begin
         _id    :=adodm.ADOQRY.fieldbyname('id').AsInteger;
         _name  :=adodm.ADOQRY.fieldbyname('name').AsString;
         node0  :=treeview1.Items.AddChild(rootnode,_name);
         node0.data  :=pointer(_id);
         qry.Close ;
         qry.SQL.Clear ;
         qry.SQL.Add('select * from tblhallinfo where cinemaid='+inttostr(_id));
         qry.Open ;
         if qry.RecordCount>0 then
         begin
           qry.First ;
           for j:=1 to qry.RecordCount do
           begin
             _id         :=qry.fieldbyname('id').AsInteger;
             _name       :=qry.fieldbyname('name').AsString;
             node1       :=treeview1.Items.AddChild(node0,_name);
             node1.Data  :=pointer(_id);
             qry.Next ;
           end;
         end;
         adodm.ADOQRY.Next ;
       end;
    end;
  finally
    qry.Close ;
    qry.Free ;
    rootnode.Expand(true);
    treeview1.Items.EndUpdate ;
  end;

end;

procedure Tfrmplanitem.N1Click(Sender: TObject);
begin
  inherited;
  if btnadd.Enabled then btnaddclick(nil);
end;

procedure Tfrmplanitem.TreeView1Click(Sender: TObject);
var
  sqlstr:string;
  selnode:TTreeNode;
begin
  inherited;
  selnode:=treeview1.Selected ;
  if (selnode=nil) then exit;
  case selnode.Level of
  0:
    sqlstr:='select * from tbldefaultplan_view where templateid='
          +inttostr(templateid);
  1:
    sqlstr:='select * from tbldefaultplan_view where templateid='
          +inttostr(templateid)+' and cinemaid='+inttostr(integer(selnode.data));
  2:
    sqlstr:='select * from tbldefaultplan_view where templateid='
          +inttostr(templateid)+' and hallid='+inttostr(integer(selnode.data));
  end;
  refreshlistview(sqlstr);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -