📄 payform.pas
字号:
unit payform;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
Tfpay = class(TForm)
but11: TButton;
but12: TButton;
but13: TButton;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
lmeal: TLabel;
Label3: TLabel;
lchange: TLabel;
Label4: TLabel;
Edit2: TEdit;
GroupBox1: TGroupBox;
Edit3: TEdit;
procedure FormResize(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure but11Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure but13Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Paybutclick(Sender: TObject);
procedure but12Click(Sender: TObject);
procedure Label3DblClick(Sender: TObject);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
paycount:Integer;
paycodeid:string;
public
{ Public declarations }
Vtfstr,Ftablename,Fmancount,Femuch,Fbillflag,Fchangbeforebillid,FPrintbillid:string;
end;
var
fpay: Tfpay;
paybut:array[1..9] of TButton;
payid:array[1..9] of TLabel;
implementation
uses SnackDM,snmai,mealform, morepay,delpay;
{$R *.dfm}
procedure Tfpay.Paybutclick(Sender:TObject);
Var bi:Integer;
begin
for bi:=1 to paycount do
begin
if sender=paybut[bi] then
begin
label4.Caption:=paybut[bi].Caption;
paycodeid:=payid[bi].Caption;
edit1.SetFocus;
if (paycodeid='102') or (paycodeid='103') then edit2.Visible:=True;
end;
end;
end;
procedure Tfpay.FormResize(Sender: TObject);
begin
if Vtfstr='YM' then
begin
if fpay.Height<>306 then fpay.Height:=306;
if fpay.Width<>666 then fpay.Width:=666;
end else begin
if fpay.Height<>306 then fpay.Height:=306;
if fpay.Width<>330 then fpay.Width:=330;
end;
end;
procedure Tfpay.FormCreate(Sender: TObject);
begin
self.Caption:=DataM.SPLanguage.ReadString('captions','00052','');
but11.Caption:=DataM.SPLanguage.ReadString('captions','00001','');
but12.Caption:=DataM.SPLanguage.ReadString('captions','00002','');
but13.Caption:=DataM.SPLanguage.ReadString('captions','00034','');
label1.Caption:=DataM.SPLanguage.ReadString('captions','00049','');
label2.Caption:=DataM.SPLanguage.ReadString('captions','00050','');
label3.Caption:=DataM.SPLanguage.ReadString('captions','00051','');
label4.Caption:=DataM.SPLanguage.ReadString('captions','00110','');
end;
procedure Tfpay.but11Click(Sender: TObject);
begin
edit1.Clear;
edit1.SetFocus;
end;
procedure Tfpay.Edit1KeyPress(Sender: TObject; var Key: Char);
var p:Integer;
begin
if key='.' then
begin
p:=pos('.',Trim(edit1.Text));
if p>0 then key:=#0;
end else if (key<'0') or (key>'9') then key:=#0;
end;
procedure Tfpay.but13Click(Sender: TObject);
begin
self.Close;
self.Release;
end;
procedure Tfpay.FormShow(Sender: TObject);
Var bu,buh,buw:Integer;
begin
lmeal.Caption:=Femuch;
with datam.morepayado do
begin
Close;
SQL.Clear;
SQL.Add('select * from snmorepay');
Open;
paycount:=Recordcount;
if paycount<=0 then Exit else
begin
First;
buh:=16;
buw:=1;
for bu:=1 to paycount do
begin
paybut[bu]:=TButton.Create(nil);
paybut[bu].Parent:=self;
paybut[bu].Height:=64;
paybut[bu].Width:=100;
paybut[bu].Caption:=Trim(FieldValues['payname']);
paybut[bu].Left:=102*(buw-1)+340;
paybut[bu].Top:=buh;
paybut[bu].OnClick:=Paybutclick;
if buw=3 then
begin
buw:=1;
buh:=buh+66;
end else begin
buw:=buw+1;
end;
payid[bu]:=TLabel.Create(nil);
payid[bu].Parent:=paybut[bu];
payid[bu].Caption:=Trim(FieldValues['payid']);
payid[bu].Visible:=False;
Next;
end;
end;
end;
paybut[1].Default:=True;
paycodeid:='100';
end;
procedure Tfpay.but12Click(Sender: TObject);
Var paymoney:Real;
paydate,paytime:string;
cashstr,cardcashstr,billpaytime,cpaymoney:string;
pmid,pmlname,punit,pkw,pmtime,puid,puname,ptcflag,ptxid,ptctime,fpkflag,pmprice,pcount:string;
begin
paymoney:=StrToFloat(edit1.Text)-StrToFloat(lmeal.Caption);
lchange.Caption:=FloatToStr(paymoney);
if paymoney<0 then lmeal.Caption:=FloatToStr(Abs(paymoney)) else lmeal.Caption:='0';
billpaytime:=TimeToStr(Time);
if paymoney>=0 then
begin
messagebeep(0);
messagebox(0,PChar(''+DataM.SPLanguage.ReadString('msgbox','0036','')+''),PChar(''+DataM.SPLanguage.ReadString('msgbox','0037','')+''),MB_ICONEXCLAMATION or MB_OK);
if paycodeid='103' then
begin
cashstr:=Trim(lmeal.Caption);
cardcashstr:=Trim(edit1.Text);
end else begin
cashstr:=Trim(edit1.Text);
cardcashstr:='0';
end;
end else begin
messagebeep(0);
messagebox(0,PChar(''+DataM.SPLanguage.ReadString('msgbox','0035','')+''),PChar(''+DataM.SPLanguage.ReadString('msgbox','0037','')+''),MB_ICONEXCLAMATION or MB_OK);
cashstr:=Trim(edit1.Text);
cardcashstr:='0';
edit1.Text:=FloatToStr(Abs(paymoney));
edit1.SelectAll;
edit1.SetFocus;
end;
with datam.freeado do
begin
Close;
SQL.Clear;
SQL.Add('insert paybillmemo(billid,paycode,payname,paycash,paycardid,cardcash,paytime) Values('''+Trim(edit3.Text)+''','''+paycodeid+''','''+label4.Caption+''','''+cashstr+''','''+Trim(edit2.Text)+''','''+cardcashstr+''','''+billpaytime+''')');
ExecSQL;
end;
if paymoney>=0 then
begin
but13Click(Sender);
with datam.freeado do
begin
Close;
SQL.Clear;
SQL.Add('select * from sntempmeal where tablename='''+Ftablename+'''');
Open;
First;
if RecordCount>0 then
begin
while not Eof do
begin
pmid:=FieldValues['mealid'];
pmlname:=FieldValues['mealname'];
punit:=FieldValues['unit'];
pkw:=FieldValues['mealkw'];
pmtime:=FieldValues['mealtime'];
puid:=FieldValues['userid'];
puname:=FieldValues['idname'];
ptcflag:=FieldValues['tcflag'];
ptxid:=FieldValues['txid'];
ptctime:=FieldValues['tctime'];
fpkflag:=FieldValues['pkflag'];
pmprice:=FieldValues['mealprice'];
pcount:=FieldValues['mealcount'];
with datam.bfreeado do
begin
Close;
SQL.Clear;
SQL.Add('insert snsalemeal Values('''+edit3.Text+''','''+pmid+''','''+pmlname+''','''+pmprice+''','''+punit+''','''+pcount+''','''+pkw+''','''+pmtime+''','''+puid+''','''+puname+''','''+ptcflag+''','''+ptxid+''','''+ptctime+''','''+Ftablename+''','''+fpkflag+''')');
ExecSQL;
end;
Next;
end;
end;
with datam.bfreeado do
begin
Close;
SQL.Clear;
SQL.Add('select sum(paycash) buincome from paybillmemo where billid='''+edit3.Text+'''');
Open;
cpaymoney:=FieldValues['buincome'];
end;
if Fbillflag<>'Changbill' then
begin
paydate:=DateToStr(Date);
paytime:=TimeToStr(Time);
with datam.freeado do
begin
Close;
SQL.Clear;
SQL.Add('insert snsalebill Values('''+edit3.Text+''',0,'''+Ftablename+''','''+Fmancount+''','''+cpaymoney+''','''+Femuch+''','''+paydate+''','''+paytime+''','''',''A'','''+puid+''','''+puname+''')');
ExecSQL;
end;
end else begin
with datam.freeado do
begin
Close;
SQL.Clear;
SQL.Add('update snsalebill set mancount='''+Fmancount+''',cpaycash='''+cpaymoney+''',billpay='''+Femuch+''',userid='''+puid+''',idname='''+puname+''' where billid='''+Fchangbeforebillid+'''');
ExecSQL;
end;
end;
with datam.freeado do
begin
Close;
SQL.Clear;
SQL.Add('Delete sntempmeal where tablename='''+Ftablename+'''');
ExecSQL;
end;
meal.Close;
meal.Release;
end;
end;
end;
procedure Tfpay.Label3DblClick(Sender: TObject);
begin
edit3.Visible:=Not edit3.Visible;
end;
procedure Tfpay.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_F9 then
begin
fdelpay:=Tfdelpay.Create(nil);
fdelpay.DelSQLStr:='select payname,paycash,paycardid,cardcash from paybillmemo where billid='''+edit3.Text+'''';
fdelpay.ShowModal;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -