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

📄 ydgz.pas

📁 工资管理系统的代码实例
💻 PAS
字号:
unit Ydgz;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, DB, Grids, DBGrids, ActnList, GzEdit, ADODB,
  ComCtrls, GZGLCommon, Menus;

type
  TYdgzForm = class(TForm)
    dsYdgz: TDataSource;
    pnlYdxz: TPanel;
    lblSelYear: TLabel;
    UpDownYear: TUpDown;
    edtYear: TEdit;
    btOK: TButton;
    cbMonth: TComboBox;
    dbYdgz: TDBGrid;
    lblSelMonth: TLabel;
    pnlToolBar: TPanel;
    btDel: TButton;
    alYdgz: TActionList;
    acOk: TAction;
    acAdd: TAction;
    acDel: TAction;
    btAdd: TButton;
    adoqYdgz: TADOQuery;
    adoqYdgzZybh: TStringField;
    adoqZyxx: TADOQuery;
    adoqYdgzXm: TStringField;
    adoqYdgzJbgz: TFloatField;
    adoqYdgzZwgz: TFloatField;
    adoqYdgzBt: TFloatField;
    adoqYdgzKq: TFloatField;
    adoqYdgzSqgz: TFloatField;
    adoqYdgzSj: TFloatField;
    adoqYdgzSfgz: TFloatField;
    adoqYdgzNd: TIntegerField;
    adoqYdgzYd: TIntegerField;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure acOkExecute(Sender: TObject);
    procedure acAddExecute(Sender: TObject);
    procedure acDelExecute(Sender: TObject);
    procedure alYdgzUpdate(Action: TBasicAction; var Handled: Boolean);
    procedure adoqYdgzCalcFields(DataSet: TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


implementation

{$R *.dfm}

procedure TYdgzForm.FormCreate(Sender: TObject);
var
  l_adoq: TADOQuery;
begin
  l_adoq := TADOQuery.Create(nil);
  with l_adoq do
  try
    Connection := AdoGzgl;
    l_adoq.SQL.Text := 'Select * from GzglField where GridName = ''dbYdgz''';
    Open;
    InitDBGrid(l_adoq, dbYdgz);
    Close;
  finally
    Free;
  end;

  with adoqZyxx do
  begin
    Connection := AdoGzgl;
    SQL.Text := 'Select Zybh, Xm From Zyxx';
    Open;
  end;
end;

procedure TYdgzForm.acOkExecute(Sender: TObject);
begin
  if cbMonth.ItemIndex <> -1 then
  begin
    with adoqYdgz do
    begin
      Connection := AdoGzgl;
      SQL.Text := 'Select * from Ydgz Where ND = ' +
        Trim(edtYear.Text) +  ' and YD = ' + Trim(cbMonth.Text);
      Open;
    end;
  end
  else
    ShowMessage('请选择月份!');
end;

procedure TYdgzForm.acAddExecute(Sender: TObject);
begin
  with TGzEditForm.Create(self, StrToInt(edtYear.Text), StrToInt(cbMonth.Text)) do
  try
    ShowModal;
    if ModalResult = mrOk then
    begin
      // 添加到数据库
      with adoqYdgz, GzRec do
      begin
        Append;
        FieldByName('Zybh').AsString := Zybh;
        FieldByName('Nd').AsInteger := StrToInt(edtYear.Text);
        FieldByName('Yd').AsInteger := StrToInt(cbMonth.Text);
        FieldByName('Jbgz').AsFloat := Jbgz;
        FieldByName('Zwgz').AsFloat := Zwgz;
        FieldByName('Bt').AsFloat := Bt;
        FieldByName('Kq').AsFloat := Kq;
        FieldByName('Sj').AsFloat := Sj;
        Post;
      end;
    end;
  finally
    Free;
  end;
end;

procedure TYdgzForm.acDelExecute(Sender: TObject);
begin
  if Application.MessageBox('是否删除此记录?', '确认', 1) = 1 then
    adoqYdgz.Delete;
end;

procedure TYdgzForm.FormDestroy(Sender: TObject);
begin
  with adoqYdgz do
    if Active then Close;

  with adoqZyxx do
    if Active then Close;
end;

procedure TYdgzForm.alYdgzUpdate(Action: TBasicAction;
  var Handled: Boolean);
begin
  with adoqYdgz do
  begin
    acAdd.Enabled := Active;
    acDel.Enabled := not (Bof and Eof) and Active;
  end;
end;

procedure TYdgzForm.adoqYdgzCalcFields(DataSet: TDataSet);
var
  l_Jbgz, l_Zwgz, l_Bt, l_Kq, l_Sj: Double;
begin
  with DataSet do
  begin
    l_Jbgz := FieldByName('Jbgz').AsFloat;
    l_Zwgz := FieldByName('Zwgz').AsFloat;
    l_Bt := FieldByName('Bt').AsFloat;
    l_Kq := FieldByName('Kq').AsFloat;
    l_Sj := FieldByName('Sj').AsFloat;
    FieldByName('Sqgz').AsFloat := l_Jbgz + l_Zwgz + l_Bt + l_Kq;
    FieldByName('Sfgz').AsFloat := l_Jbgz + l_Zwgz + l_Bt + l_Kq - l_Sj;
  end;
end;

end.

⌨️ 快捷键说明

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