📄 unit_frmsellbookticket.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 + -