📄 syjk1.pas
字号:
unit syjk1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
EHGrids, DBGridEh, DBTables, Db, StdCtrls, ADODB;
type
Tsyjk = class(TForm)
Label1: TLabel;
Edit1: TEdit;
DataSource1: TDataSource;
Button1: TButton;
Label2: TLabel;
Edit2: TEdit;
DBGridEh1: TDBGridEh;
Table1: TADOTable;
Query1: TADOQuery;
Query2: TADOQuery;
Table1fkfs: TStringField;
Table1ysje: TBCDField;
Table1ssje: TBCDField;
Table1ce: TBCDField;
procedure FormCreate(Sender: TObject);
procedure Edit1Exit(Sender: TObject);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBGridEh1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Table1BeforeScroll(DataSet: TDataSet);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
syjk: Tsyjk;
implementation
uses MainForm1;
{$R *.DFM}
procedure Tsyjk.FormCreate(Sender: TObject);
begin
Edit2.Text := datetostr(now());
end;
procedure Tsyjk.Edit1Exit(Sender: TObject);
begin
Query1.close;
Query1.sql.clear;
Query1.sql.add('delete from syjkb_t');
Query1.ExecSQL;
Table1.Close;
Table1.Open;
Query1.close;
Query1.sql.clear;
Query1.sql.add('select name,sum(fkje),0,sum(fkje) from syjk_v');
Query1.sql.add('where zt=:zt and skyid=:skyid');
Query1.sql.add('group by name');
Query1.Parameters[0].Value := '未结款';
Query1.Parameters[1].Value := Edit1.text;
Query1.open;
if Query1.RecordCount > 0 then
begin
Query1.First;
while not Query1.Eof do
begin
Table1.InsertRecord([Query1.fields[0].value, Query1.fields[1].value, 0, Query1.fields[3].value]);
Query1.Next;
end;
end
else
begin
Edit1.SetFocus;
end;
end;
procedure Tsyjk.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 13 then DBGridEh1.SetFocus;
end;
procedure Tsyjk.DBGridEh1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 13 then
begin
try
Table1.Post;
except
end;
Table1.Edit;
Table1.FieldByName('ce').asfloat := Table1.FieldByName('ssje').asfloat - Table1.FieldByName('ysje').asfloat;
Table1.post;
end;
end;
procedure Tsyjk.Table1BeforeScroll(DataSet: TDataSet);
begin
if Table1.Eof = true then
PostMessage(DBGridEh1.Handle, WM_KEYDOWN, 38, 0);
end;
procedure Tsyjk.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
Table1.close;
end;
procedure Tsyjk.Button1Click(Sender: TObject);
begin
if application.MessageBox('是否现在结款?', '提示', MB_YESNO + MB_ICONQUESTION) = IDNO then exit;
if Table1.RecordCount = 0 then exit;
table1.First;
while not Table1.Eof do
begin
Query2.close;
Query2.sql.clear;
Query2.sql.add('insert into syjkb(jkrq,syy,fkfs,ysje,ssje)');
Query2.sql.add('values (:jkrq,:syy,:fkfs,:ysje,:ssje)');
Query2.Parameters[0].Value := datetostr(now());
Query2.Parameters[1].Value := Edit1.Text;
Query2.Parameters[2].Value := Table1.fieldbyname('fkfs').asstring;
Query2.Parameters[3].Value := Table1.fieldbyname('ysje').asfloat;
Query2.Parameters[4].Value := Table1.fieldbyname('ssje').asfloat;
Query2.ExecSQL;
Table1.Next;
end;
Query2.close;
Query2.sql.clear;
Query2.sql.add('delete from syfk where xsid in(select xsid from spxs_m where skyid=:id)');
Query2.Parameters[0].Value := Edit1.text;
Query2.ExecSQL;
Query1.close;
Query1.sql.clear;
Query1.sql.add('delete from syjkb_t');
Query1.ExecSQL;
Table1.Close;
Table1.Open;
Edit1.Clear;
Edit1.SetFocus;
end;
procedure Tsyjk.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action := cafree;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -