TotalF.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:4k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit TotalF;
  2. interface
  3. uses
  4.   SysUtils, Windows, Messages, Classes, Graphics, Controls,
  5.   StdCtrls, Forms, DBCtrls, DB, Buttons, DBTables, Mask, ExtCtrls,
  6.   Dialogs, Spin, DBActns, ActnList, ImgList, ComCtrls, ToolWin;
  7. type
  8.   TSearchForm = class(TForm)
  9.     DataSource1: TDataSource;
  10.     Table1: TTable;
  11.     Table1EmpNo: TIntegerField;
  12.     Table1LastName: TStringField;
  13.     Table1FirstName: TStringField;
  14.     Table1PhoneExt: TStringField;
  15.     Table1HireDate: TDateTimeField;
  16.     Table1Salary: TCurrencyField;
  17.     ScrollBox: TScrollBox;
  18.     Label1: TLabel;
  19.     Label2: TLabel;
  20.     Label3: TLabel;
  21.     Label4: TLabel;
  22.     Label5: TLabel;
  23.     Label6: TLabel;
  24.     EditEmpNo: TDBEdit;
  25.     EditLastName: TDBEdit;
  26.     EditFirstName: TDBEdit;
  27.     EditPhoneExt: TDBEdit;
  28.     EditHireDate: TDBEdit;
  29.     EditSalary: TDBEdit;
  30.     ToolBar1: TToolBar;
  31.     ToolButton1: TToolButton;
  32.     ToolButton2: TToolButton;
  33.     ToolButton3: TToolButton;
  34.     ToolButton4: TToolButton;
  35.     ToolButton5: TToolButton;
  36.     EditName: TEdit;
  37.     ToolButton7: TToolButton;
  38.     ActionList: TActionList;
  39.     DataSetFirst1: TDataSetFirst;
  40.     DataSetLast1: TDataSetLast;
  41.     DataSetNext1: TDataSetNext;
  42.     DataSetPrior1: TDataSetPrior;
  43.     ActionGoto: TAction;
  44.     ImageList: TImageList;
  45.     ToolButton8: TToolButton;
  46.     SpinEdit1: TSpinEdit;
  47.     ToolButton9: TToolButton;
  48.     ToolButton10: TToolButton;
  49.     ActionTotal: TAction;
  50.     ActionIncrease: TAction;
  51.     procedure FormCreate(Sender: TObject);
  52.     procedure ActionIncreaseExecute(Sender: TObject);
  53.     procedure ActionTotalExecute(Sender: TObject);
  54.     procedure ActionGotoExecute(Sender: TObject);
  55.     procedure ActionGotoUpdate(Sender: TObject);
  56.   private
  57.     { private declarations }
  58.   public
  59.     { public declarations }
  60.   end;
  61. var
  62.   SearchForm: TSearchForm;
  63. implementation
  64. {$R *.DFM}
  65. procedure TSearchForm.FormCreate(Sender: TObject);
  66. begin
  67.   Table1.IndexFieldNames := 'LastName';
  68.   Table1.First;
  69. end;
  70. procedure TSearchForm.ActionIncreaseExecute(Sender: TObject);
  71. var
  72.   Bookmark: TBookmarkStr;
  73.   Total: Real;
  74. begin
  75.   // store the current position in a bookmark
  76.   Bookmark := Table1.Bookmark;
  77.   Table1.DisableControls;
  78.   Total := 0;
  79.   try
  80.     Table1.First;
  81.     while not Table1.EOF do
  82.     begin
  83.       // start edit mode
  84.       Table1.Edit;
  85.       Table1Salary.Value := Round (Table1Salary.Value *
  86.         SpinEdit1.Value) / 100;
  87.       Total := Total + Table1Salary.Value;
  88.       Table1.Next;
  89.     end;
  90.   finally
  91.     // go back to the bookmark
  92.     Table1.Bookmark := Bookmark;
  93.     Table1.EnableControls;
  94.   end;
  95.   MessageDlg ('Sum of new salaries is ' +
  96.     Format ('%m', [Total]), mtInformation, [mbOk], 0);
  97. end;
  98. procedure TSearchForm.ActionTotalExecute(Sender: TObject);
  99. var
  100.   Bookmark: TBookmarkStr;
  101.   Total: Real;
  102. begin
  103.   // store the current position in a bookmark
  104.   Bookmark := Table1.Bookmark;
  105.   Table1.DisableControls;
  106.   Total := 0;
  107.   try
  108.     Table1.First;
  109.     while not Table1.EOF do
  110.     begin
  111.       Total := Total + Table1Salary.Value;
  112.       Table1.Next;
  113.     end;
  114.   finally
  115.     // go back to the bookmark
  116.     Table1.Bookmark := Bookmark;
  117.     Table1.EnableControls;
  118.   end;
  119.   MessageDlg ('Sum of new salaries is ' +
  120.     Format ('%m', [Total]), mtInformation, [mbOk], 0);
  121. end;
  122. procedure TSearchForm.ActionGotoExecute(Sender: TObject);
  123. begin
  124.   if not Table1.Locate ('LastName', EditName.Text, []) then
  125.     MessageDlg ('Name not found', mtError, [mbOk], 0);
  126. end;
  127. procedure TSearchForm.ActionGotoUpdate(Sender: TObject);
  128. begin
  129.   ActionGoto.Enabled := EditName.Text <> '';
  130. end;
  131. end.