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

📄 u_base.pas

📁 超信人力资源管理系统,一个用Delphi编写的人事管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:

procedure TF_base.Btn_nextClick(Sender: TObject);
begin
  Q_MAIN.NEXT;
end;

procedure TF_base.Btn_LastClick(Sender: TObject);
begin
  Q_MAIN.Last;
end;

procedure TF_base.Btn_newClick(Sender: TObject);
var i:integer;
begin
  if Uppercase(LOGIN_CODE) <> 'SYSTEM' then //是否是系统管理员
    if not Is_INSERT then
    begin
      MessageDlg('你没有新增记录的权限,请与管理员联系!', mtError, [mbOK], 0);
      Abort;
    end; //
 //if not (Q_main.State in [Dsedit, Dsinsert]) then Q_main.Edit;
  Q_MAIN.APPEND;

  //设置焦点
  for I := 0 to ComponentCount - 1 do //  设置DBGRID 颜色
  begin
    try
      if Components[I].ClassType=Tdbedit then
      begin
        if Tdbedit(Components[I]).TabOrder=0 then
        BEgin
          Tdbedit(components[i]).SetFocus;
          break;//退出循环
        End;
      end;
    except
      CONTINUE;
    end;
  end;

  SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Computer,Dotime,TITLE,Havedo) VALUES(''' + LOGIN_CODE + ''',''' + computer_name + ''',Convert(varchar(20),Getdate(),20),''' + CAPTION + ''',''增加主表记录'')';
  Insert_log(sql_s);
end;

procedure TF_base.Btn_EditClick(Sender: TObject);
begin
  if Uppercase(LOGIN_CODE) <> 'SYSTEM' then // 权限
  begin
    if not Is_EDIT then
    begin
      MessageDlg('你没有修改的权限,请与管理员联系!', mtError, [mbOK], 0);
      Exit;
    end; // 权限
  end;
  Q_MAIN.EDIT;

end;

procedure TF_base.Btn_SaveClick(Sender: TObject);
var
  I: INTEGER;
begin
//===================================保存从表===================================
  if not OneTable_flag then //如果是主从表
  begin
    Q_DETAIL.DisableControls;
    Q_DETAIL.First;
    while not Q_DETAIL.Eof do
    begin
      Q_DETAIL.Edit;
      try
        Q_DETAIL.FieldByName('CNID').ASSTRING := Q_MAIN.FieldByName('SID').ASSTRING;
      // Q_DETAIL.FieldByName(KEY_FIELD).ASSTRING := Q_MAIN.FieldByName(KEY_FIELD).ASSTRING;
      except
        raise;
      end;
      for I := 0 to Q_DETAIL.FieldCount - 1 do
      begin ////暂时屏蔽掉
        if Q_DETAIL.Fields[I].Tag = 1 then
        begin
          if TRIM(Q_DETAIL.Fields[I].ASSTRING) = '' then
          begin
            SHOWMESSAGE('项目:' + Q_DETAIL.FieldS[I].DisplayLabel + ' 必需输入数据!');
            EXIT;
            BREAK;
          end;
        end;
      end;
      Q_DETAIL.Next;
    end;
    try
      Q_DETAIL.UpdateBatch(ARALL);
     // SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',Convert(varchar(20),Getdate(),20),''' + CAPTION + ''',''存盘'')';
     // Insert_log(sql_s);
    except
     // SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',Convert(varchar(20),Getdate(),20),''' + CAPTION + ''',''存盘失败'')';
    //  insert_log(sql_s);
    end;
    Q_DETAIL.EnableControls;
  end;
//==============================================================================
//==============================保存主表========================================
  for I := 0 to Q_MAIN.FieldCount - 1 do
  begin
    if Q_MAIN.Fields[I].Tag = 1 then
    begin
      if TRIM(Q_MAIN.Fields[I].ASSTRING) = '' then
      begin
        SHOWMESSAGE('项目:' + Q_MAIN.FieldS[I].DisplayLabel + ' 必需输入数据!');
        EXIT;
        BREAK;
      end;
    end;
  end;
  try
    Q_MAIN.UpdateBatch(ARALL);
    Q_main.First;
  except
    raise;
  end;



//==============================================================================
end;

procedure TF_base.Btn_CancelClick(Sender: TObject);
begin
  try
    Q_MAIN.CancelUpdates;
  except
    raise;
  end;
end;

procedure TF_base.Btn_DeleteClick(Sender: TObject);
begin
  if Q_MAIN.RecordCount = 0 then exit; //无记录则退出
  if Uppercase(LOGIN_CODE) <> 'SYSTEM' then //
    if not Is_DELETE then
    begin
      MessageDlg('你没有删除的权限,请与管理员联系!', mtError, [mbOK], 0);
      Abort;
    end;
  if APPLICATION.MessageBox('你真的要删除这个记录吗?', '系统提示', MB_YESNO + MB_DEFBUTTON2) = IDNO then EXIT;
  try
    Q_MAIN.Delete;

  except
    raise;
  end;
  Q_MAIN.UpdateBatch(ARALL);
end;

procedure TF_base.Btn_FindClick(Sender: TObject);
begin
  if Uppercase(LOGIN_CODE) <> 'SYSTEM' then //
    if not Is_Find then
    begin
      MessageDlg('你没有查找记录的权限,请与管理员联系!', mtError, [mbOK], 0);
      Exit;
    end; //

  //if MAIN_TABLE = '' then
  //begin
   // MessageDlg('没有注册主表名称,请重新注册!', mtWarning, [mbOK], 0);
   // EXIT;
  //end;

  application.CreateForm(TF_select, F_select);
   F_select.Mquery:=Q_main;
  if F_select.ShowModal = mrok then
  begin
  //查找记录模块 待加++++++++++++++++++++++++++++
    Sql_s := 'Select * From TB_Employ where 1=1 ' + F_Select.Rsql;
    Sql_change(Q_main, Sql_s);
    SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',Convert(varchar(20),GetDate(),20),''' + CAPTION + ''',''查找记录'')';
    Insert_log(sql_s);
  end;
end;

procedure TF_base.Btn_PrintClick(Sender: TObject);
begin
  if Uppercase(Login_code) <> 'SYSTEM' then
  begin
    if not IS_print then
    begin
      MessageDlg('你没有打印的权限,请与管理员联系!', mtError, [mbOK], 0);
      Exit;
    end;
  end;

 //======打印代码  待加++++++++++++++++++++++
  Report_Form:=name;
  application.CreateForm(TF_Form_Report,F_Form_Report);
  F_Form_Report.ShowModal;

  SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',Convert(varchar(20),GetDate(),20),''' + CAPTION + ''',''打印数据'')';
  Insert_log(sql_s);


end;

procedure TF_base.Q_detailAfterScroll(DataSet: TDataSet);
begin
  if (DataSet.RecordCount <> 0) and (DataSet.DataSource.DataSet.state in [dsedit, dsinsert])
    and (not (DataSet.state in [dsedit, dsinsert])) then
    DataSet.Edit;
end;

procedure TF_base.Q_detailAfterInsert(DataSet: TDataSet);
var
  I: INTEGER;
begin
//开始设置GUID
  for i := 0 to q_DETAIL.FieldCount - 1 do
    if q_DETAIL.Fields[i].DataType = ftGuid then
    begin
      if q_DETAIL.Fields[i].FieldName = 'SID' then
      begin
        CREATEGUID(NID);
        Q_DETAIL.Fields[I].AsString := GUIDTOSTRING(NID);
      end
      else
        if q_DETAIL.Fields[i].FieldName = 'CNID' then
        begin
          Q_DETAIL.Fields[I].AsString := Q_MAIN.FIELDBYNAME('SID').ASSTRING;
        end;
    end;
//设置完毕GUID

  for I := 0 to Q_MAIN.FieldCount - 1 do
  begin
    if Q_MAIN.FIELDS[I].ConstraintErrorMessage <> '' then
    begin
      if Q_MAIN.FIELDS[I].ConstraintErrorMessage = '当前日期' then
      begin
        if Q_MAIN.Fields[I].DataType in [ftDate, ftTime, ftDateTime] then
          Q_MAIN.FieldS[I].ASDATETIME := DATE();
      end
      else
        Q_MAIN.FieldS[I].ASSTRING := Q_MAIN.FIELDS[I].ConstraintErrorMessage;
    end;
  end;

  SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',Convert(varchar(20),Getdate(),20),''' + LAST_ACTIVE_FORM_CAPTION + ''',''新增从表记录'')';
  Insert_log(sql_s);

end;



procedure TF_base.Q_mainAfterInsert(DataSet: TDataSet);
var
  I: INTEGER;
begin
 { for I := 0 to COMPONENTCOUNT - 1 do
    if COMPONENTS[I] is TWINCONTROL then
    begin
      if TWINCONTROL(COMPONENTS[I]).TabOrder = 0 then
      begin
        if TWINCONTROL(COmPONENTS[I]).Visible then
        try
          TWINCONTROL(COmPONENTS[I]).SetFocus;
        except
        end;
        break;
      end;
    end; }
//焦点设置完毕
//开始设置GUID
  for i := 0 to q_main.FieldCount - 1 do
    if q_main.Fields[i].DataType = ftGuid then
    begin
      CREATEGUID(NID);
      Q_MAIN.Fields[I].AsString := GUIDTOSTRING(NID);
    end;
  SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Computer,Dotime,TITLE,Havedo) VALUES(''' + LOGIN_CODE + ''',''' + computer_name + ''',Convert(varchar(20),Getdate(),20),''' + CAPTION + ''',''增加主表记录'')';
  Insert_log(sql_s);

end;

procedure TF_base.Q_mainAfterScroll(DataSet: TDataSet);
begin
  SET_BUTTON;
end;

procedure TF_base.DS_mainStateChange(Sender: TObject);
begin
  SET_BUTTON;
  set_edit_enabled;
  STATE_FLAG := Q_MAIN.STATE in [Dsedit, DSINSERT];
end;

procedure TF_base.Q_mainBeforeInsert(DataSet: TDataSet);
begin
  if Uppercase(Login_code) <> 'SYSTEM' then
    if not Is_Insert then
    begin
      MessageDlg('你没有新增记录的权限,请与管理员联系!', mtError, [mbOK], 0);
      Abort;
    end;
end;

procedure TF_base.Q_mainBeforeDelete(DataSet: TDataSet);
begin
  if Uppercase(Login_code) <> 'SYSTEM' then
    if not Is_Delete then
    begin
      MessageDlg('你没有删除记录的权限,请与管理员联系!', mtError, [mbOK], 0);
      Abort;
    end;
end;

procedure TF_base.Q_mainAfterEdit(DataSet: TDataSet);
begin
  SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Computer,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',''' + computer_name + ''',Convert(varchar(20),Getdate(),20),''' + CAPTION + ''',''修改主表记录'')';
  Insert_log(sql_s);
end;

procedure TF_base.Q_mainAfterPost(DataSet: TDataSet);
begin
  SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Computer,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',''' + computer_name + ''',Convert(varchar(20),Getdate(),20),''' + CAPTION + ''',''保存主表记录'')';
  Insert_log(sql_s);
end;

procedure TF_base.Q_mainAfterDelete(DataSet: TDataSet);
begin
  SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',Convert(varchar(20),Getdate(),20),''' + LAST_ACTIVE_FORM_CAPTION + ''',''删除主表记录'')';
  Insert_log(sql_s);
end;

procedure TF_base.Q_detailAfterDelete(DataSet: TDataSet);
begin
  SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',Convert(varchar(20),Getdate(),20),''' + LAST_ACTIVE_FORM_CAPTION + ''',''删除从表记录'')';
  Insert_log(sql_s);
end;

procedure TF_base.Q_detailAfterEdit(DataSet: TDataSet);
begin
  SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',Convert(varchar(20),Getdate(),20),''' + LAST_ACTIVE_FORM_CAPTION + ''',''修改从表记录'')';
  Insert_log(sql_s);
end;

procedure TF_base.Q_detailAfterPost(DataSet: TDataSet);
begin
  SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',Convert(varchar(20),Getdate(),20),''' + LAST_ACTIVE_FORM_CAPTION + ''',''保存从表记录'')';
  Insert_log(sql_s);
end;

procedure TF_base.Q_mainBeforeEdit(DataSet: TDataSet);
begin
  if Uppercase(Login_code) <> 'SYSTEM' then
    if (not IS_edit) then
    begin
      MessageDlg('你没有修改记录的权限,请与管理员联系!', mtError, [mbOK], 0);
      Abort;
    end;
end;

procedure TF_base.Q_detailBeforeEdit(DataSet: TDataSet);
begin
  if Uppercase(Login_code) <> 'SYSTEM' then
    if (not IS_edit) then
    begin
      MessageDlg('你没有修改记录的权限,请与管理员联系!', mtError, [mbOK], 0);
      Abort;
    end;
end;

procedure TF_base.Q_detailBeforeDelete(DataSet: TDataSet);
begin
  if Uppercase(Login_code) <> 'SYSTEM' then
    if not Is_Delete then
    begin
      MessageDlg('你没有删除记录的权限,请与管理员联系!', mtError, [mbOK], 0);
      Abort;
    end;
end;

procedure TF_base.Q_detailBeforeInsert(DataSet: TDataSet);
begin
  if Uppercase(Login_code) <> 'SYSTEM' then
    if not Is_Insert then
    begin
      MessageDlg('你没有新增记录的权限,请与管理员联系!', mtError, [mbOK], 0);
      Abort;
    end;
end;

procedure TF_base.FormKeyPress(Sender: TObject; var Key: Char);
var
  Sft: Byte;
begin
  if ActiveControl is Tdbgrideh then exit;
  //如果是wwDBGrid,则让其自行处理回车键问题


  if (Key <> #13) or //实现页面中按回车键就=TAB键,并且可以用SHFIT键回退
    (GetKeyState(VK_CONTROL) < 0) then exit;
  { Shift Key Pressed or not }
  if GetKeyState(VK_Shift) < 0 then
    Sft := 1
  else
    Sft := 0;

    //如果当前的ActiveControl的onKeyPress未被赋值,使此事件停止(#0),用於lastcontrolenterexit过程使用

    //其中TMyWinControl类中用来是把TWinControl中的OnKeyPress 给Published!  COOL!!!

  if (TForm(sender).ActiveControl is TWinControl) and assigned(TMyWinControl((sender as TForm).ActiveControl).OnKeyPress) then
    Key := #13
  else
    key := #0;


  Perform(WM_NEXTDLGCTL, Sft, 0); //  将ENTER 代替 TAB。。
end;
procedure TF_base.BitBtn1Click(Sender: TObject);
begin
Close;
end;

end.

⌨️ 快捷键说明

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