📄 uexdata.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 + -