📄 thandle.pas
字号:
unit THandle;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, StdCtrls;
type
TfrmSHandle = class(TForm)
GroupBox3: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
txtBeginMoney: TEdit;
txtEndMoney: TEdit;
cmbCategory: TComboBox;
cmdQuery: TButton;
GroupBox1: TGroupBox;
dgHandle: TDBGrid;
cmdExit: TButton;
Label4: TLabel;
txtPreMoney: TEdit;
Label5: TLabel;
txtNumber: TEdit;
Label6: TLabel;
Label7: TLabel;
txtNowMoney: TEdit;
procedure cmdExitClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure cmdQueryClick(Sender: TObject);
procedure txtBeginMoneyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtEndMoneyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cmbCategoryKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
procedure IniCategoryBox;
public
{ Public declarations }
end;
var
frmSHandle: TfrmSHandle;
implementation
uses dmPawn;
{$R *.DFM}
var
CertiEnterTimes:Integer; //证件名称选择时用到(即组合框用键盘控制时用到)
procedure TfrmSHandle.IniCategoryBox;
begin
with cmbCategory.Items do
begin
with dmPawnFrm do
begin
tblCategory.Open;
tblCategory.First ;
while not tblCategory.Eof do
begin
Add(tblCategory.fieldByName('Name').asstring);
tblCategory.Next ;
end;
tblCategory.Close;
end;
end;
cmbCategory.ItemIndex :=0;
end;
procedure TfrmSHandle.cmdExitClick(Sender: TObject);
begin
Close;
end;
procedure TfrmSHandle.FormShow(Sender: TObject);
var
Sql:string;
PreMoney,NowMoney:Double;
Number:integer;
begin
IniCategoryBox;
PreMoney:=0;
NowMoney:=0;
Number:=0;
Sql:='Select * from Handle_Tbl ';
with dmPawnFrm do
begin
dqDeadDetail.Close;
dqDeadDetail.SQL.Clear;
dqDeadDetail.SQL.Add(Sql);
dqDeadDetail.Open;
if dqDeadDetail.IsEmpty=False then
begin
dqDeadDetail.First;
while not dqDeadDetail.Eof do
begin
PreMoney:=PreMoney+dqDeadDetail.FieldByName('PawnMoney').Asfloat;
NowMoney:=NowMoney+dqDeadDetail.FieldByName('SellMoney').Asfloat;
Number:=Number+dqDeadDetail.FieldByName('PawnNumber').AsInteger;
dqDeadDetail.Next;
end;
txtPreMoney.Text:=format('%12.1f',[PreMoney]);
txtNowMoney.Text:=format('%12.1f',[NowMoney]);
txtNumber.Text:=format('%8d',[Number]);
end
else
begin
txtPreMoney.Text:=format('%12.1f',[0.0]);
txtNowMoney.Text:= format('%12.1f',[0.0]);
txtNumber.Text:='0';
end;
end;
end;
procedure TfrmSHandle.cmdQueryClick(Sender: TObject);
var
MoneyMark,BeginMoneyMark:Boolean;
Sql:string;
PreMoney,NowMoney:Double;
Number:integer;
begin
MoneyMark:=False;
BeginMoneyMark:=False;
PreMoney:=0;
NowMoney:=0;
Number:=0;
Sql:='select * from Handle_Tbl where True ';
if txtBeginMoney.Text<>'' then
begin
if txtEndMoney.Text<>'' then
begin
MoneyMark:=True;
Sql:=Sql+' and PawnMoney>=:BeginMoney and PawnMoney<:EndMoney ';
end
else //只有起始金额
begin
BeginMoneyMark:=True;
Sql:=Sql+' and PawnMoney>=:BeginMoney ';
end;
end;
if cmbCategory.Text<>'' then
begin
Sql:=Sql+' and PawnCategory=:Category ';
end;
with dmPawnFrm do
begin
dqDeadDetail.Close;
dqDeadDetail.SQL.Clear;
dqDeadDetail.SQL.Add(Sql);
if MoneyMark=True then
begin
dqDeadDetail.ParamByName('BeginMoney').AsFloat:=strtofloat(txtBeginMoney.Text);
dqDeadDetail.ParamByName('EndMoney').AsFloat:=strtofloat(txtEndMoney.Text);
end;
if BeginMoneyMark=True then
begin
dqDeadDetail.ParamByName('BeginMoney').AsFloat:=strtofloat(txtBeginMoney.Text);
end;
if cmbCategory.Text<>'' then
begin
dqDeadDetail.ParamByName('Category').Asstring:=cmbCategory.Text;
end;
dqDeadDetail.Open;
//统计金额数量
if dqDeadDetail.IsEmpty=False then
begin
dqDeadDetail.First;
while not dqDeadDetail.Eof do
begin
PreMoney:=PreMoney+dqDeadDetail.FieldByName('PawnMoney').Asfloat;
NowMoney:=NowMoney+dqDeadDetail.FieldByName('SellMoney').Asfloat;
Number:=Number+dqDeadDetail.FieldByName('PawnNumber').AsInteger;
dqDeadDetail.Next;
end;
txtPreMoney.Text:=format('%12.1f',[PreMoney]);
txtNowMoney.Text:=format('%12.1f',[NowMoney]);
txtNumber.Text:=format('%8d',[Number]);
end
else
begin
txtPreMoney.Text:=format('%12.1f',[0.0]);
txtNowMoney.Text:= format('%12.1f',[0.0]);
txtNumber.Text:='0';
end;
end;
end;
procedure TfrmSHandle.txtBeginMoneyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN Then
txtEndMoney.SetFocus;
end;
procedure TfrmSHandle.txtEndMoneyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then
cmbCategory.SetFocus;
end;
procedure TfrmSHandle.cmbCategoryKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then
begin
if CertiEnterTimes=0 then
begin
CertiEnterTimes:=CertiEnterTimes+1;
if SendMessage((Sender as TComBoBox).handle,CB_GetDroppedState,0,0)
=0 then
PostMessage((Sender as TComBoBox).handle,CB_SHOWDROPDOWN,1,0);
end
else
begin
CertiEnterTimes:=0;
cmdQuery.SetFocus;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -