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

📄 u_fk_record.~pas

📁 小型劳资管理系统,用visual basic+access编写
💻 ~PAS
字号:
unit U_fk_record;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, StdCtrls, Mask, DBCtrls, Grids, DBGrids, ExtCtrls, DBTables, Buttons,
  U_Fr_fk_Printselect, ComCtrls;

type
  TF_fk_record = class(TForm)
    Q_fk_record: TQuery;
    Panel1: TPanel;
    DBGrid1: TDBGrid;
    Q_fk_recordworknum: TStringField;
    Q_fk_recorditem: TStringField;
    Q_fk_recordmoney: TFloatField;
    Q_fk_recordfs_date: TStringField;
    Q_fk_recordkkyf: TStringField;
    Q_fk_recorddj_date: TStringField;
    Q_fk_recordmemo: TStringField;
    DataSource1: TDataSource;
    Q_emp_fk: TQuery;
    DataSource2: TDataSource;
    Q_emp_fkyjbm_name: TStringField;
    Q_emp_fkejbm_name: TStringField;
    Q_emp_fkwork_num: TStringField;
    Q_emp_fkitem: TStringField;
    Q_emp_fkmoney: TFloatField;
    Q_emp_fkfs_date: TStringField;
    Q_emp_fkkkyf: TStringField;
    Q_emp_fkdj_date: TStringField;
    Q_emp_fkmemo: TStringField;
    Label8: TLabel;
    Q_emp_fkname: TStringField;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Edit3: TEdit;
    Label2: TLabel;
    ComboBox1: TComboBox;
    Label3: TLabel;
    Label4: TLabel;
    MaskEdit1: TMaskEdit;
    DateTimePicker1: TDateTimePicker;
    Label5: TLabel;
    MaskEdit2: TMaskEdit;
    Label6: TLabel;
    MaskEdit3: TMaskEdit;
    DateTimePicker2: TDateTimePicker;
    Label7: TLabel;
    DBEdit7: TDBEdit;
    Bevel1: TBevel;
    bitbtn3: TSpeedButton;
    bitbtn1: TSpeedButton;
    bitbtn2: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton2: TSpeedButton;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    bitbtn4: TSpeedButton;
    bitbtn5: TSpeedButton;
    Label9: TLabel;
    Panel2: TPanel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Edit1: TEdit;
    MaskEdit4: TMaskEdit;
    SpeedButton1: TSpeedButton;
    Edit2: TEdit;
    ComboBox2: TComboBox;
    SpeedButton3: TSpeedButton;
    ComboBox4: TComboBox;
    Edit4: TEdit;
    Panel3: TPanel;
    Label13: TLabel;
    ComboBox3: TComboBox;
    Edit5: TEdit;
    UpDown1: TUpDown;
    Label14: TLabel;
    Edit6: TEdit;
    UpDown2: TUpDown;
    Label15: TLabel;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure DataSource1StateChange(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure MaskEdit4Change(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure Qnge(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure MaskEdit1Change(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure MaskEdit2Change(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure bitbtn2Click(Sender: TObject);
    procedure ComboBox1Click(Sender: TObject);
    procedure Edit4DblClick(Sender: TObject);
    procedure ComboBox2Click(Sender: TObject);
    procedure DateTimePicker1Change(Sender: TObject);
    procedure DateTimePicker2Change(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure ComboBox4Click(Sender: TObject);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit7Change(Sender: TObject);
  private
    { Private declarations }
    Procedure enableEdit(flag:boolean);
    Function Check:boolean;
  public
    { Public declarations }
    fromasok:boolean;
  end;

var
  F_fk_record: TF_fk_record;

implementation

uses U_dm, U_fkokbottomdlg, U_Fr_DM, URP_fk;

{$R *.DFM}

function TF_fk_record.Check():Boolean ;
begin
  if Length(Trim(edit3.Text))<>6 then
    begin
      Application.MessageBox('输入工号有误!!!','系统提示',MB_ICONSTOP+MB_OK);
      Result:=false;
      exit;
    end;
  if Combobox1.Text='' then
    begin
      Application.MessageBox('选择罚款类别!!!','系统提示',MB_ICONSTOP+MB_OK);
      Result:=false;
      exit;
    end;
  if (Length(trim(Maskedit1.Text))<>10)or(Length(trim(Maskedit2.Text))<>7)or(Length(trim(Maskedit3.Text))<>10) then
    begin
      Application.MessageBox('时间和扣款月份有误!!!','系统提示',MB_ICONSTOP+MB_OK);
      Result:=false;
      exit;
    end;
    Result:=true;
end;


procedure TF_fk_record.enableEdit(flag:boolean);
begin
 if flag then
   begin
     bitbtn3.Enabled:=false;
     bitbtn1.Enabled:=true;
     bitbtn2.Enabled:=true;
   end
 else
   begin
     bitbtn3.Enabled:=true;
     bitbtn1.Enabled:=false;
     bitbtn2.Enabled:=false;
   end;

end;


procedure TF_fk_record.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  if Panel2.Visible then
   if (Length(Trim(Maskedit4.Text))<>4) or (Edit1.Text='') then
     begin
       Application.MessageBox('为补卡输入时间和标识!!!','系统提示',MB_ICONSTOP+MB_OK);
       Action:=caNone;
       exit;
     end;
  if Q_fk_record.State in [dsedit,dsinsert] then
    begin
      Application.MessageBox('项目处在编辑状态,确认后退出!!!','系统提示',MB_ICONSTOP+MB_OK);
      Action:=caNone;
    end
  else
  Action:=caFree;
end;
 //新增
procedure TF_fk_record.BitBtn3Click(Sender: TObject);
begin
  Q_fk_record.Append;
  edit3.SetFocus;
end;
//保存
procedure TF_fk_record.BitBtn1Click(Sender: TObject);
begin
  if not check then exit;
  if Panel2.Visible then
   if (Length(Trim(Maskedit4.Text))<>4) or (Edit1.Text='') then
     begin
       Application.MessageBox('为补卡输入时间和标识!!!','系统提示',MB_ICONSTOP+MB_OK);
       exit;
     end;
    Q_fk_record.FieldByName('worknum').asstring:=Edit3.Text;
    Q_fk_record.FieldByName('money').asstring:=Edit4.Text;
    Q_fk_record.FieldByName('item').asstring:=Combobox1.Text;
    Q_fk_record.FieldByName('fs_date').asstring:=Maskedit1.Text;
    Q_fk_record.FieldByName('kkyf').asstring:=Maskedit2.Text;
    Q_fk_record.FieldByName('dj_date').asstring:=Maskedit3.Text;
    if Panel3.Visible then
      begin
        if strtoint(Edit5.Text)=1 then
          Q_fk_record.FieldByName('memo').asstring:='担保'+combobox3.Text+Edit5.Text+'人次入住'+Edit6.Text+'晚'
        else
          Q_fk_record.FieldByName('memo').asstring:='担保'+combobox3.Text+'等'+Edit5.Text+'人次入住'+Edit6.Text+'晚';
      end;
  Q_fk_record.Post;
      with Q_emp_fk do
        begin
          close;
          sql.Clear;
          sql.Add('select * from V_emp_fk where work_num='+''''+edit3.text+'''');
          open;
        end;
end;
//数据状态
procedure TF_fk_record.DataSource1StateChange(Sender: TObject);
begin
  if Q_fk_record.State in [dsedit,dsinsert] then
    begin
      enableEdit(true);
    end
  else
    begin
      enableEdit(false);
    end;
end;
//补卡
procedure TF_fk_record.SpeedButton1Click(Sender: TObject);
begin
  panel2.Visible:=false;
end;
//时间
procedure TF_fk_record.MaskEdit4Change(Sender: TObject);
begin
  if Length(trim(Maskedit4.text))=4 then
    Edit1.SetFocus;
end;
 //输入工号查询
procedure TF_fk_record.Edit2Change(Sender: TObject);
begin
  if Q_fk_record.State in [dsedit,dsinsert] then
    Q_fk_record.cancel;

  if Length(Trim(edit2.text))<>6 then exit;
      with DM.Q_temp do
        begin
          close;
          sql.Clear;
          sql.Add('select * from V_yj_ej_emp where work_num='+''''+edit2.text+'''');
          open;
        end;
      F_fk_record.Caption:='当前被罚款对象:'+DM.Q_temp.fieldbyname('yjbm_name').asstring+' '+
                        DM.Q_temp.fieldbyname('ejbm_name').asstring+' '+
                        DM.Q_temp.fieldbyname('name').asstring;

     with Q_emp_fk do
        begin
          close;
          sql.Clear;
          sql.Add('select * from V_emp_fk where work_num='+''''+edit2.text+'''');
          open;
        end
end;
//编辑状态
procedure TF_fk_record.BitBtn4Click(Sender: TObject);
begin
  DBGrid1.ReadOnly:=false;
  Q_emp_fk.Edit;
end;

procedure TF_fk_record.Qnge(Sender:TObject);
begin
  if Q_emp_fk.State in [dsedit,dsinsert] then
    begin
      bitbtn4.Enabled:=false;
      DBGrid1.ReadOnly:=false;
    end
  else
    begin
      bitbtn4.Enabled:=true;
      DBGrid1.ReadOnly:=true;
    end;
end;
//删除数据
procedure TF_fk_record.BitBtn5Click(Sender: TObject);
var
  Q_temp:TQuery;
begin
  if Q_fk_record.State in [dsedit,dsinsert] then
    begin
      Application.MessageBox('项目处在编辑状态,确认后再操作!!!','系统提示',MB_ICONSTOP+MB_OK);
      exit;
    end;
  if MessageDlg('确认要删除"'+Q_emp_fk.fieldbyname('Name').asstring+'"此条记录吗?',mtConfirmation,[mbok,mbcancel],0)=mrcancel then exit;
  Q_temp:=TQuery.Create(self);
  try
  Q_temp.DatabaseName:='Person_DB';
  with Q_temp do
    begin
      close;
      sql.Clear;
      sql.Add('Delete from fk_record where worknum='+''''+Q_emp_fk.fieldbyname('work_num').asstring+'''');
      sql.Add(' and fs_date='+''''+Q_emp_fk.fieldbyname('fs_date').asstring+'''');
      if Q_emp_fk.fieldbyname('memo').asstring<>'' then
      sql.Add(' and memo='+''''+Q_emp_fk.fieldbyname('memo').asstring+'''');
      ExecSQL;
    end;
  finally
  Q_temp.free;
  end;
    Q_emp_fk.Close;
    Q_emp_fk.Open;
end;
//date1
procedure TF_fk_record.MaskEdit1Change(Sender: TObject);
begin
  if fromasok then exit;
  if panel2.Visible then exit;
  if Length(Trim(Maskedit1.text))=10 then
      if Length(Trim(maskedit2.text))=7 then
        DBEdit7.SetFocus
      else
      Maskedit2.SetFocus;
end;
 //输入工号查询
procedure TF_fk_record.Edit3Change(Sender: TObject);
begin
  if Length(Trim(edit3.text))<>6 then exit;
      with DM.Q_temp do
        begin
          close;
          sql.Clear;
          sql.Add('select * from V_yj_ej_emp where work_num='+''''+edit3.text+'''');
          open;
        end;
     Label8.Caption:=DM.Q_temp.fieldbyname('yjbm_name').asstring+' '+
                        DM.Q_temp.fieldbyname('ejbm_name').asstring+' '+
                        DM.Q_temp.fieldbyname('name').asstring;
  if fromasok then exit;
  if Panel2.Visible then exit;
    Edit4.SetFocus;

end;
//date2
procedure TF_fk_record.MaskEdit2Change(Sender: TObject);
begin
  if fromasok then exit;
  if panel2.Visible then exit;
  if Length(trim(Maskedit2.text))=7 then DBedit7.SetFocus;
end;
//查询
procedure TF_fk_record.SpeedButton2Click(Sender: TObject);
begin
  if edit2.Text='' then
     with Q_emp_fk do
        begin
          close;
          sql.Clear;
          sql.Add('select * from V_emp_fk ');
          open;
        end;
end;
 //窗体创建
procedure TF_fk_record.FormCreate(Sender: TObject);
begin
  Q_fk_record.Open;
end;
 //取消
procedure TF_fk_record.bitbtn2Click(Sender: TObject);

begin
  Q_fk_record.Cancel;
  if Q_emp_fk.State in [dsedit] then
  Q_emp_fk.cancel;
end;
// 选择罚款类别
procedure TF_fk_record.ComboBox1Click(Sender: TObject);
begin
  if not (Q_fk_record.State in [dsedit,dsinsert]) then exit;
  if Combobox1.Text='借宿' then
    Panel3.Visible:=true
  else
    Panel3.Visible:=false;
end;
//计算
procedure TF_fk_record.Edit4DblClick(Sender: TObject);
begin
  Edit4.text:=inttostr((strtoint(Edit5.Text)*strtoint(Edit6.text))*10);
end;

procedure TF_fk_record.ComboBox2Click(Sender: TObject);
begin
edit1.Text:=combobox2.Text;
end;

procedure TF_fk_record.DateTimePicker1Change(Sender: TObject);
begin
maskedit1.Text:=datetostr(datetimepicker1.date);
end;

procedure TF_fk_record.DateTimePicker2Change(Sender: TObject);
begin
maskedit3.Text:=datetostr(datetimepicker2.Date);
end;
//补时
procedure TF_fk_record.SpeedButton4Click(Sender: TObject);
begin
panel2.Visible:=true; //补时
end;
//打印数据
procedure TF_fk_record.SpeedButton3Click(Sender: TObject);
var
  i:integer;
  s:string;
begin
  if fkokbottomdlg.ShowModal=mrCancel then exit;
  if fkOkbottomdlg.ListBox2.Items.Count=0 then
    begin
     Application.MessageBox('请选择有效的类别!','系统提示',mb_iconstop+mb_ok);
     exit;
   end;
  for i:=0 to Fkokbottomdlg.ListBox2.Items.Count-1 do
    if i<Fkokbottomdlg.ListBox2.Items.Count-1 then
      s:=s+''''+fkokbottomdlg.ListBox2.Items.Strings[i]+''''+','
    else
      s:=s+''''+fkokbottomdlg.ListBox2.Items.Strings[i]+'''';
  if Length(trim(fkOkbottomdlg.MaskEdit1.Text))<>7 then
    begin
      Application.MessageBox('输入的月份无效,无法执行!','系统提示',mb_iconstop+mb_ok);
      exit;
    end;
  if MessageDlg('当前选择类别是:'+s,mtInformation,[mbYes,mbNo],0)=mrNo then exit;
  if s=''''+'借宿'+'''' then
  begin
  with Fr_dm.QV_emp_fk do
    begin
      close;
      sql.Clear;
      sql.Add('select work_num,name,ejbm_name,sum(money)as total,item,kkyf from V_emp_fk');
      sql.add(' where item='+''''+'借宿'+'''');
      sql.Add(' and kkyf='+''''+fkokbottomdlg.MaskEdit1.Text+'''');
      sql.Add(' group by work_num,name,ejbm_name,item,kkyf');
      sql.Add(' order by ejbm_name,name');
      open;
    end;
    if RP_fk=nil then
      RP_fk:=TRP_fk.Create(self);
      RP_fk.QuickRep2.ReportTitle:=fkokbottomdlg.Maskedit1.Text+'借宿情况统计';
      RP_fk.QuickRep2.Preview;
  end
  else
  begin
  with Fr_dm.QV_emp_fk do
    begin
      close;
      sql.Clear;
      sql.Add('select * from V_emp_fk');
      sql.add(' where item in'+'('+s+')');
      if MessageDlg('扣款月份:yes'+#13+'发生月份:no',mtConfirmation,[mbyes,mbno],0)=mryes
      then sql.Add(' and kkyf like '''+fkokbottomdlg.MaskEdit1.Text+'%''')
      else sql.Add(' and fs_date like '''+fkokbottomdlg.MaskEdit1.Text+'%''');;
      sql.Add(' order by yjbm_name,ejbm_name,name');
      open;
    end;
    if RP_fk<>nil then rp_fk.close;
    RP_fk:=TRP_fk.Create(self);
    if fkokbottomdlg.RadioGroup1.ItemIndex=0 then
      RP_fk.QuickRep1.ReportTitle:=fkokbottomdlg.Maskedit1.Text+'违规统计'
    else
      RP_fk.QuickRep1.ReportTitle:=fkokbottomdlg.Maskedit1.Text+'扣款统计';
    RP_fk.QuickRep1.Preview;
  end;
end;

procedure TF_fk_record.ComboBox4Click(Sender: TObject);
begin
edit4.Text:=combobox4.Text;
end;

procedure TF_fk_record.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
speedbutton3.click;
end;

procedure TF_fk_record.Edit7Change(Sender: TObject);
begin
dbedit7.text:=edit7.text;
end;

end.


⌨️ 快捷键说明

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