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

📄 bjda.pas

📁 人力资源管理源代码
💻 PAS
字号:
unit Bjda;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, DBCtrls, Mask, ComCtrls,
  HumanResourceControls, Grids, DBGrids, DB, ADODB;

type
  TFrmBjda = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    DBGrid1: TDBGrid;
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    DBNavigator1: TDBNavigator;
    Button1: TButton;
    ADODataSet1: TADODataSet;
    DataSource1: TDataSource;
    ADODataSet2: TADODataSet;
    DBEdtDah: TDBEdit;
    DBEdtClmc: TDBEdit;
    DBEdtClfs: TDBEdit;
    DBEdtClys: TDBEdit;
    Label5: TLabel;
    DBDTPZcrq: TDBDateTimePicker;
    ADODataSet1DAXX_GH: TWideStringField;
    ADODataSet1DAXX_DAH: TWideStringField;
    ADODataSet1DAXX_CLMC: TWideStringField;
    ADODataSet1DAXX_CLFS: TSmallintField;
    ADODataSet1DAXX_CLYS: TSmallintField;
    ADODataSet1DAXX_ZCRQ: TDateTimeField;
    procedure FormCreate(Sender: TObject);
    procedure ADODataSet1NewRecord(DataSet: TDataSet);
    procedure ADODataSet1BeforePost(DataSet: TDataSet);
    procedure DBGrid1TitleClick(Column: TColumn);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    FGh:string;        //工号私有变量
    procedure setGh(value:string);   //设置工号
  public
    { Public declarations }
    property Gh:string read FGh write setGh ;  //工号属性
  end;

var
  FrmBjda: TFrmBjda;

implementation
uses
  dm;

{$R *.dfm}

procedure TFrmBjda.setGh(value:string);  //设置当前编辑档案信息的工号
begin
  FGh := value;
  if trim(FGh) = '' then //工号为空
  begin
    ADODataSet1.Active := false;
  end
  else
  begin
    //下面查找是否有工号为FGh的员工
    ADODataSet2.Active := false;
    ADODataSet2.CommandText := 'select * from jbzl where trim(JBZL_GH)' +
          ' = ''' + trim(FGh) + '''';
    ADODataSet2.Active := true;
    if ADODataSet2.IsEmpty then //此员工不存在
    begin
      ShowMessage('未找到工号为' + FGh + '的员工');
      ADODataSet1.Active := false;
    end
    else   //存在此员工
    begin
      Caption := '编辑档案信息:' +
          ADODataSet2.fieldbyName('JBZL_XM').AsString ;//设置窗口标题
      //下面查找数据库中已有的档案信息
      ADODataSet1.Active := false;
      ADODataSet1.CommandText := 'select * from daxx where trim(daxx_Gh)' +
            ' = ''' + trim(FGh) + ''' order by daxx_dah';
      ADODataSet1.Active := true;
    end;// if ADODataSet1.IsEmpty
  end; // if trim(FGh) <> ''
end;

procedure TFrmBjda.FormCreate(Sender: TObject);
begin
  DBDTPZcrq.MaxDate := now;
end;

procedure TFrmBjda.ADODataSet1NewRecord(DataSet: TDataSet);
begin
  ADODataSet1.Fields.FieldByName('DAXX_GH').Value := Gh;
end;

procedure TFrmBjda.ADODataSet1BeforePost(DataSet: TDataSet);
var
  tempInt:integer;
begin
  if  trim(DBEdtDah.Text) = '' then  //未输入档案号
  begin
    ShowMessage('请输入档案号!');
    Abort ;
    DBEdtDah.SetFocus ;
    exit;
  end;

  if trim(DBEdtClmc.Text) = '' then   //未输入材料名称
  begin
    ShowMessage('请输入材料名称!');
    Abort ;
    DBEdtClmc.SetFocus ;
    exit;
  end;

  try
    tempInt := StrToInt(DBEdtClfs.Text);
  except                     //材料份数输入的不是整数
    ShowMessage('请输入正确的材料份数!');
    Abort ;
    DBEdtClfs.SetFocus ;
    exit;
  end;

  if tempInt <= 0 then     //输入的材料份数为负数
  begin
    ShowMessage('请输入正确的材料份数!');
    Abort ;
    DBEdtClfs.SetFocus ;
    exit;
  end;

  try
    tempInt := StrToInt(DBEdtClys.Text);
  except
    ShowMessage('请输入正确的材料页数!');//输入的材料页数不是整数
    Abort ;
    DBEdtClys.SetFocus ;
    exit;
  end;

  if tempInt <= 0 then
  begin
    ShowMessage('请输入正确的材料页数!'); //输入的材料页数为负数或0
    Abort ;
    DBEdtClys.SetFocus ;
    exit;
  end;

  if ADODataSet1.FieldByName('DAXX_ZCRQ').AsVariant
      = Null then   //材料制成日期赋值
    ADODataSet1.FieldByName('DAXX_ZCRQ').AsString :=
        DateToStr(DBDTPZcrq.Date);
end;

procedure TFrmBjda.DBGrid1TitleClick(Column: TColumn);
var
  tempSortStr:string;
begin
  //点击表格标题进行排序
  tempSortStr := ADODataSet1.Sort ;
  if tempSortStr = (Column.FieldName + ' ASC') then //已经是升序则改为降序
  begin
      ADODataSet1.Sort := Column.FieldName + ' DESC';
  end
  else                                          //否则改为升序
  begin
    ADODataSet1.Sort := Column.FieldName + ' ASC';
  end;
end;

procedure TFrmBjda.Button1Click(Sender: TObject);
begin
  Close;
end;

end.

⌨️ 快捷键说明

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