📄 conut.~pas
字号:
unit conut;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, Grids, DBGrids, ADODB, ExtCtrls, StdCtrls, Buttons, ComCtrls;
type
Tconfm = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
conado: TADOQuery;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
rzdh: TLabeledEdit;
SpeedButton1: TSpeedButton;
xfsj: TDateTimePicker;
Label1: TLabel;
xfje: TLabeledEdit;
Label2: TLabel;
xfnr: TComboBox;
Label3: TLabel;
bz: TEdit;
qdbt: TBitBtn;
sxbt: TBitBtn;
xgbt: TBitBtn;
scbt: TBitBtn;
gbbt: TBitBtn;
zdbh: TEdit;
procedure FormCreate(Sender: TObject);
procedure rzdhKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure xfjeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure xfnrKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure bzKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure qdbtClick(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure scbtClick(Sender: TObject);
procedure gbbtClick(Sender: TObject);
procedure xgbtClick(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
confm: Tconfm;
implementation
uses inlistut;
{$R *.dfm}
procedure Tconfm.FormCreate(Sender: TObject);
var
Present: TDateTime;
Year, Month, Day: Word;//定义时间变量
sno,cno,vno:string;//单据编号变量
llen:integer; //获取长度的变量
begin
//自动获取预定最大单据号
present:=now;
DecodeDate(Present, Year, Month, Day);
with conado do
begin
close;
sql.Clear;
sql.Add('select * from 帐单明细表');
open;
if recordcount<1 then
begin
cno:='00001';
vno:='ZDBH'+inttostr(Year)+inttostr(Month)+inttostr(Day)+cno;
end
else
begin
close;
sql.Clear;
sql.Add('select max(帐单编号) as maxno from 帐单明细表');
open;
sno:=fieldbyname('maxno').AsString;
llen:=strtoint(copy(sno,11,5))+1;
case length(inttostr(llen)) of
1:cno:='0000'+inttostr(strtoint(copy(sno,13,5))+1);
2:cno:='000'+inttostr(strtoint(copy(sno,13,5))+1);
3:cno:='00'+inttostr(strtoint(copy(sno,13,5))+1);
4:cno:='0'+inttostr(strtoint(copy(sno,13,5))+1);
5:cno:=inttostr(strtoint(copy(sno,13,5))+1);
else
cno:='00001';
end;
vno:='ZDBH'+inttostr(Year)+inttostr(Month)+inttostr(Day)+cno;
end;
end;
zdbh.Text:=vno;
rzdh.Text:='';
xfsj.Date:=date();
xfje.Text:='';
xfnr.Text:='';
bz.Text:='';
with conado do
begin
close;
sql.Clear;
sql.Add('select * from 帐单明细表 order by 编号');
open;
end;
DBGrid1.Columns[0].Width:=0;
end;
procedure Tconfm.rzdhKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
if rzdh.Text<>'' then
xfje.SetFocus
else
begin
showmessage('请导入入住单号!');
exit;
end;
end;
end;
procedure Tconfm.xfjeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
if xfje.Text<>'' then
xfnr.SetFocus
else
begin
showmessage('请输入消费金额!');
exit;
end;
end;
end;
procedure Tconfm.xfnrKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
if xfnr.Text<>'' then
bz.SetFocus
else
begin
showmessage('请选择消费内容!');
exit;
end;
end;
end;
procedure Tconfm.bzKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
qdbt.SetFocus;
end;
procedure Tconfm.qdbtClick(Sender: TObject);
begin
if rzdh.Text='' then
begin
showmessage('请导入入住单号!');
exit;
end;
if xfje.Text='' then
begin
showmessage('请输入消费金额!');
exit;
end;
if xfnr.Text='' then
begin
showmessage('请选择消费内容!');
exit;
end;
with conado do
begin
close;
sql.Clear;
sql.Add('insert into 帐单明细表(帐单编号,入住单号,消费金额,消费内容,消费时间,备注,id) ');
sql.Add('values(:zdbh,:rzdh,:xfje,:xfnr,:xfsj,:bz,:id)');
Parameters.ParamByName('zdbh').Value:=trim(zdbh.Text);
Parameters.ParamByName('rzdh').Value:=trim(rzdh.Text);
Parameters.ParamByName('xfje').Value:=trim(xfje.Text);
Parameters.ParamByName('xfnr').Value:=trim(xfnr.Text);
Parameters.ParamByName('xfsj').Value:=datetostr(xfsj.date);
Parameters.ParamByName('bz').Value:=trim(bz.Text);
Parameters.ParamByName('id').Value:='';
execsql;
end;
showmessage('提交成功!');
sxbt.Click;
end;
procedure Tconfm.DBGrid1CellClick(Column: TColumn);
begin
with conado do
begin
zdbh.Text:=fieldbyname('帐单编号').AsString;
rzdh.Text:=fieldbyname('入住单号').AsString;
xfsj.Date:=fieldbyname('消费时间').AsDateTime;
xfje.Text:=fieldbyname('消费金额').AsString;
xfnr.Text:=fieldbyname('消费内容').AsString;
bz.Text:=fieldbyname('备注').AsString;
end;
end;
procedure Tconfm.scbtClick(Sender: TObject);
begin
if zdbh.Text='' then
begin
showmessage('请点击要删除的帐单编号');
exit;
end;
with conado do
begin
close;
sql.Clear;
sql.Add('delete * from 帐单明细表 where 帐单编号=:zdbh');
Parameters.ParamByName('zdbh').Value:=trim(zdbh.Text);
try
if messagedlg('确定删除吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin
execsql;
showmessage('删除成功');
end;
except
showmessage('删除失败');
end;
end;
sxbt.Click;
end;
procedure Tconfm.gbbtClick(Sender: TObject);
begin
close;
end;
procedure Tconfm.xgbtClick(Sender: TObject);
begin
if zdbh.Text='' then
begin
showmessage('请点击要修改的帐单编号');
exit;
end;
if rzdh.Text='' then
begin
showmessage('请导入入住单号!');
exit;
end;
if xfje.Text='' then
begin
showmessage('请输入消费金额!');
exit;
end;
if xfnr.Text='' then
begin
showmessage('请选择消费内容!');
exit;
end;
if zdbh.Text='' then
with conado do
begin
close;
sql.Clear;
sql.Add('update 帐单明细表 set 入住单号=:rzdh,消费金额=:xfje,消费内容=:xfnr,消费时间=:xfsj,备注=:bz where 帐单编号=:zdbh');
Parameters.ParamByName('zdbh').Value:=trim(zdbh.Text);
Parameters.ParamByName('rzdh').Value:=trim(rzdh.Text);
Parameters.ParamByName('xfje').Value:=trim(xfje.Text);
Parameters.ParamByName('xfnr').Value:=trim(xfnr.Text);
Parameters.ParamByName('xfsj').Value:=datetostr(xfsj.date);
Parameters.ParamByName('bz').Value:=trim(bz.Text);
Parameters.ParamByName('id').Value:='';
execsql;
end;
showmessage('修改成功!');
sxbt.Click;
end;
procedure Tconfm.SpeedButton1Click(Sender: TObject);
begin
inlistfm:=Tinlistfm.create(self);
inlistfm.show;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -