📄 syjk1.pas
字号:
unit syjk1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, EHGrids, DBGridEh, DBTables, StdCtrls, ExtCtrls;
type
Tsyjk = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
DBGridEh1: TDBGridEh;
Table1fkfsname: TStringField;
Table1fkje: TCurrencyField;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Table1fkfsid: TStringField;
Query1: TQuery;
Table2: TTable;
Table3: TTable;
Table4: TTable;
Table1yn_ce: TStringField;
Panel1: TPanel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Table5: TTable;
Table6: TTable;
procedure Table1BeforeScroll(DataSet: TDataSet);
procedure DBGridEh1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Table1BeforeEdit(DataSet: TDataSet);
procedure Table1AfterPost(DataSet: TDataSet);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
jet: real;
{ Public declarations }
end;
var
syjk: Tsyjk;
implementation
uses main1, hyk1, print1;
{$R *.DFM}
procedure Tsyjk.Table1BeforeScroll(DataSet: TDataSet);
begin
if Table1.Eof = true then
PostMessage(DBGridEh1.Handle, WM_KEYDOWN, 38, 0);
end;
procedure Tsyjk.DBGridEh1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var dh, bb: string;
label aa;
begin
if key = 27 then close;
if key = 13 then
begin
try
Table1.Post;
except
end;
end;
if key = 120 then
begin
if strtofloat(Label8.Caption) > 0 then
begin
Application.MessageBox('尚有欠款,不能进行交易!', '提示', MB_OK + MB_ICONWARNING);
exit;
end;
pnt.Button6.Click;
dh := Main.StatusBar1.Panels[11].Text;
aa:
try
if Main.StatusBar1.Panels[9].text = '会员' then Table5.AppendRecord([hyk.Edit1.text, dh]);
Table2.AppendRecord([Main.StatusBar1.panels[1].Text,
Main.StatusBar1.panels[6].Text, dh, datetostr(now),
Main.StatusBar1.panels[3].Text,
Label2.Caption, Label10.Caption, formatdatetime('hh', now())]);
except
dh := floattostr(strtofloat(dh) + 1);
bb := '1';
end;
if bb = '1' then
begin
bb:='2';
goto aa;
end;
Table2.Last;
Main.Table1.First;
while not Main.Table1.Eof do
begin
Table3.AppendRecord([Table2.fieldbyname('xsid').asstring,
Main.Table1.fieldbyname('spcode').asstring,
Main.Table1.fieldbyname('dj').asstring,
Main.Table1.fieldbyname('sl').asstring,
Main.Table1.fieldbyname('je').asstring,
Main.Table1.fieldbyname('zk').asstring,
Main.Table1.fieldbyname('zkje').asstring, datetostr(now),
Main.Table1.fieldbyname('sfcx').asstring, nil]);
Main.Table1.Next;
end;
Main.Label7.Caption := Label4.Caption;
Table1.First;
if strtofloat(Label2.Caption) < 0 then
begin
Query1.close;
Query1.sql.clear;
Query1.sql.add('insert into sybjb(skyid,fkfsid,fkje)');
Query1.sql.add('values (:skyid,:fkfsid,:fkje)');
Query1.ParamByName('skyid').asstring := Main.StatusBar1.panels[3].Text;
Query1.ParamByName('fkfsid').asstring := Table1.fieldbyname('fkfsid').asstring;
Query1.ParamByName('fkje').asstring := Label2.Caption;
Query1.ExecSQL;
Table4.AppendRecord([Main.StatusBar1.panels[1].Text,
Main.StatusBar1.panels[6].Text, datetostr(now),
Table2.fieldbyname('xsid').asstring,
Table1.fieldbyname('fkfsid').asstring,
Label2.Caption]);
end;
while not Table1.Eof do
begin
if Table1.FieldByName('fkje').asfloat > 0 then
begin
if Table1.FieldByName('yn_ce').asstring = '是' then
Table4.AppendRecord([Main.StatusBar1.panels[1].Text,
Main.StatusBar1.panels[6].Text, datetostr(now),
Table2.fieldbyname('xsid').asstring,
Table1.fieldbyname('fkfsid').asstring,
Table1.fieldbyname('fkje').asfloat - strtofloat(Label4.Caption)])
else
Table4.AppendRecord([Main.StatusBar1.panels[1].Text,
Main.StatusBar1.panels[6].Text, datetostr(now),
Table2.fieldbyname('xsid').asstring,
Table1.fieldbyname('fkfsid').asstring,
Table1.fieldbyname('fkje').asfloat])
end;
Table1.Next;
end;
Main.Table1.close;
Main.Table1.EmptyTable;
Main.Table1.open;
Panel1.Show;
Label12.Caption := Label4.Caption + ' 元';
syjk.Update;
pnt.Button13.Click; //横线
pnt.Edit1.Text := '金额:' + Label2.Caption + ' ' + '折扣:' + Label10.Caption;
pnt.Button17.Click;
pnt.Edit1.Text := '支付:' + Label7.Caption + ' ' + '找补:' + Label4.Caption;
pnt.Button17.Click;
if Main.StatusBar1.Panels[9].Text = '会员' then
begin
pnt.Edit1.Text := '会员卡号:' + hyk.Edit1.text + ' ' + '会员优惠:' + Main.hyyh.text;
pnt.Button17.Click;
end;
Query1.close;
Query1.sql.clear;
Query1.sql.add('update xsid set xsid=:xsid');
Query1.ParamByName('xsid').asstring := floattostr(strtofloat(dh) + 1);
Query1.ExecSQL;
Table6.close;
Table6.open;
Table6.First;
while not Table6.Eof do
begin
pnt.Edit1.Text := Table6.Fields[0].Text;
pnt.Button17.Click;
Table6.Next;
end;
Table6.close;
pnt.Button18.Click; //走纸
Main.N21.Checked := false;
Main.StatusBar1.Panels[9].Text := '普通';
Main.hyyh.text := '0';
Panel1.Hide;
close;
Main.CheckBox1.Checked := true;
Main.Edit1.SetFocus;
end;
end;
procedure Tsyjk.Table1BeforeEdit(DataSet: TDataSet);
begin
jet := Table1.fieldbyname('fkje').asfloat;
end;
procedure Tsyjk.Table1AfterPost(DataSet: TDataSet);
var jett: real;
begin
if Table1.FieldByName('yn_ce').asstring = '否' then
begin
if Table1.fieldbyname('fkje').asfloat > strtofloat(Label8.Caption) then
begin
jett := jet;
Table1.edit;
Table1.fieldbyname('fkje').asfloat := jett;
jet := 0;
Table1.post;
application.MessageBox('不允许超额付款.', '提示', MB_OK + MB_ICONERROR);
exit;
end;
end;
Query1.close;
Query1.sql.clear;
Query1.sql.add('select sum(fkje) from syfk_t');
Query1.open;
Label7.Caption := Query1.fields[0].asstring;
if strtofloat(Label2.Caption) - strtofloat(Label7.Caption) > 0 then
begin
Label8.Caption := floattostr(strtofloat(Label2.Caption) - strtofloat(Label7.Caption));
Label4.Caption := '0.00';
end
else
begin
Label8.Caption := '0.00';
Label4.Caption := floattostr(strtofloat(Label7.Caption) - strtofloat(Label2.Caption));
end;
end;
procedure Tsyjk.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := cafree;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -