⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 thandle.~pa

📁 一个典当行的业务管理系统程序
💻 ~PA
字号:
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;
          end;
     end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -