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

📄 rl_sjtz_unit.~pa

📁 通用人力资源系统,分类可以自设定 可以熟练掌握DELPHI语言
💻 ~PA
字号:
unit rl_sjtz_Unit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, CalcExpress, Grids, DBGridEh, DB, DBTables, ExtCtrls,
  ComCtrls, Animate, GIFCtrl, DBGrids;

type
  Trl_sjtz = class(TForm)
    StatusBar1: TStatusBar;
    Panel1: TPanel;
    Table1: TTable;
    DataSource1: TDataSource;
    CalcExpress1: TCalcExpress;
    values: TMemo;
    edt_gongshi: TEdit;
    vars: TMemo;
    cb_gjzd: TComboBox;
    Label1: TLabel;
    cb_dw: TComboBox;
    Label2: TLabel;
    cb_fc: TComboBox;
    Label4: TLabel;
    Label5: TLabel;
    tb_dw: TTable;
    tb_bz: TTable;
    tb_bm: TTable;
    Panel3: TPanel;
    Button3: TButton;
    Button7: TButton;
    Button9: TButton;
    Button4: TButton;
    Button8: TButton;
    Button12: TButton;
    Button5: TButton;
    Button11: TButton;
    Button6: TButton;
    Button10: TButton;
    Button15: TButton;
    Button16: TButton;
    Button17: TButton;
    Button18: TButton;
    Button19: TButton;
    Button20: TButton;
    Button21: TButton;
    Button22: TButton;
    Button23: TButton;
    Button24: TButton;
    Button25: TButton;
    Button1: TButton;
    Button2: TButton;
    tb_gzzk: TTable;
    Button13: TButton;
    Label3: TLabel;
    RxGIFAnimator1: TRxGIFAnimator;
    DBGrid1: TDBGrid;
    edt_xs: TEdit;
    Label6: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure tb_dwAfterCancel(DataSet: TDataSet);
    procedure cb_dwChange(Sender: TObject);
    procedure cb_gjzdChange(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button17Click(Sender: TObject);
    procedure Button18Click(Sender: TObject);
    procedure Button19Click(Sender: TObject);
    procedure Button20Click(Sender: TObject);
    procedure Button21Click(Sender: TObject);
    procedure Button22Click(Sender: TObject);
    procedure Button23Click(Sender: TObject);
    procedure Button24Click(Sender: TObject);
    procedure Button25Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  rl_sjtz: Trl_sjtz;

implementation

{$R *.dfm}

procedure Trl_sjtz.FormCreate(Sender: TObject);

var
  i: integer;
begin
  tb_dw.Open;
  tb_dw.First;
  with tb_dw do
    while not eof do
    begin
      cb_dw.Items.Add(tb_dw['dw']);
      next;
    end;
  tb_dw.close;
  cb_gjzd.Items.Clear;
  table1.First;
  for i := 1 to 30 do
    table1.Next;
  with table1 do
    while not eof do
    begin
      cb_gjzd.Items.Add(table1['gzdm'] + '   ' + table1['xsmc']);
      table1.Next;
    end;
  cb_gjzd.ItemIndex := -1;
  cb_dw.ItemIndex := -1;
end;

procedure Trl_sjtz.tb_dwAfterCancel(DataSet: TDataSet);
begin
  cb_fc.Items.Clear;

  tb_bm.Open;
  tb_bm.First;
  with tb_bm do
    while not eof do
    begin
      if trim(cb_dw.Text) = trim(tb_bm['bmlb']) then
        cb_fc.Items.Add(tb_bm['bmmc']);
      next;
    end;
  tb_bm.close;
  cb_fc.ItemIndex := -1;
  cb_fc.Text := '';



end;

procedure Trl_sjtz.cb_dwChange(Sender: TObject);
begin
  cb_fc.Items.Clear;

  tb_bm.Open;
  tb_bm.First;
  with tb_bm do
    while not eof do
    begin
      if trim(cb_dw.Text) = trim(tb_bm['bmlb']) then
        cb_fc.Items.Add(tb_bm['bmmc']);
      next;
    end;
  tb_bm.close;
  cb_fc.ItemIndex := -1;
  cb_fc.Text := '';

end;

procedure Trl_sjtz.cb_gjzdChange(Sender: TObject);
begin
  label5.Caption := cb_gjzd.Text + ' =';
  //edt_gongshi.Text := trim(copy(cb_gjzd.Text, 1, 3));
  vars.Clear;
  vars.Lines.Add(trim(copy(cb_gjzd.Text, 1, 3)));
  values.Clear;
  panel3.Visible := true;
end;

procedure Trl_sjtz.Button15Click(Sender: TObject);
begin
  edt_gongshi.Text := edt_gongshi.Text + '0';
  edt_xs.Text := edt_xs.Text + '0';
end;

procedure Trl_sjtz.Button16Click(Sender: TObject);
begin
  edt_gongshi.Text := edt_gongshi.Text + '1';
  edt_xs.Text := edt_xs.Text + '1';
end;

procedure Trl_sjtz.Button17Click(Sender: TObject);
begin
  edt_gongshi.Text := edt_gongshi.Text + '2';
  edt_xs.Text := edt_xs.Text + '2';
end;

procedure Trl_sjtz.Button18Click(Sender: TObject);
begin
  edt_gongshi.Text := edt_gongshi.Text + '3';
  edt_xs.Text := edt_xs.Text + '3';
end;

procedure Trl_sjtz.Button19Click(Sender: TObject);
begin
  edt_gongshi.Text := edt_gongshi.Text + '4';
  edt_xs.Text := edt_xs.Text + '4';
end;

procedure Trl_sjtz.Button20Click(Sender: TObject);
begin
  edt_gongshi.Text := edt_gongshi.Text + '5';
  edt_xs.Text := edt_xs.Text + '5';
end;

procedure Trl_sjtz.Button21Click(Sender: TObject);
begin
  edt_gongshi.Text := edt_gongshi.Text + '6';
  edt_xs.Text := edt_xs.Text + '6';
end;

procedure Trl_sjtz.Button22Click(Sender: TObject);
begin
  edt_gongshi.Text := edt_gongshi.Text + '7';
  edt_xs.Text := edt_xs.Text + '7';
end;

procedure Trl_sjtz.Button23Click(Sender: TObject);
begin
  edt_gongshi.Text := edt_gongshi.Text + '8';
  edt_xs.Text := edt_xs.Text + '8';
end;

procedure Trl_sjtz.Button24Click(Sender: TObject);
begin
  edt_gongshi.Text := edt_gongshi.Text + '9';
  edt_xs.Text := edt_xs.Text + '9';
end;

procedure Trl_sjtz.Button25Click(Sender: TObject);
begin
  edt_gongshi.Text := edt_gongshi.Text + '.';
  edt_xs.Text := edt_xs.Text + '.';
end;

procedure Trl_sjtz.Button3Click(Sender: TObject);
begin
  edt_gongshi.Text := edt_gongshi.Text + '+';
  edt_xs.Text := edt_xs.Text + '+';
end;

procedure Trl_sjtz.Button4Click(Sender: TObject);
begin
  edt_gongshi.Text := edt_gongshi.Text + '-';
  edt_xs.Text := edt_xs.Text + '-';
end;

procedure Trl_sjtz.Button5Click(Sender: TObject);
begin
  edt_gongshi.Text := edt_gongshi.Text + '*';
  edt_xs.Text := edt_xs.Text + '*';
end;

procedure Trl_sjtz.Button6Click(Sender: TObject);
begin
  edt_gongshi.Text := edt_gongshi.Text + '/';
  edt_xs.Text := edt_xs.Text + '/';
end;

procedure Trl_sjtz.Button7Click(Sender: TObject);
begin
  edt_gongshi.Text := edt_gongshi.Text + '(';
  edt_xs.Text := edt_xs.Text + '(';
end;

procedure Trl_sjtz.Button8Click(Sender: TObject);
begin
  edt_gongshi.Text := edt_gongshi.Text + ')';
  edt_xs.Text := edt_xs.Text + ')';
end;

procedure Trl_sjtz.Button11Click(Sender: TObject);
begin
  if strlen(pchar(edt_gongshi.Text)) > 0 then
  begin
    edt_gongshi.Text := copy(edt_gongshi.Text, 1, strlen(pchar(edt_gongshi.Text)) - 1);
  end;
end;

procedure Trl_sjtz.Button1Click(Sender: TObject);
begin
  if (cb_dw.Text = '') or (cb_fc.text = '') or (cb_gjzd.Text = '') then
  begin
    Application.MessageBox('请选择单位 部门或要清空的字段!', '重新选择', MB_ICONWARNING);
    exit;
  end
  else
  begin
    tb_gzzk.Open;
    tb_gzzk.First;
    with tb_gzzk do
      while not eof do
      begin
        if (tb_gzzk['a2'] = cb_dw.Text) and (tb_gzzk['a3'] = cb_fc.Text) then
        begin
          tb_gzzk.Edit;
          tb_gzzk[trim(copy(cb_gjzd.Text, 1, 3))] := null;
          tb_gzzk.Post;
        end;
        next;
      end;
    Application.MessageBox('该字段已经全部清空!如果此字段的数据影响薪资结果,请重新录入并计算', '重新选择', MB_ICONWARNING);

  end;
end;

procedure Trl_sjtz.Button13Click(Sender: TObject);
begin
  close;
end;

procedure Trl_sjtz.Button2Click(Sender: TObject);
var args: array[0..100] of extended;
  i: integer;
begin
  if (cb_dw.Text = '') or (cb_fc.text = '') or (cb_gjzd.Text = '') then
  begin
    Application.MessageBox('请选择单位 部门或要调整的字段!', '重新选择', MB_ICONWARNING);
    exit;
  end
  else
  begin
    tb_gzzk.Open;
    tb_gzzk.First;
    with tb_gzzk do
      while not eof do
      begin
        if (tb_gzzk['a2'] = cb_dw.Text) and (tb_gzzk['a3'] = cb_fc.Text) then
        begin
          Values.Lines.Clear;
          for i := 0 to Vars.Lines.Count - 1 do
          begin
            if tb_gzzk[Vars.Lines.Strings[i]] = null then
              Values.Lines.Add('0')
            else
              Values.Lines.Add(floattostr(tb_gzzk[Vars.Lines.Strings[i]]));
          end;

//
          if (Vars.Lines.Count = Values.Lines.Count) then
          begin
       //set expression to calculate
            CalcExpress1.Formula := edt_gongshi.Text;
    // set used variables list
            CalcExpress1.Variables := Vars.Lines;
    // prepare arguments
//    SetLength(args,Values.Lines.Count);
            for i := 0 to Values.Lines.Count - 1 do
              args[i] := StrToFloat(Values.Lines[i]);
    // calculate expression
            tb_gzzk.Edit;
            if round(CalcExpress1.calc(args) * 100) / 100 = 0 then
              tb_gzzk[trim(copy(cb_gjzd.Text, 1, 3))] := null
            else
              tb_gzzk[trim(copy(cb_gjzd.Text, 1, 3))] := round(CalcExpress1.calc(args) * 100) / 100;
            tb_gzzk.Post;
          end
          else
            MessageDlg('Variables and Variable values lists should have the same lines quantity.', mtInformation, [mbOk], 0);

//
        end;
        next;
      end;
    tb_gzzk.close;
    Application.MessageBox('调整完毕!如果此字段的数据影响薪资结果,请重新录入并计算', '重新选择', MB_ICONWARNING);

  end;
end;

procedure Trl_sjtz.Button9Click(Sender: TObject);
var
  i: integer;
  biaozhi_zd: integer;
begin
  biaozhi_zd := 0;
  if table1.RecNo < 30 then
  begin
    Application.MessageBox('字段a1到a5不能做为计算变量!', '重新选择', MB_ICONWARNING);
    exit;
  end
  else
    edt_gongshi.Text := edt_gongshi.Text + table1['gzdm'];
  edt_xs.Text := edt_xs.Text + table1['xsmc'];
  if vars.Lines.Count = 0 then
  begin
    vars.Lines.Clear;
    vars.Lines.Add(table1['gzdm']);
  end
  else
  begin
    for i := 0 to vars.Lines.Count do
    begin
      if uppercase(vars.Lines.Strings[i]) = uppercase(table1['gzdm']) then
        biaozhi_zd := 1;
    end;
    if biaozhi_zd = 0 then
      vars.Lines.Add(table1['gzdm']);
  end;
end;

procedure Trl_sjtz.Button10Click(Sender: TObject);
begin
  vars.Lines.clear;
  edt_gongshi.Text := '';
  edt_xs.Text := '';
end;

end.

⌨️ 快捷键说明

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