📄 mc_ygxxgl.pas
字号:
unit MC_YGXXGL;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, DBCtrls, Grids, DBGrids, ComCtrls, ExtCtrls, Buttons,
DBActns, ActnList, DB, QuickRpt, Qrctrls;
type
TYGXXGL = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
DBEdit2: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
Label4: TLabel;
Label10: TLabel;
DBEdit10: TDBEdit;
Label11: TLabel;
DBEdit11: TDBEdit;
DBComboBox1: TDBComboBox;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
DBLookupComboBox1: TDBLookupComboBox;
DBLookupComboBox2: TDBLookupComboBox;
DBText1: TDBText;
Panel1: TPanel;
Bevel1: TBevel;
Bevel2: TBevel;
Bevel3: TBevel;
BitBtn4: TBitBtn;
BitBtn3: TBitBtn;
BitBtn2: TBitBtn;
BitBtn1: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
ActionList1: TActionList;
DataSetFirst1: TDataSetFirst;
DataSetLast1: TDataSetLast;
DataSetNext1: TDataSetNext;
DataSetPrior1: TDataSetPrior;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
BitBtn9: TBitBtn;
Edit1: TEdit;
GroupBox2: TGroupBox;
DBGrid1: TDBGrid;
GroupBox3: TGroupBox;
DBGrid2: TDBGrid;
Bevel4: TBevel;
Label15: TLabel;
Label18: TLabel;
DBEdit4: TDBEdit;
Label19: TLabel;
DBEdit5: TDBEdit;
Label16: TLabel;
DBEdit1: TDBEdit;
Label17: TLabel;
DBEdit3: TDBEdit;
Label20: TLabel;
DBEdit6: TDBEdit;
Label21: TLabel;
DBEdit7: TDBEdit;
Label22: TLabel;
DBEdit12: TDBEdit;
BitBtn10: TBitBtn;
Bevel5: TBevel;
Bevel6: TBevel;
Bevel7: TBevel;
Panel2: TPanel;
YGXXDY: TQuickRep;
PageHeaderBand1: TQRBand;
QRLabel1: TQRLabel;
TitleBand1: TQRBand;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel8: TQRLabel;
QRLabel9: TQRLabel;
QRLabel10: TQRLabel;
QRLabel11: TQRLabel;
DetailBand1: TQRBand;
QRDBText1: TQRDBText;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRDBText4: TQRDBText;
QRDBText5: TQRDBText;
QRDBText6: TQRDBText;
QRDBText7: TQRDBText;
QRLabel5: TQRLabel;
QRDBText8: TQRDBText;
SummaryBand1: TQRBand;
QRLabel12: TQRLabel;
QRLabel6: TQRLabel;
QRExpr1: TQRExpr;
QRLabel7: TQRLabel;
QRShape1: TQRShape;
QRShape2: TQRShape;
QRShape3: TQRShape;
Bevel8: TBevel;
Bevel9: TBevel;
procedure BitBtn8Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure DBEdit10KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit12Exit(Sender: TObject);
procedure DBEdit2KeyPress(Sender: TObject; var Key: Char);
procedure DBComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure DateTimePicker2KeyPress(Sender: TObject; var Key: Char);
procedure DBLookupComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure DateTimePicker1KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure DBLookupComboBox2KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn9Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure YGXXDYPreview(Sender: TObject);
procedure BitBtn10Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
YGXXGL: TYGXXGL;
implementation
uses MC_TLCYGLXT, MC_DYYLBrose;
{$R *.DFM}
function Aenabled(key:integer):Boolean ; //定义函数Aenabled(判断控件属性)
begin
If key = 1 Then
begin
YGXXGL.DBGrid1.Enabled:=False;
YGXXGL.DBGRid2.Enabled:=False;
YGXXGL.Edit1.Enabled:=False;
YGXXGL.BitBtn1.Enabled:=False;
YGXXGL.BitBtn2.Enabled:=False;
YGXXGL.BitBtn3.Enabled:=False;
YGXXGL.BitBtn4.Enabled:=False;
YGXXGL.BitBtn7.Enabled:=False;
YGXXGL.BitBtn8.Enabled:=False;
YGXXGL.BitBtn9.Enabled:=False;
YGXXGL.BitBtn10.Enabled:=False;
YGXXGL.GroupBox1.Visible:=True;
YGXXGL.BitBtn5.Caption:='保存';
YGXXGL.BItBtn6.Caption:='取消';
YGXXGL.DBEdit2.SetFocus;
End
Else
begin
YGXXGL.DBGrid1.Enabled:=True;
YGXXGL.DBGRid2.Enabled:=True;
YGXXGL.Edit1.Enabled:=True;
YGXXGL.BitBtn1.Enabled:=True;
YGXXGL.BitBtn2.Enabled:=True;
YGXXGL.BitBtn3.Enabled:=True;
YGXXGL.BitBtn4.Enabled:=True;
YGXXGL.BitBtn7.Enabled:=True;
YGXXGL.BitBtn8.Enabled:=True;
YGXXGL.BitBtn9.Enabled:=True;
YGXXGL.BitBtn10.Enabled:=True;
YGXXGL.GroupBox1.Visible:=False;
YGXXGL.BitBtn5.Caption:='添加';
YGXXGL.BItBtn6.Caption:='修改';
end;
end;
procedure TYGXXGL.FormShow(Sender: TObject); //初始化
begin
ANimateWindow(Handle,300,AW_HOR_NEGATIVE+AW_VER_POSITIVE+AW_SLIDE);
TLCYGLXT.FJTHBMB.Refresh; //刷新房间部门信息表
TLCYGLXT.YGXXB.Refresh; //刷新员工信息表
TLCYGLXT.YGLBXXB.Refresh; //刷新员工类别信息表
TLCYGLXT.YGGZXXB.Refresh; //刷新员工工资信息表
YGXXGL.Refresh;
GRoupBox1.Refresh;
GroupBox2.Refresh;
GroupBox3.Refresh;
DBGrid1.Refresh;
DBGrid2.Refresh;
Panel1.Refresh;
Bevel1.Refresh;
Bevel2.Refresh;
Bevel3.Refresh;
Bevel4.Refresh;
Bevel5.Refresh;
Bevel6.Refresh;
Bevel7.Refresh;
end;
procedure TYGXXGL.DBEdit10KeyPress(Sender: TObject; var Key: Char);
begin
TLCYGLXT.YGGZXXB.FieldByName('合计').AsFloat:=TLCYGLXT.YGGZXXB.FieldByName('基本工资').AsFloat
+TLCYGLXT.YGGZXXB.FieldByName('奖金').AsFloat+TLCYGLXT.YGGZXXB.FieldByName('加班费').AsFloat
+TLCYGLXT.YGGZXXB.FieldByName('其它费用').AsFloat;
if key=#13 then PerForm(WM_NEXTDLGCTL,0,0); //焦点移到下一控件
end;
procedure TYGXXGL.DBEdit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then DBCombobox1.SetFocus; // 焦点移到“性别“输入框
end;
procedure TYGXXGL.DBComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then DateTimePicker2.SetFocus; // 焦点移到“出生日期“输入框
end;
procedure TYGXXGL.DateTimePicker2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then DBLookupcombobox1.SetFocus; // 焦点移到“工作部门“输入框
end;
procedure TYGXXGL.DBLookupComboBox2KeyPress(Sender: TObject;
var Key: Char);
begin
if key=#13 then DBedit10.SetFocus; // 焦点移到“联系电话“输入框
end;
procedure TYGXXGL.DBLookupComboBox1KeyPress(Sender: TObject;
var Key: Char);
begin
if key=#13 then DateTimePicker1.SetFocus; // 焦点移到“聘用日期“输入框
end;
procedure TYGXXGL.DateTimePicker1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then DBLookupcombobox2.SetFocus; //焦点移到“员工类别“输入框
end;
procedure TYGXXGL.DBEdit12Exit(Sender: TObject);
begin
TDBEdit(Sender).Color:=ClWindow;
BitBtn5.SetFocus; //“添加“按钮获得焦点
end;
procedure TYGXXGL.BitBtn5Click(Sender: TObject); //"添加"或“保存”
var a:integer;
begin
a:=1;
if BitBtn5.Caption='添加' then //如果是“添加“
begin
TLCYGLXT.YGXXB.Refresh;
TLCYGLXT.YGGZXXB.Refresh;
If TLCYGLXT.YGXXB.RecordCount > 0 Then
begin
TLCYGLXT.YGXXB.Last;
a:=a+TLCYGLXT.YGXXB.FieldByName('员工编号').AsInteger;
end;
TLCYGLXT.YGXXB.Append;
TLCYGLXT.YGXXB.FieldByName('员工编号').AsInteger:=a;
TLCYGLXT.YGXXB.FieldByname('性别').AsString:='男';
DateTimePicker1.Date:=Date;
TLCYGLXT.YGXXB.FieldByName('工作部门').AsString:=TLCYGLXT.FJTHBMB.FieldbyName('部门名称').AsString;
TLCYGLXT.YGXXB.FieldByName('员工类别').AsString:=TLCYGLXT.YGLBXXB.FieldByName('类别名称').AsString;
TLCYGLXT.YGGZXXB.Append;
TLCYGLXT.YGGZXXB.FieldByName('工资编号').AsInteger:=a;
TLCYGLXT.YGGZXXB.FieldByName('基本工资').AsInteger:=0;
TLCYGLXT.YGGZXXB.FieldByName('奖金').AsInteger:=0;
TLCYGLXT.YGGZXXB.FieldByName('加班费').AsInteger:=0;
TLCYGLXT.YGGZXXB.FieldByName('其它费用').AsInteger:=0;
TLCYGLXT.YGGZXXB.FieldByName('合计').AsInteger:=0;
TLCYGLXT.YGGZXXB.FieldByName('扣除费用说明').AsString:='无';
TLCYGLXT.YGGZXXB.FieldByName('扣除费用').AsInteger:=0;
AEnabled(1);
End
Else //如果是“保存“
begin
if (Length(TLCYGLXT.YGXXB.FieldByName('姓名').AsString)=0) or
(Length(TLCYGLXT.YGXXB.FieldByName('联系电话').AsString)=0) or
(Length(TLCYGLXT.YGXXB.FieldByName('身份证号').AsString)=0) or
(Length(TLCYGLXT.YGXXB.FieldByName('联系地址').AsString)=0) then
begin
ShowMessage('请将[姓名、联系电话、身份证号、联系地址]等重要信息添全');
DBEdit2.setfocus;
End
Else
begin
Aenabled(2);
TLCYGLXT.YGGZXXB.FieldByName('姓名').AsString:=TLCYGLXT.YGXXB.FieldByName('姓名').AsString;
TLCYGLXT.YGXXB.FieldByName('出生日期').AsDateTime:=DateTimePicker2.Date;
TLCYGLXT.YGXXB.FieldByName('聘用日期').AsDateTime:=DateTimePicker1.Date;
TLCYGLXT.YGGZXXB.Post; // 保存员工信息
TLCYGLXT.YGXXB.Post;
end;
end;
end;
procedure TYGXXGL.BitBtn6Click(Sender: TObject); //修改员工信息
begin
if BitBtn6.Caption='修改' then //如果按钮名称为“修改”
begin
TLCYGLXT.YGXXB.Refresh;
If TLCYGLXT.YGXXB.RecordCount = 0 Then //如果没有数据
begin
ShowMessage('对不起,没有数据可以修改!');
End
Else //如果有数据
begin
TLCYGLXT.YGXXB.Edit;
TLCYGLXT.YGGZXXB.Edit;
Aenabled(1);
end;
End
Else //如果按钮名称为“取消”
begin
AEnabled(2);
TLCYGLXT.YGGZXXB.Cancel;
TLCYGLXT.YGXXB.Cancel;
end;
end;
procedure TYGXXGL.BitBtn7Click(Sender: TObject); //删除数据
begin
TLCYGLXT.YGXXB.Refresh;
If TLCYGLXT.YGXXB.RecordCount <= 1 Then
begin
showMessage('对不起,表中必须有一个记录存在.');
End
Else
if MessageDLG('确认删除员工信息及工资信息吗?',mtCustom,[mbYes,mbNo],0)=mrYes then
begin
TLCYGLXT.YGGZXXB.Delete; //删除员工工资信息
TLCYGLXT.YGXXB.Delete; //删除员工信息
end;
end;
procedure TYGXXGL.BitBtn9Click(Sender: TObject); //查询员工信息
var a,b,c:integer;
d:String;
begin
If Length(Edit1.Text) = 0 Then //输入查询信息为空
begin
ShowMessage('请输入查询的[编号或姓名]信息');
Edit1.SetFocus;
End
Else //输入查询信息不为空
begin
a:=Length(Edit1.Text); c:=0;
for b:=1 to a do
begin
D:=COPY(edit1.text,b,1); //获取指定数量的字符串
if (D='0') or (D<='9') then //如果指定字符为数字
begin
c:=c+1;
end;
end;
If C = Length(Edit1.Text) Then //输入为员工编号
begin
if TLCYGLXT.YGXXB.Locate('员工编号',StrTOInt(Edit1.Text),[loCaseInsensitive]) then
begin
DBGrid1.SetFocus;
DBGrid1.SelectedIndex:=0;
End
Else
begin
ShowMessage('对不起,没有找到。');
end;
End
Else //输入为员工姓名
begin
if TLCYGLXT.YGXXB.Locate('姓名',Edit1.Text,[loPartialKey]) then
begin
DBGrid1.SetFocus;
DBGrid1.SelectedIndex:=1;
End
Else
begin
ShowMessage('对不起,没有找到。');
end;
end;
end;
end;
procedure TYGXXGL.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then Bitbtn9.Click; //查询员工信息
end;
procedure TYGXXGL.YGXXDYPreview(Sender: TObject);
begin
DYYLBrose.QrPreview1.QRPrinter:=YGXXDY.QRPrinter;
end;
procedure TYGXXGL.BitBtn10Click(Sender: TObject); //打印员工信息
begin
DYYLBROSE.Show;
YGXXDY.Preview;
end;
procedure TYGXXGL.BitBtn8Click(Sender: TObject);
begin
Close;
end;
procedure TYGXXGL.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
If BitBtn8.Enabled = False Then
begin
ShowMessage('对不起,请先保存数据.');
Abort;
end;
end;
//关闭窗体
procedure TYGXXGL.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ANimateWindow(handle,300,AW_HIDE+AW_VER_POSITIVE+AW_HOR_POSITIVE+AW_SLIDE);
YGXXGL.Release;
YGXXGL:=nil;
TLCYGLXT.YGXXB.Close;//关闭员工信息表
TLCYGLXT.YGLBXXB.Close;//关闭员工类别信息表
TLCYGLXT.FJTHBMB.Close;//关闭房间部门信息表
TLCYGLXT.YGGZXXB.Close;//关闭员工工资信息表
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -