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

📄 unit_frmsellbookticket.pas

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

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Unit_frmtemplate2, StdCtrls, Buttons, ExtCtrls, ComCtrls,
  CyberListVw, Mask, CyberEdit, CyberXPMenu;

type
  TfrmsellBookTicket = class(Tfrmtemplate2)
    Label1: TLabel;
    Panel4: TPanel;
    Panel5: TPanel;
    Panel6: TPanel;
    Label2: TLabel;
    Edtcount: TEdit;
    Label3: TLabel;
    Edtsummoney: TEdit;
    Label4: TLabel;
    Edtalready: TEdit;
    Label5: TLabel;
    Edtchange: TEdit;
    ListView1: TCyberListView;
    GroupBox1: TGroupBox;
    BtnSave: TBitBtn;
    Label6: TLabel;
    EdtBookperson: TCyberEdit;
    Label7: TLabel;
    EdtDrawcode: TCyberEdit;
    BtnQuery: TBitBtn;
    Label8: TLabel;
    DTPPLANDATE: TCyberDateTimePicker;
    Label9: TLabel;
    dtpselldate: TCyberDateTimePicker;
    BitBtn1: TBitBtn;
    CyberXPMenu1: TCyberXPMenu;
    procedure BtnQueryClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BtnSaveClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
     procedure RefreshListView(sqlstr:string);
    { Private declarations }
  public
     Plid:integer;
    { Public declarations }
  end;

var
  frmsellBookTicket: TfrmsellBookTicket;

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

{ TfrmsellBookTicket }

procedure TfrmsellBookTicket.RefreshListView(sqlstr: string);
var
  i:integer;
  item0:TListItem;
  _reccount:integer;
  _price,summoney:single;
begin
  summoney:=0;
  sqlstr:='select id,selldate,plandate,cinemaname,hallname,fieldnum,starttime,filmname,price,bookperson,drawcode from tblticketsale_view '+sqlstr;
  listview1.Items.Clear ;
  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
           item0:=listview1.Items.Add ;
           item0.Caption := formatdatetime('yyyy-mm-dd',fieldbyname('selldate').AsDateTime) ;
           item0.SubItems.Add(formatdatetime('yyyy-mm-dd',fieldbyname('plandate').AsDateTime));
           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);
           _price:=fieldbyname('price').AsFloat ;
           summoney:=summoney+_price;
           item0.SubItems.Add(format('%.2f',[_price]));
           item0.SubItems.Add(fieldbyname('bookperson').AsString);
           item0.SubItems.Add(fieldbyname('drawcode').AsString);
           item0.Data :=pointer(fieldbyname('id').AsInteger);
           item0.Checked :=true;
           next;
        end;
      end;
    end;
    edtcount.Text :=inttostr(listview1.Items.Count);
    edtsummoney.Text :=format('%.2f',[summoney]);
 finally
   listview1.Items.EndUpdate ;
 end;
end;

procedure TfrmsellBookTicket.BtnQueryClick(Sender: TObject);
var
  sqlstr:string;
begin
  inherited;
  sqlstr:='where status=''3''';
  if plid>0 then sqlstr:=sqlstr+' and plid='+inttostr(plid);
  if edtbookperson.Text <>'' then
  sqlstr:=sqlstr+' and bookperson='+#39+edtbookperson.Text+#39;
  if edtdrawcode.Text <>'' then
  sqlstr:=sqlstr+' and drawcode='+#39+edtdrawcode.Text+#39;
  if dtpplandate.Checked then
  sqlstr:=sqlstr+' and plandate='+#39+datetostr(dtpplandate.Date)+#39;
  if dtpselldate.Checked then
  sqlstr:=sqlstr+' and selldate='+#39+datetostr(dtpselldate.Date)+#39;
  refreshlistview(sqlstr);
end;

procedure TfrmsellBookTicket.FormShow(Sender: TObject);
begin
  inherited;
  dtpplandate.Date :=date;
  dtpselldate.Date :=date;
  dtpplandate.Checked :=false;
  dtpselldate.Checked :=false;
end;

procedure TfrmsellBookTicket.BtnSaveClick(Sender: TObject);
var
  i,_id:integer;
  item0:TListItem;
begin
  inherited;
  if Application.MessageBox('确实要售出所选的预订票吗?','售预订票',mb_yesno)=IDNO then exit;
  if listview1.Items.Count<=0 then exit;
  adodm.ADOCN.BeginTrans ;
  for i:=0 to listview1.Items.Count-1 do
  begin
    item0:=listview1.Items[i];
    _id:=integer(item0.Data);
    if not item0.Checked then continue;
    with Adodm.ADOProc do
    begin
      Close;
      ProcedureName := 'My_sell_bookticket';
      Parameters.Refresh;
      Parameters.Items[1].Value :=_id;
      Parameters.Items[2].Value :=publicinfo.OperID;
      Parameters.Items[3].Value :='0';
      Parameters.Items[4].Value :=-1;
      ExecProc;
      if Parameters.ParamByName('@retcode').Value <>1 then
      begin
        adodm.ADOCN.RollbackTrans;
        publicinfo.showmsg('你所选的预订票售出失败!');
        listview1.Clear ;
        exit;
      end;
    end;
  end;
  adodm.ADOCN.CommitTrans;
  publicinfo.showmsg('你所选的预订票售出成功!');
end;

procedure TfrmsellBookTicket.BitBtn1Click(Sender: TObject);
var
  i,_id:integer;
  item0:TListItem;
begin
  inherited;
  if Application.MessageBox('确实要退订所选的预订票吗?','退订预订票',mb_yesno)=IDNO then exit;
  if listview1.Items.Count<=0 then exit;
  adodm.ADOCN.BeginTrans ;
  for i:=0 to listview1.Items.Count-1 do
  begin
    item0:=listview1.Items[i];
    _id:=integer(item0.Data);
    if not item0.Checked then continue;
    with Adodm.ADOProc do
    begin
      Close;
      ProcedureName := 'My_sell_bookticket';
      Parameters.Refresh;
      Parameters.Items[1].Value :=_id;
      Parameters.Items[2].Value :=publicinfo.OperID;
      Parameters.Items[3].Value :='4';
      Parameters.Items[4].Value :=-1;
      ExecProc;
      if Parameters.ParamByName('@retcode').Value <>1 then
      begin
        adodm.ADOCN.RollbackTrans;
        publicinfo.showmsg('你所选的预订票退订失败!');
        listview1.Clear ;
        exit;
      end;
    end;
  end;
  adodm.ADOCN.CommitTrans;
  publicinfo.showmsg('你所选的预订票退订成功!');
end;

end.

⌨️ 快捷键说明

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