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

📄 frmemployee.pas

📁 物流供应链管理系统
💻 PAS
字号:
unit frmEmployee;

interface

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

type
  TFormEmployee = class(TForm)
    LCDBOperatTool1: TLCDBOperatTool;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    DBComboBoxSex: TDBComboBox;
    DBDTPBirthday: TDBDateTimePicker;
    DBDTPJobDay: TDBDateTimePicker;
    DBEdtAddress: TDBEdit;
    DBGrid1: TDBGrid;
    ADOCon: TADOConnection;
    ADOTDepart: TADOTable;
    ADOTEduLevel: TADOTable;
    ADOTJobType: TADOTable;
    DSEmployee: TDataSource;
    DSEduLevel: TDataSource;
    DSDepart: TDataSource;
    DSJobType: TDataSource;
    DBEdtId: TDBEdit;
    DBEdtName: TDBEdit;
    DBLookupComboBox1: TDBLookupComboBox;
    DBLookupComboBox3: TDBLookupComboBox;
    ADOQEmployee: TADOQuery;
    CBField: TComboBox;
    RBcontain: TRadioButton;
    RBEqual: TRadioButton;
    EdtValue: TEdit;
    BtnSearch: TButton;
    DBEdtDepartId: TDBEdit;
    Button1: TButton;
    BtnAll: TButton;
    ADOQEmployeeId: TWideStringField;
    ADOQEmployeeName: TWideStringField;
    ADOQEmployeeSex: TBooleanField;
    ADOQEmployeeBirthDay: TDateTimeField;
    ADOQEmployeeAddress: TWideStringField;
    ADOQEmployeeAccessionDate: TDateTimeField;
    ADOQEmployeeJobTypeId: TSmallintField;
    ADOQEmployeeDepartId: TWideStringField;
    ADOQEmployeeEduLevelId: TSmallintField;
    ADOQ: TADOQuery;
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure LCDBOperatTool1Click(Btn: LCDBOperatTool.TToolButton;
      var Continued: Boolean);
    procedure FormCreate(Sender: TObject);
    procedure FormDeactivate(Sender: TObject);
    procedure BtnSearchClick(Sender: TObject);
    procedure ADOTEmployeeSexGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure ADOTEmployeeSexSetText(Sender: TField; const Text: String);
    procedure Button1Click(Sender: TObject);
    procedure BtnAllClick(Sender: TObject);
    procedure ADOQEmployeeSexGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure ADOQEmployeeSexSetText(Sender: TField; const Text: String);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormEmployee: TFormEmployee;

implementation
uses CommonFunc, untGlobal, untConfig, StrUtils;
{$R *.dfm}

procedure TFormEmployee.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
  Perform(WM_NEXTDLGCTL,0,0);
end;

procedure TFormEmployee.LCDBOperatTool1Click(Btn: LCDBOperatTool.TToolButton;
  var Continued: Boolean);
begin
  case Btn of
    tbPost:
      if LCDBOperatTool1.BtnMode = bmAdd then
      begin
        try
          ADOQ.Close;
          ADOQ.SQL.Text := 'select id from t_Employee where id=:id';
          ADOQ.Parameters.ParamByName('id').Value := Trim(DBEdtId.Text);
          ADOQ.Open;
          if ADOQ.RecordCount >0 then
          begin
            LCShowMessage(Format(COLUMNREPLICATE,['员工编码']));
            Continued := false;
          end;
          ADOQ.Close;
        except
          ADOQ.Close;
          raise;
        end;
      end;
  end;

  case Btn of
    tbPost:
      begin
        if not CheckInput(DBEdtId) then Exit;
        if not CheckInput(DBComboBoxSex) then Exit;
        if not CheckInput(DBDTPBirthday) then Exit;
        if not CheckInput(DBDTPJobDay) then Exit;
        if not CheckInput(DBEdtAddress) then Exit;
        if not CheckInput(DBEdtId) then Exit;
        if not CheckInput(DBEdtName) then Exit;
        if not CheckInput(DBLookupComboBox1) then Exit;
        if not CheckInput(DBLookupComboBox3) then Exit;
      end;
  end;
end;

procedure TFormEmployee.FormCreate(Sender: TObject);
begin
  try
    ADOCon.Close;
    ADOCon.ConnectionString := GetConnectionString;
    ADOCon.Open;
    ADOTDepart.Open;
    ADOTEduLevel.Open;
    ADOTJobType.Open;
    ADOQEmployee.Open;
  except
    LCShowMessage('数据库打开时发生错误!');
  end;
end;

procedure TFormEmployee.FormDeactivate(Sender: TObject);
begin
  ADOCon.Close;
end;


procedure TFormEmployee.BtnSearchClick(Sender: TObject);
var
  LName, LCon, LValue: string;
  LSql: string;
begin
  if (not CheckInput(CBField)) or (not CheckInput(EdtValue)) then Exit;
  LName := CBField.Items.ValueFromIndex[CBField.ItemIndex];
  LCon := IfThen(RBEqual.Checked,' = ', 'like');
  LValue := Trim(EdtValue.Text);
  LValue := IfThen(RBEqual.Checked, QuotedStr(LValue), QuotedStr('%'+LValue+'%'));
  LSql := Format('select * from t_Employee where %s %s %s',[LName, LCon, LValue]);
  ADOQEmployee.Close;
  ADOQEmployee.SQL.Text := LSql;
  ADOQEmployee.Open;
end;

procedure TFormEmployee.ADOTEmployeeSexGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  if Sender.AsBoolean = true then
    Text := '男'
  else
    Text := '女';
end;

procedure TFormEmployee.ADOTEmployeeSexSetText(Sender: TField;
  const Text: String);
begin
  if Text='男' then
    Sender.AsBoolean := true
  else
    Sender.AsBoolean := false;
end;

procedure TFormEmployee.Button1Click(Sender: TObject);
var
  LOldId: string;
  i: Integer;
begin
  DBEdtDepartId.Text := ShowFieldSelectDlg(ADOCon.ConnectionString, ADOTDepart.TableName);
  ADOQ.Close;
  ADOQ.SQL.Clear;
  ADOQ.SQL.Add('select top 1 id from t_employee order by id desc');
  ADOQ.Open;
  LOldId := ADOQ.FieldByName('id').AsString;
  i := StrToIntDef(RightStr(LOldId, 5), 0);
  Inc(i);
  DBEdtId.Text := 'YG' + MidStr(Trim(DBEdtDepartId.Text), 3, 3) + Format('%.5d',[i]);
  ADOQ.Close;
end;

procedure TFormEmployee.BtnAllClick(Sender: TObject);
begin
  ADOQEmployee.Close;
  ADOQEmployee.SQL.Text := 'select * from t_employee';
  ADOQEmployee.Open;
end;

procedure TFormEmployee.ADOQEmployeeSexGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  if Sender.AsBoolean = true then
    Text := '男'
  else
    Text := '女';
end;

procedure TFormEmployee.ADOQEmployeeSexSetText(Sender: TField;
  const Text: String);
begin
  if Text = '男' then
    Sender.AsBoolean := true
  else
    Sender.AsBoolean := false;
end;

end.

⌨️ 快捷键说明

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