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

📄 unit_basicsalary.pas

📁 用delphi开发的美容院管理系统
💻 PAS
字号:
unit Unit_BasicSalary;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, Grids, Buttons;

type
  Tfrm_basicsalary = class(TForm)
    sg_Salary: TStringGrid;
    Panel1: TPanel;
    sbtn_front: TSpeedButton;
    sbtn_back: TSpeedButton;
    sbtn_save: TSpeedButton;
    sbtn_print: TSpeedButton;
    sbtn_close: TSpeedButton;
    sbtn_edit: TSpeedButton;
    procedure sbtn_closeClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sbtn_backClick(Sender: TObject);
    procedure sbtn_frontClick(Sender: TObject);
    procedure sg_SalarySelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure sbtn_editClick(Sender: TObject);
    procedure sbtn_saveClick(Sender: TObject);
    procedure sg_SalaryDblClick(Sender: TObject);
    procedure sbtn_printClick(Sender: TObject);
  private
    { Private declarations }
    procedure SearchBasicSalaryInfo;
  public
    { Public declarations }
    procedure basicSalary_ref;
  end;

var
  frm_basicsalary: Tfrm_basicsalary;

implementation
  uses unit_DataModule,unit_TotalPublic,PublicFunOrPro;
{$R *.dfm}

procedure Tfrm_basicSalary.basicSalary_ref ;
begin
  with sg_Salary do
  begin
    cells[0,0]:='员工编号';
    cells[1,0]:='员工姓名';
    cells[2,0]:='性别';
    cells[3,0]:='职务';
    cells[4,0]:='基本工资';
  end;

  SearchBasicSalaryInfo;

  sbtn_edit.Enabled := GetPower(SysUserId,'基本工资','修改权');
  sbtn_save.Enabled := sbtn_edit.Enabled ;
  sbtn_print.Enabled:= GetPower(SysUserId,'基本工资','打印权');
  
end;

procedure Tfrm_basicSalary.SearchBasicSalaryInfo ;
var
  i:integer;
begin
  with dmod.qrydata do
  begin
    Close;
    SQL.Text :='select emp_no,emp_name,emp_sex,type_name from Employee e,EmployeeType et '+
               ' where e.emp_type=et.type_id order by emp_no';
    Open;
    i:=1;
    while not eof do
    begin
      with sg_Salary do
      begin
        cells[0,i]:=FieldByName('emp_no').asString;
        cells[1,i]:=FieldByName('emp_name').asString;
        cells[2,i]:=FieldByName('emp_sex').asString;
        cells[3,i]:=FieldByName('type_name').asString;
        with dmod.qrydata2 do
        begin
          Close;
          SQL.Text :='select b_salary from EmployeeBasicSalary where emp_no='+#39+cells[0,i]+#39;
          Open;
          if not eof then
             cells[4,i]:=FloatToStr(FieldByName('b_salary').asFloat)
          else
             cells[4,i]:='0.0';
        end;
      end;
      inc(i);
      next;
    end;
  end;
  if i<>1 then sg_Salary.RowCount :=i+1;
end;
procedure Tfrm_basicsalary.sbtn_closeClick(Sender: TObject);
begin
  close;
end;

procedure Tfrm_basicsalary.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  action:=cafree;
  frm_basicsalary:=nil;
end;

procedure Tfrm_basicsalary.sbtn_backClick(Sender: TObject);
begin
  if sg_Salary.Row > sg_Salary.RowCount-2 then
  begin
     sbtn_back.Enabled := false;
     exit;
  end;
  sbtn_front.Enabled := true;
  sg_Salary.Row := sg_Salary.Row+1;
end;

procedure Tfrm_basicsalary.sbtn_frontClick(Sender: TObject);
begin
  if sg_Salary.Row=1 then
  begin
    sbtn_front.Enabled := false;
    exit;
  end;

  sbtn_back.Enabled := true;
  sg_Salary.Row := sg_Salary.Row-1;
end;

procedure Tfrm_basicsalary.sg_SalarySelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  if ARow = sg_Salary.RowCount - 1 then
    CanSelect:= false
  else
  begin
    sbtn_back.Enabled := true;
    sbtn_front.Enabled := true;
    if ARow = sg_Salary.RowCount - 2 then sbtn_back.Enabled := false;
    if ARow = 1 then sbtn_front.Enabled := false;
    CanSelect := true;
  end;
end;

procedure Tfrm_basicsalary.sbtn_editClick(Sender: TObject);
begin
  sg_Salary.Options :=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goColSizing,goEditing];
  sbtn_edit.Enabled :=false;
  sbtn_save.Enabled :=true;
end;

procedure Tfrm_basicsalary.sbtn_saveClick(Sender: TObject);
var
  i:integer;
begin
  try
    dmod.Database.StartTransaction ;
    with dmod.qrydata do
    begin
      Close;
      SQL.Text :='delete from EmployeeBasicSalary';
      ExecSQL;

      for i:=1 to sg_Salary.RowCount-2 do
      begin
        Close;
        SQL.Text:='insert into EmployeeBasicSalary(emp_no,b_salary) '+
                'values(:empno,:bsalary)';
        ParamByName('empno').AsString := sg_Salary.Cells[0,i];
        paramByName('bsalary').AsFloat := StrToFloat(sg_Salary.Cells[4,i]);
        ExecSQL;
      end;
    end;
  finally
    try
      dmod.Database.Commit ;
      MessageBox(handle,'员工基本工资设置完成!','提示',mb_ok+mb_iconinformation);
      sbtn_save.Enabled :=false;
      sbtn_edit.Enabled :=true;
      sg_Salary.Options :=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goColSizing,goRowSelect];
    except
      dmod.Database.Rollback  ;
      MessageBox(handle,'员工基本工资设置出错,请重试!','提示',mb_ok+mb_iconinformation);
    end;
  end;
end;

procedure Tfrm_basicsalary.sg_SalaryDblClick(Sender: TObject);
begin
  sbtn_editClick(nil);
end;

procedure Tfrm_basicsalary.sbtn_printClick(Sender: TObject);
begin
  DoReportBasicSalary;
end;

end.

⌨️ 快捷键说明

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