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

📄 zyxxwh.pas

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

interface

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

type
  TZyxxwhForm = class(TForm)
    dbZyxx: TDBGrid;
    dsZyxx: TDataSource;
    adotZyxx: TADOTable;
    adoqGzjb: TADOQuery;
    adotZyxxZybh: TStringField;
    adotZyxxXm: TStringField;
    adotZyxxXb: TStringField;
    adotZyxxBmmc: TStringField;
    adotZyxxGzzw: TStringField;
    adotZyxxJbID: TIntegerField;
    adotZyxxJbmc: TStringField;
    pmZyxx: TPopupMenu;
    pnDel: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure pnDelClick(Sender: TObject);
    procedure pmZyxxPopup(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

implementation

{$R *.dfm}

procedure TZyxxwhForm.FormCreate(Sender: TObject);
var
  l_adoq: TADOQuery;
  i: integer;
begin
  // 取得adotZyxx的JbID字段的Lookup数据集
  with adoqGzjb do
  begin
    Connection := AdoGzgl;
    SQL.Text := 'Select * from Gzjb';
    Open;
  end;

  // 打开职员信息表
  with adotZyxx do
  begin
    Connection := AdoGzgl;
    Open;
  end;

  // 初始化Grid
  l_adoq := TADOQuery.Create(nil);
  with l_adoq do
  try
    Connection := AdoGzgl;
    l_adoq.SQL.Text := 'Select * from GzglField where GridName = ''dbZyxx''';
    Open;
    InitDBGrid(l_adoq, dbZyxx);
    Close;
  finally
    Free;
  end;

  // 给性别字段赋备选值
  for i := 0 to dbZyxx.Columns.Count - 1 do
  begin
    if dbZyxx.Columns[i].FieldName = 'Xb' then
    begin
      dbZyxx.Columns[i].PickList.Add('男');
      dbZyxx.Columns[i].PickList.Add('女');
      Break;
    end;
  end;
end;

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

  with adoqGzjb do
    if Active then Close;
end;

procedure TZyxxwhForm.pnDelClick(Sender: TObject);
begin
  if Application.MessageBox('是否删除此记录?', '确认', 1) = 1 then
  begin
    // 查询是否有工资记录,如有则不能删除
    with TADOQuery.Create(nil) do
    try
      Connection := AdoGzgl;
      Sql.Text := 'Select Zybh from Ydgz where Zybh = ' +
        QuotedStr(adotZyxx.fieldByname('Zybh').AsString);
      Open;
      if Recordcount > 0 then
        Application.MessageBox('该职员已有工资记录,不能删除!', '提示')
      else
        adotZyxx.Delete;
      Close;
    finally
      Free;
    end;
  end;
end;

procedure TZyxxwhForm.pmZyxxPopup(Sender: TObject);
begin
  pnDel.Enabled := not (adotZyxx.Bof and adotZyxx.Eof);
end;

end.

⌨️ 快捷键说明

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