📄 check.pas
字号:
unit check;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, GridsEh, DBGridEh;
type
TCheckForm = class(TForm)
GroupBox1: TGroupBox;
DBGridEh: TDBGridEh;
GroupBox2: TGroupBox;
Label1: TLabel;
ProgressBar1: TProgressBar;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure WMNCHitTest(var Msg:TMessage);message WM_NCHITTEST;
private
{ Private declarations }
public
{ Public declarations }
end;
var
CheckForm: TCheckForm;
implementation
{$R *.dfm}
uses DataModule;
procedure TCheckForm.WMNCHitTest(var Msg:TMessage);
begin
inherited;
Msg.Result:=HTCLIENT;
end;
procedure TCheckForm.Button1Click(Sender: TObject);
begin
progressbar1.Min:=0;
progressbar1.Step:=1;
progressbar1.Position:=0;
DataForm.ABSQuery1.SQL.Clear;
DataForm.ABSQuery1.SQL.Add('Create Table MEMORY lsk (Account String(10),AccountName String(30),Present Float,Calculate Float,chae Float)');
DataForm.ABSQuery1.ExecSQL;
DataForm.ABSQuery1.SQL.Clear;
DataForm.ABSQuery1.SQL.Add('select Account,AccountName,Original,Present from zhanghu');
DataForm.ABSQuery1.Open;
if DataForm.ABSQuery1.RecordCount=0 then
application.MessageBox('目前不存在核算帐户,不需要数据一致性检查!','提示信息',mb_ok+MB_ICONINFORMATION)
else begin
ProgressBar1.Max:=DataForm.ABSQuery1.RecordCount;
DataForm.ABSQuery2.SQL.Clear;
DataForm.ABSQuery2.SQL.Add('insert into MEMORY lsk (Account,AccountName,Present,Calculate) values (:cs1,:cs2,:cs3,:cs4)');
DataForm.ABSQuery3.SQL.Clear;
DataForm.ABSQuery3.SQL.Add('select Account,sum(income) as income,sum(payout) as payout from szData where Account=:cs group by Account');
DataForm.ABSQuery1.First;
while not DataForm.ABSQuery1.Eof do
begin
DataForm.ABSQuery3.Close;
DataForm.ABSQuery3.ParamByName('cs').AsString:=DataForm.ABSQuery1.FieldByName('Account').AsString;
DataForm.ABSQuery3.Open;
DataForm.ABSQuery2.ParamByName('cs1').AsString:=DataForm.ABSQuery1.FieldByName('Account').AsString;
DataForm.ABSQuery2.ParamByName('cs2').AsString:=DataForm.ABSQuery1.FieldByName('AccountName').AsString;
DataForm.ABSQuery2.ParamByName('cs3').AsFloat:=DataForm.ABSQuery1.FieldByName('Present').AsFloat;
DataForm.ABSQuery2.ParamByName('cs4').AsFloat:=DataForm.ABSQuery1.FieldByName('Original').AsFloat+DataForm.ABSQuery3.FieldByName('Income').AsFloat-DataForm.ABSQuery3.FieldByName('Payout').AsFloat;
DataForm.ABSQuery2.ExecSQL;
ProgressBar1.StepIt;
DataForm.ABSQuery1.Next;
end;
DataForm.ABSQuery1.SQL.Clear;
DataForm.ABSQuery1.SQL.Add('update MEMORY lsk set chae=Calculate-Present');
DataForm.ABSQuery1.ExecSQL;
DataForm.CheckQuery.SQL.Clear;
DataForm.CheckQuery.SQL.Add('select * from MEMORY lsk');
DataForm.CheckQuery.Open;
DataForm.ABSQuery1.SQL.Clear;
DataForm.ABSQuery1.SQL.Add('Drop Table MEMORY lsk');
DataForm.ABSQuery1.ExecSQL;
end;
end;
procedure TCheckForm.Button2Click(Sender: TObject);
begin
close
end;
procedure TCheckForm.FormCreate(Sender: TObject);
begin
DataForm.DataSource.DataSet:=DataForm.CheckQuery;
DBGridEh.DataSource:=DataForm.DataSource;
end;
procedure TCheckForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DataForm.DataSource.DataSet:=nil;
DBGridEh.DataSource:=nil;
Action:=CaFree;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -