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

📄 frmmain.~pas

📁 这是一个间歇的小唾弃,希望大家希望,以后大家多学习,多多交流共同进步
💻 ~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 + -