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

📄 uexdata.pas

📁 人事档案管理
💻 PAS
字号:
unit uExData;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, XPMenu, ExtCtrls, StdCtrls, Buttons, CheckLst, jpeg;

type
  TfrmExData = class(TForm)
    xpReData: TXPMenu;
    Label1: TLabel;
    clExData: TCheckListBox;
    btnReStore: TBitBtn;
    btnTrans: TBitBtn;
    btnClose: TBitBtn;
    imgExData: TImage;
    cbSelAll: TCheckBox;
    procedure FormCreate(Sender: TObject);
    procedure cbSelAllClick(Sender: TObject);
    procedure btnReStoreClick(Sender: TObject);
    procedure btnTransClick(Sender: TObject);
    procedure btnCloseClick(Sender: TObject);
  private
    { Private declarations }
    FhPar: THandle;
    FConn: TADOConnection;
    function GetSqlStr: string;
    procedure ExoprtToExcel;
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  public
    { Public declarations }
    constructor Create(AOwner: TComponent; AHandle: THandle; AConn: TADOConnection); reintroduce;
  end;

var
  frmExData: TfrmExData;

implementation

{$R *.dfm}

{ TfrmExData }

constructor TfrmExData.Create(AOwner: TComponent; AHandle: THandle;
  AConn: TADOConnection);
begin
  FhPar := AHandle;
  FConn := AConn;
  inherited Create(AOwner);
end;

procedure TfrmExData.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.WndParent := FhPar;
end;

function TfrmExData.GetSqlStr: string;
var
  sSql, sFrm: string;
begin
  sSql := 'select';
  sFrm := ' from stainfo a';
  if clExData.Checked[0] then sSql := sSql + ' a.stano as [工号],';
  if clExData.Checked[1] then sSql := sSql + ' a.sname as [姓名],';
  if clExData.Checked[2] then sSql := sSql + ' a.sex as [性别],';
  if clExData.Checked[3] then sSql := sSql + ' a.birth as [生日],';
  if clExData.Checked[4] then sSql := sSql + ' a.tel as [电话],';
  if clExData.Checked[5] then sSql := sSql + ' a.mobile as [手机],';
  if clExData.Checked[6] then sSql := sSql + ' a.email as [邮件],';
  if clExData.Checked[7] then
  begin
    sSql := sSql + ' b.dep as [部门],';
    sFrm := sFrm + ' left join dept b on a.depid=b.id';
  end;
  if clExData.Checked[8] then sSql := sSql + ' (select sname from oinfo where id=a.sorts) as [工种],';
  if clExData.Checked[9] then sSql := sSql + ' (select sname from oinfo where id=a.duty) as [职称],';
  if clExData.Checked[10] then sSql := sSql + ' a.provi as [籍贯],';
  if clExData.Checked[11] then sSql := sSql + ' (select sname from oinfo where id=a.folk) as [民族],';
  if clExData.Checked[12] then sSql := sSql + ' (select sname from oinfo where id=a.level) as [学历],';
  if clExData.Checked[13] then sSql := sSql + ' (select sname from oinfo where id=a.special) as [专业],';
  if clExData.Checked[14] then sSql := sSql + ' a.cardno as [身份证号],';
  if clExData.Checked[15] then sSql := sSql + ' a.recno as [档案编号],';
  if clExData.Checked[16] then sSql := sSql + ' a.politics as [政治面貌],';
  if clExData.Checked[17] then sSql := sSql + ' a.slevel as [技术等级],';
  if clExData.Checked[18] then sSql := sSql + ' a.married as [婚姻状况],';
  if clExData.Checked[19] then sSql := sSql + ' a.indate as [入司日期],';
  if clExData.Checked[20] then sSql := sSql + ' a.dutystate as [任职状态],';
  if clExData.Checked[21] then sSql := sSql + ' a.dutydate as [入职日期],';
  if clExData.Checked[22] then sSql := sSql + ' a.stadate as [转正日期],';
  if clExData.Checked[23] then sSql := sSql + ' a.leftdate as [离职日期],';
  if clExData.Checked[24] then sSql := sSql + ' a.baryear as [合同期限],';
  if clExData.Checked[25] then sSql := sSql + ' a.barstart as [合同开始],';
  if clExData.Checked[26] then sSql := sSql + ' a.barend as [合同结束],';
  if clExData.Checked[27] then sSql := sSql + ' a.school as [毕业院校],';
  if clExData.Checked[28] then sSql := sSql + ' a.gradate as [毕业日期],';
  if clExData.Checked[29] then sSql := sSql + ' a.body as [健康状况],';
  if clExData.Checked[30] then sSql := sSql + ' a.address as [家庭住址],';
  if clExData.Checked[31] then sSql := sSql + ' a.pcode as [邮政编码],';
  if clExData.Checked[32] then sSql := sSql + ' a.des as [备注],';

  sSql := Copy(sSql, 1, Length(sSql) - 1);
  Result := sSql + sFrm;
end;

procedure TfrmExData.ExoprtToExcel;
var
  od: TOpenDialog;
begin
  od := TOpenDialog.Create(Self);
  od.Title := '您要导出到哪里?';
  od.Filter := 'Microsoft Excel 文件(*.xls)|*.xls';
  try
    try
      if od.Execute then
      begin
        FConn.Execute('select * into [excel 8.0;database=' + od.FileName + '].[stainfo] from (' + GetSqlStr + ')');
        MessageBox(Handle, PAnsiChar('数据已成功导出!'), '提示', MB_OK + MB_ICONINFORMATION);
      end;
    except
      on E: Exception do
        MessageBox(Handle, PAnsiChar('数据导出失败!信息为:' + E.Message), '提示', MB_OK + MB_ICONINFORMATION);
    end;
  finally
    od.Free;
  end;
end;

procedure TfrmExData.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to clExData.Items.Count - 1 do
    clExData.Checked[i] := True;
end;

procedure TfrmExData.cbSelAllClick(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to clExData.Items.Count - 1 do
    clExData.Checked[i] := cbSelAll.Checked;
end;

procedure TfrmExData.btnReStoreClick(Sender: TObject);
var
  i: Integer;
  Checked: Boolean;
begin
  Checked := False;
  for i := 0 to clExData.Items.Count - 1 do
    Checked := Checked or clExData.Checked[i];
  if not Checked then
  begin
    MessageBox(Handle, PAnsiChar('请选择要导出的数据!'), '提示', MB_OK + MB_ICONINFORMATION);
    cbSelAll.Checked := True;
  end
  else ExoprtToExcel;
end;

procedure TfrmExData.btnTransClick(Sender: TObject);
begin
  if btnTrans.Caption = '半透明' then
  begin
    self.AlphaBlend := True;
    self.AlphaBlendValue := 125;
    btnTrans.Caption := '还  原';
  end
  else
  begin
    self.AlphaBlend := false;
    btnTrans.Caption := '半透明';
  end;
end;

procedure TfrmExData.btnCloseClick(Sender: TObject);
begin
  Close;
end;

end.

⌨️ 快捷键说明

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