u_form_base.pas

来自「超信人力资源管理系统,一个用Delphi编写的人事管理系统」· PAS 代码 · 共 481 行 · 第 1/2 页

PAS
481
字号


  F_MAIN.Caption := '超信人力资源管理系统----' + CAPTION + ' 授权於:' + COMPANY_NAME;


  //================================设置权限给全局变量==========================
  //MY_popedom.Is_Edit := IS_Edit;
 //MY_popedom.Is_Insert := IS_Insert;
 //MY_popedom.Is_Delete := IS_Delete;
  //MY_popedom.Is_Find := IS_Find;
 //MY_popedom.Is_Other := IS_Other;
 // MY_popedom.IS_View := IS_View;
// MY_popedom.IS_Print := IS_Print;
 //MY_popedom.IS_EditPrint := IS_EditPrint;
 //MY_popedom.IS_Aduit := IS_Aduit;
 //============================================================================

end;

procedure TF_Form_base.FormClose(Sender: TObject; var Action: TCloseAction);
var
  I: INTEGER;
begin
  //关闭数据集

  Q_DETAIL.CLOSE;
  Q_MAIN.CLOSE;
  for I := Q_MAIN.FIELDCOUNT - 1 downto 0 do
    if Q_MAIN.FIELDS[I].TAG = 100 then
    begin
      Q_MAIN.Fields.Remove(Q_MAIN.FIELDS[I]);
    end;

 // M_TABLE := nil;
 // D_table:=nil;

 //Sql_s:='Update TB_form set Width='+inttostr(self.Width)+',Height='+inttostr(self.Height)


 //退出时设置权限   释放权限
  Is_Edit := FALSE;
  Is_Insert := FALSE;
  Is_Delete := FALSE;
  Is_Find := FALSE;
  Is_Other := FALSE;
  IS_View := FALSE;
  IS_Print := FALSE;
  IS_EditPrint := FALSE;
  IS_Aduit := FALSE;

  SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,computer,logouttime,Dotime,Title,Havedo) VALUES(''' + LOGIN_CODE + ''',''' + computer_name + ''',Convert(varchar(20),Getdate(),20),Convert(varchar(20),Getdate(),20),''' + CAPTION + ''',''退出'')';
  INSERT_LOG(SQL_S);

  //===========================================保存窗体属性=====================
  SQL_S := 'Update TB_Form set width=' + inttostr(Width) + ',Height=' + inttostr(Height) + ',Formtop=' + inttostr(top) + ',FormLeft=' + inttostr(left)
    + ' where Formname=''' + name + '''';
  SQL_exec(sql_s);

  //============================================================================

  Action := cafree;

end;

procedure TF_Form_base.Q_detailAfterInsert(DataSet: TDataSet);
var
  I: INTEGER;
begin
//开始设置GUID  //对从表而言将SID创建,CNID则可将主表的CNID加入
  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,computer,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',''' + computer_name + ''',Convert(varchar(20),Getdate(),20),''' + CAPTION + ''',''新增从表记录'')';
  Insert_log(sql_s);
end;



procedure TF_Form_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_Form_base.DS_mainStateChange(Sender: TObject);
begin

 //set_edit_enabled;
// STATE_FLAG := Q_MAIN.STATE in [Dsedit,DSINSERT];
end;

procedure TF_Form_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_Form_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_Form_base.Q_mainAfterDelete(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_Form_base.Q_detailAfterDelete(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_Form_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_Form_base.Q_detailAfterEdit(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_Form_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_Form_base.Q_detailAfterPost(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_Form_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_Form_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_Form_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_Form_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;

end.

⌨️ 快捷键说明

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