📄 frmmain.~pas
字号:
unit frmMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, ComCtrls, StdCtrls, ExtCtrls, AppEvnts,ADODB,DateUtils,DB;
type
//TMgrid = class (TDbgrid);
TForm1 = class(TForm)
PageControl1: TPageControl;
tsGZBZSD: TTabSheet;
tsYGXX: TTabSheet;
tsKQXX: TTabSheet;
tsJTXX: TTabSheet;
tsYLXX: TTabSheet;
tsYGZ: TTabSheet;
tsNDJJ: TTabSheet;
tsXT: TTabSheet;
tsBZ: TTabSheet;
RgChoose: TRadioGroup;
Bevel1: TBevel;
Bevel2: TBevel;
dbgGZ: TDBGrid;
btAddGZ: TButton;
btUpdatGZ: TButton;
btDeleteGZ: TButton;
btAddJBLB: TButton;
btUpdateJBLB: TButton;
btDeleteJBLB: TButton;
btDeleteQQLB: TButton;
btAddQQLB: TButton;
btUpdateQQLB: TButton;
dbgJBLB: TDBGrid;
dbgQQLB: TDBGrid;
dbgQYNDXY: TDBGrid;
ApplicationEvents1: TApplicationEvents;
Bevel3: TBevel;
Bevel4: TBevel;
dbgYGXX: TDBGrid;
btAddYGXX: TButton;
btUpdateYGXX: TButton;
btDeleteYGXX: TButton;
Bevel5: TBevel;
Bevel6: TBevel;
Bevel7: TBevel;
sp1: TSplitter;
Splitter1: TSplitter;
dbgYGXXKQ: TDBGrid;
dbgKQXX: TDBGrid;
btAddKQ: TButton;
btUpdateKQ: TButton;
btDeleteKQ: TButton;
Bevel8: TBevel;
Bevel9: TBevel;
Bevel10: TBevel;
dbgjtygxx: TDBGrid;
dbgJTXX: TDBGrid;
btAddJTXX: TButton;
btUpdateJT: TButton;
btDeleteJT: TButton;
Bevel11: TBevel;
Bevel12: TBevel;
Bevel13: TBevel;
dbgYLYGXX: TDBGrid;
dbgYLXX: TDBGrid;
btAddYL: TButton;
btUpdateYL: TButton;
btDeleteYL: TButton;
Bevel14: TBevel;
Bevel15: TBevel;
Bevel16: TBevel;
dbgYGZYGXX: TDBGrid;
dbgYGZ: TDBGrid;
btCountYGZ: TButton;
btConutAllYGZ: TButton;
btDeleteYGZ: TButton;
btBaobiaoYGZ: TButton;
edtYGZ: TEdit;
Label1: TLabel;
cbYGZ: TComboBox;
Label2: TLabel;
pbYGZ: TProgressBar;
Bevel17: TBevel;
Bevel18: TBevel;
Bevel19: TBevel;
dbgNZJJYGXX: TDBGrid;
dbgNZJJ: TDBGrid;
btCountNZJJ: TButton;
btCountAllNZJJ: TButton;
btDeleteNZJJ: TButton;
btBaoBiaoNZJJ: TButton;
edtNZJJ: TEdit;
Label3: TLabel;
Label4: TLabel;
edtNDXY: TEdit;
ProgressBar1: TProgressBar;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure tsYGZShow(Sender: TObject);
procedure tsNDJJShow(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure RgChooseClick(Sender: TObject);
procedure btAddGZClick(Sender: TObject);
procedure btUpdatGZClick(Sender: TObject);
procedure btDeleteGZClick(Sender: TObject);
procedure btAddJBLBClick(Sender: TObject);
procedure btUpdateJBLBClick(Sender: TObject);
procedure btDeleteJBLBClick(Sender: TObject);
procedure btAddQQLBClick(Sender: TObject);
procedure btUpdateQQLBClick(Sender: TObject);
procedure btDeleteQQLBClick(Sender: TObject);
procedure btAddYGXXClick(Sender: TObject);
procedure btCountYGZClick(Sender: TObject);
procedure btConutAllYGZClick(Sender: TObject);
procedure edtYGZKeyPress(Sender: TObject; var Key: Char);
procedure btDeleteYGZClick(Sender: TObject);
procedure btDeleteKQClick(Sender: TObject);
procedure btDeleteYGXXClick(Sender: TObject);
private
{ Private declarations }
procedure ShowChooseStandard(Index: Integer);//用来显示单击选择标准框时的操作
procedure CountYGZ();//计算月工资
Function DelDBData(ds:TdataSet):Boolean;
public
{ Public declarations }
end;
var
Form1: TForm1;
Judge:Boolean; //用于判断单击的是添加按钮还是修改按钮
implementation
uses datamodule, frmGZ, unitComment, frmJBLB, frmQQLB, frmYGXX;
{$R *.dfm}
procedure TForm1.ShowChooseStandard (Index:Integer);
procedure ShowControl(Index:Integer;Show:Boolean);
begin
case Index of
0:begin
dbgGZ.Visible:=Show;
btAddGZ.Visible:=Show;
btUpdatGZ.Visible :=Show;
btDeleteGZ.Visible:=Show;
end;
1:begin
dbgJBLB.Visible :=Show;
btAddJBLB.Visible:=Show;
btUpdateJBLB.Visible:=Show;
btDeleteJBLB.Visible :=Show;
end;
2:begin
dbgQQLB.Visible:=show;
btAddQQLB.Visible:=Show;
btUpdateQQLB.Visible:=Show;
btDeleteQQLB.Visible:=Show;
end;
3:begin
dbgQYNDXY.Visible:=Show;
end;
end;
end;
begin
Case Index of
0:begin
ShowControl(1,false);
ShowControl(2,false);
ShowControl(3,false);
ShowControl(0,true);
end;
1:begin
ShowControl(0,false);
ShowControl(2,false);
ShowControl(3,false);
ShowControl(1,true);
end;
2:begin
ShowControl(0,false);
ShowControl(1,false);
ShowControl(3,false);
ShowControl(2,true);
end;
3:begin
ShowControl(0,false);
ShowControl(1,false);
ShowControl(2,false);
ShowControl(3,true);
end;
end;
end;
Function TForm1.DelDBData(ds:Tdataset):boolean;
begin
Result:=false;
if ds.RecordCount >0 then begin
if Application.MessageBox('是否删除该记录!',PChar(Application.Title ),MB_YESNO)=IDYes then begin
ds.Delete;
Result:=true;
end;
end
else
Application.MessageBox('没有可删除的记录',PChar(Application.Title),MB_OK) ;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//datamodule.dm.qrygongzhong.Active :=True;
end;
procedure TForm1.tsYGZShow(Sender: TObject);//计算当前的年,月
begin
edtYGZ.Text := IntToStr(YearOf(Date));
cbYGZ.ItemIndex := MonthOf(Date)-1;
end;
procedure TForm1.tsNDJJShow(Sender: TObject);
var
eyear,emonth,eday:word;
begin
DecodeDate(now,eyear,emonth,eday);
self.edtNZJJ.Text :=inttostr(eyear);
end;
procedure TForm1.FormShow(Sender: TObject);
begin
//初始化界面
dbgJBLB.Top :=dbgGZ.Top ;dbgJBLB.Left :=dbgGZ.Left;
btAddJBLB.Top :=btAddGZ.Top ;btAddJBLB.Left :=btAddGZ.Left;
btUpdateJBLB.Top :=btUpdatGZ.Top ;btUpdateJBLB.Left :=btUpdatGZ.Left ;
btDeleteJBLB.Top :=self.btDeleteGZ.Top ;btDeleteJBLB.Left:=btDeleteGZ.Left;
dbgQQLB.Top :=dbgGZ.Top;dbgQQLB.Left :=dbgGZ.Left;
btAddQQLB.Top:=btAddGZ.Top ;btAddQQLB.Left :=btAddGZ.Left;
btUpdateQQLB.Top:=btUpdatGZ.Top ;btUpdateQQLB.Left :=btUpdatGZ.Left;
btDeleteQQLB.Top:=btDeleteGZ.Top ;btDeleteQQLB.Left :=btDeleteGZ.Left;
dbgQYNDXY.Top :=dbgGZ.Top ;dbgQYNDXY.Left:=dbgGZ.Left ;
//初始化选择标准框
self.RgChoose.ItemIndex :=0;
//打开数据库
dm.con1.Connected:=true;
dm.qrygongzhong.Active :=true;
dm.qryJBLB.Active :=true;
dm.qryQQLB.Active :=true;
dm.qryQYNDXY.Active :=true;
dm.qryKQXX.Active :=true;
dm.qryYGXX.Active :=true;
dm.qryYLBX.Active :=true;
dm.qryJTXX.Active :=true;
dm.qryYGZ.Active :=true;
dm.qryNZJJ.Active :=true;
end;
procedure TForm1.RgChooseClick(Sender: TObject);
begin
ShowChooseStandard(RgChoose.ItemIndex );
end;
procedure TForm1.btAddGZClick(Sender: TObject);
begin
Judge:=true;
frmGZ.frmGongZhong.Show;
frmgz.frmGongZhong.btContinueAddGZ.Visible :=true;
frmGZ.frmGongZhong.dbnGZ.Visible :=false;
end;
procedure TForm1.btUpdatGZClick(Sender: TObject);
begin
Judge :=false;
frmgz.frmGongZhong.btContinueAddGZ.Visible :=false;
frmgz.frmGongZhong.dbnGZ.Visible:=true;
frmgz.frmGongZhong.Show;
frmgz.frmGongZhong.dbnGZ.Top :=frmgz.frmGongZhong.btContinueAddGZ.Top ;
frmgz.frmGongZhong.dbnGZ.Left :=frmgz.frmGongZhong.btContinueAddGZ.Left ;
end;
procedure TForm1.btDeleteGZClick(Sender: TObject);
{var
str1,str2:string; }
begin
{str1:=self.dbgGZ.SelectedField.AsString ;
///showmessage(str1);
str2:='delete from gz where gz="'+str1+'"';
if application.MessageBox('是否删除?','系统提示',MB_YESNO )=Idyes then
begin
dm.qrygongzhong.Close;
dm.qrygongzhong.SQL.Clear;
dm.qrygongzhong.SQL.Add(str2);
dm.qrygongzhong.ExecSQL;
SqlGongZhong;
end
else
exit; }
DelDBData(dm.qrygongzhong);
end;
procedure TForm1.btAddJBLBClick(Sender: TObject);
begin
Judge:=true;
frmjblb.frmJiaBLB.dbnJBLB.Visible :=false;
frmjblb.frmJiaBLB.btContinueAddJBLB.Visible :=true;
frmjblb.frmJiaBLB.Show;
end;
procedure TForm1.btUpdateJBLBClick(Sender: TObject);
begin
frmMain.Judge:=false;
frmjblb.frmJiaBLB.dbnJBLB.Visible:=true;
frmjblb.frmJiaBLB.btContinueAddJBLB.Visible:=false;
frmjblb.frmJiaBLB.dbnJBLB.Top :=frmjblb.frmJiaBLB.btContinueAddJBLB.Top;
frmjblb.frmJiaBLB.dbnJBLB.Left:=frmjblb.frmJiaBLB.btContinueAddJBLB.Left;
frmjblb.frmJiaBLB.Show;
end;
procedure TForm1.btDeleteJBLBClick(Sender: TObject);
begin
DelDBData(dm.qryJBLB );
end;
procedure TForm1.btAddQQLBClick(Sender: TObject);
begin
frmMain.Judge:=true;
frmQQlb.frmQueQLB.Show;
frmqqlb.frmQueQLB.btContinueAddQQLB.Visible:=true;
frmqqlb.frmQueQLB.dbnQQLB.Visible:=false;
end;
procedure TForm1.btUpdateQQLBClick(Sender: TObject);
begin
frmMain.Judge :=false;
frmqqlb.frmQueQLB.Show;
frmqqlb.frmQueQLB.btContinueAddQQLB.Visible :=false;
frmqqlb.frmQueQLB.dbnQQLB.Visible:=true;
frmqqlb.frmQueQLB.dbnQQLB.Top:=frmqqlb.frmQueQLB.btContinueAddQQLB.Top;
frmqqlb.frmQueQLB.dbnQQLB.Left:=frmqqlb.frmQueQLB.btContinueAddQQLB.Left;
end;
procedure TForm1.btDeleteQQLBClick(Sender: TObject);
begin
DelDBData(dm.qryQQLB);
end;
procedure TForm1.btAddYGXXClick(Sender: TObject);
begin
frmmain.Judge:=true;
frmygxx.frmYuangxx.Show;
frmygxx.frmYuangxx.btContinueAddYGXX.Visible :=true;
frmygxx.frmYuangxx.dbnYGXX.Visible :=false;
end;
procedure TForm1.btCountYGZClick(Sender: TObject); //计算单人月工资
begin
if dm.qryYGXX['yg_id']=null then begin
showmessage('请添加员工信息!');
end
else if self.edtYGZ.Text ='' then begin
showmessage('请输入年份!!!');
self.edtYGZ.Text :='';
self.edtYGZ.SetFocus;
exit;
end
else begin
try
strtoint(self.edtYGZ.Text);
except
showmessage('请输入正确的年份!');
self.edtYGZ.Text :='';
self.edtYGZ.SetFocus;
exit;
end;
end;
CountYGZ();//开始计算月工资
end;
procedure TForm1.btConutAllYGZClick(Sender: TObject); //计算所有人的月工资
var
b:TBookmarkStr;
begin
if dm.qryYGXX['yg_id']=null then begin
showmessage('请添加员工信息!');
end
else if self.edtYGZ.Text ='' then begin
showmessage('请输入年份!!!');
edtYGZ.Text :='';
edtYGZ.SetFocus;
exit;
end
else begin
try
strtoint(edtYGZ.Text);
except
showmessage('请输入正确的年份!');
edtYGZ.Text :='';
edtYGZ.SetFocus;
exit;
end;
b:=dm.qryYGXX.Bookmark;
dm.qryYgxx.First;
while not dm.qryYgxx.Eof do begin
CountYGZ();
showmessage('计算开始');
dm.qryYgxx.Next;
showmessage('转到下一个');
end;
dm.qryYgxx.Bookmark := b;
end;
end;
procedure TForm1.CountYGZ();//计算月工资
var
id,y,r,n:string;
sql:string;
qry:TADOQuery;
jbgz, jt, kc, bx, zj: Double;
begin
id:=dm.qryYGXX['yg_id'];
n:=edtYGZ.Text ;
y:=inttostr(cbYGZ.ItemIndex+1);
r:=inttostr(DaysInAMonth(strtoint(n),strtoint(y))); //得到所选月的天数
//删除旧的数据
sql:='delete from ygz where nian='+ n+'and yue='+y+'and yg_id='+id;
dm.con1.Execute(sql);
dm.qryYGXX.Close;
dm.qryYGXX.Open;
qry := TADOQuery.Create(nil);
qry.Connection :=dm.con1;
//查询员工的基本工资
sql := 'SELECT gz.jbgz '+
'FROM gz INNER JOIN ygxx ON gz.gz_id = ygxx.gz_id '+
'WHERE (((ygxx.yg_id)='+id+'));';
qry.SQL.Text :=sql;
qry.Open;
jbgz:=qry.FieldByName('jbgz').AsFloat;
qry.Close;
//计算津贴
sql := 'SELECT Sum(jtxx.jbts * jblb.jbgz) AS jt '+
'FROM jblb INNER JOIN jtxx ON jblb.jblb_id = jtxx.jblb_id '+
'WHERE (((jtxx.yg_id)='+id+') AND ((jtxx.jbsj)>=#'+y+'/1/'+n+'#) AND '+
'((jtxx.jbsj)<=#'+y+'/'+r+'/'+n+'#));';
qry.SQL.Text :=sql;
qry.Open;
jt :=qry.FieldByName('jt').AsFloat;
qry.Close;
//计算扣除
sql := 'SELECT Sum(kqxx.qqts*qqlb.jbgz) AS kc '+
'FROM qqlb INNER JOIN kqxx ON qqlb.qqlb_id = kqxx.qqlb_id '+
'WHERE (((kqxx.yg_id)='+id+') AND ((kqxx.kqsj)>=#'+y+'/1/'+n+'#) AND '+
'((kqxx.kqsj)<=#'+y+'/'+r+'/'+n+'#)); ';
qry.SQL.Text := sql;
qry.Open;
kc :=qry.FieldByName('kc').AsFloat;
qry.Close;
// 计算报销/保险
sql := 'SELECT Sum(ylbx.ylfy + ylbx.bxfy) AS bx '+
'FROM ylbx '+
'WHERE (((ylbx.yg_id)='+id+') AND ((ylbx.sj)>=#'+y+'/1/'+n+'#) AND '+
'((ylbx.sj)<=#'+y+'/'+r+'/'+n+'#)); ';
qry.SQL.Text := sql;
qry.Open;
bx :=qry.FieldByName('bx').AsFloat;
qry.Close;
qry.Free;
//计算总计
zj:=jbgz+jt-kc-bx;
if zj<0 then
zj:=0;
//写入数据
dm.qryYGZ.Append;
dm.qryYGZ['yg_id']:=strtoint(id);
dm.qryYGZ['nian']:=strtoint(n);
dm.qryYGZ['yue']:=strtoint(y);
dm.qryYGZ['jbgz']:=jbgz;
dm.qryYGZ['jt']:=jt;
dm.qryYGZ['kc']:=kc;
dm.qryYGZ['bx']:=bx;
dm.qryYGZ['zj']:=zj;
dm.qryYGZ.Post;
end;
procedure TForm1.edtYGZKeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9',#8]) then Key:=#0; //此语句限止文本框只能输入数字,退格建
end;
procedure TForm1.btDeleteYGZClick(Sender: TObject);
begin
DelDBData(dm.qryYGZ );
end;
procedure TForm1.btDeleteKQClick(Sender: TObject);
begin
DelDBData(dm.qryKQXX );
end;
procedure TForm1.btDeleteYGXXClick(Sender: TObject);
begin
DelDBData(dm.qryYGXX);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -