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

📄 u_userface_set.pas

📁 超信人力资源管理系统,一个用Delphi编写的人事管理系统
💻 PAS
字号:
unit U_userFace_set;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, U_Form_base, DB, ADODB, Grids, DBGridEh, StdCtrls, Buttons,
  ExtCtrls;

type
  TF_UserFace_set = class(TF_Form_base)
    Panel1: TPanel;
    Label1: TLabel;
    Edit1: TEdit;
    BTN_COPY: TBitBtn;
    Edit2: TEdit;
    GroupBox2: TGroupBox;
    DBGridEh2: TDBGridEh;
    Q_mainSID: TGuidField;
    Q_mainCNID: TGuidField;
    Q_mainMainmenu: TStringField;
    Q_mainMCaption: TStringField;
    Q_mainOrderNO: TIntegerField;
    Q_detailSID: TGuidField;
    Q_detailCNID: TGuidField;
    Q_detailOrderNO: TIntegerField;
    Q_detailFormname: TStringField;
    Q_detail_Insert: TBooleanField;
    Q_detail_Edit: TBooleanField;
    Q_detail_Delete: TBooleanField;
    Q_detail_Find: TBooleanField;
    Q_detail_Print: TBooleanField;
    Q_detail_View: TBooleanField;
    Q_detail_EditPrint: TBooleanField;
    Q_detail_Aduit: TBooleanField;
    Q_detail_Other: TBooleanField;
    Label2: TLabel;
    Q_TEMP: TADOQuery;
    Q_detailFcaption: TStringField;
    GroupBox1: TGroupBox;
    DBGridEh1: TDBGridEh;
    Q_detailHasChild: TBooleanField;
    Q_detailMCaption: TStringField;
    procedure Edit1Change(Sender: TObject);
    procedure BTN_COPYClick(Sender: TObject);
    procedure Q_mainBeforeInsert(DataSet: TDataSet);
    procedure Q_mainAfterInsert(DataSet: TDataSet);
    procedure Q_detailBeforeInsert(DataSet: TDataSet);
    procedure Q_detailAfterInsert(DataSet: TDataSet);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure DBGridEh1Exit(Sender: TObject);
    procedure DBGridEh2Exit(Sender: TObject);
    procedure DBGridEh2Columns1EditButtonClick(Sender: TObject;
      var Handled: Boolean);
    procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
    procedure DBGridEh2DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
  private
    { Private declarations }
  public
    LAST_ORDER: integer;
    UserCNID: string;

    { Public declarations }

  end;

var
  F_UserFace_set: TF_UserFace_set;

implementation

uses U_data, U_Form_Select;

{$R *.dfm}





procedure TF_UserFace_set.Edit1Change(Sender: TObject);
begin
  inherited;
  SQL_S := 'Select * from TB_Acount where Ucode=''' + Trim(edit1.Text) + '''';
  SQL_OPen(sql_s);
  UserCNID := DM.Q_TempA.fieldbyname('SID').AsString; //先得到此用户的SID

  SQL_S := 'SELECT * FRoM TB_Acount_Menu WHERE Cnid in (Select SID from TB_Acount where Ucode= ''' + Trim(edit1.Text) + ''') ORDER BY OrderNo';
  Q_main.Close;
  Q_main.SQL.Clear;
  Q_main.SQL.Add(Sql_s);
  Q_main.Open;
  Dbgrideh1.ReadOnly := not (Q_main.RecordCount > 0);
  DbgridEh2.ReadOnly := not (Q_main.RecordCount > 0);
end;

procedure TF_UserFace_set.BTN_COPYClick(Sender: TObject);
var
  CODE: string;
  OCNID: string;
begin
  inherited;
  CODE := TRIM(EDIT2.TEXT);
  if UPPERCASE(CODE) = UPPERCASE(EDIT1.TEXT) then
  begin
    MessageDlg('账号相同不能复制!', mtWarning, [mbOK], 0);
    EXIT;
  end;

  if CODE = '' then
  begin
    MessageDlg('请填写好要复制的目标账号!', mtWarning, [mbOK], 0);
    Edit2.SetFocus;
    Exit;
  end;

  SQL_S := 'select * from TB_Acount_Menu where CNID in (Select Sid from TB_Acount where Ucode=''' + CODE + ''') ORDER BY OrderNo';
  DM.Q_TempC.Close;
  DM.Q_TempC.SQL.Clear;
  DM.Q_TempC.SQL.Add(Sql_s);
  DM.Q_TempC.Open;
  if DM.Q_TempC.Eof then
  begin
    MessageDlg('没有这个目标账号,请检查输入的是否正确!', mtWarning, [mbOK], 0);
    Edit2.SetFocus;
    exit;
  end;

//////////////////先删除以前的
  SQL_S := 'SELECT COUNT(*) FROM TB_Acount_Menu WHERE CNID in (select SID from TB_ACount where UCode=''' + Code + '''';
  SQL_OPEN(SQL_S);
  if DM.Q_TempA.FieldS[0].ASINTEGER > 0 then
  begin
    if APPLICATION.MessageBox('这个工号已经设置过权限,请问是否删除以前的设置', '提示', MB_YESNO) = IDYES then
    begin
      SQL_S := 'DELETE TB_Acount_menu WHERE CNID in (select SID from TB_Acount where Ucode=''' + Code + '''';
      SQL_EXEC(SQL_S);
    end;
  end;
  ////////////////////////////////    得到这个账号的CNID
  SQL_S := 'Select * from TB_Acount where Ucode=''' + code + '''';
  SQL_OPEN(Sql_s);
  OCNID := DM.Q_TempA.fieldbyname('SID').AsString;
  /////////////////////////////
  SQL_S := 'Select * from TB_Acount_Menu where CNID in (select SID from TB_Acount where Ucode=''' + edit1.Text + ''')';
  SQL_OPEN(Sql_s);
  //开始复制
  while not DM.Q_TempA.Eof do
  begin
    Q_MAIN.Append;
    Q_main.FieldByName('CNID').AsString := OCNID;
    Q_MAIN.FieldByName('Orderno').ASSTRING := DM.Q_TempA.FIELDBYNAME('Orderno').ASSTRING;
    Q_MAIN.FieldByName('Mainmenu').ASSTRING := DM.Q_TempA.FIELDBYNAME('Mainmenu').ASSTRING;
    Q_MAIN.FieldByName('MCaption').ASSTRING := DM.Q_TempA.FIELDBYNAME('MCaption').ASSTRING;
   // Q_MAIN.FieldByName('BackGround').ASSTRING:=F_DATA.Q_TEMP5.FIELDBYNAME('BackGround').ASSTRING;
    Q_MAIN.UpdateBatch(ARALL); //更新主表

    SQL_S := 'SELECT * FROM TB_Acount_detail WHERE CNID=''' + DM.Q_TempA.FIELDBYNAME('SID').ASSTRING + '''';
    DM.Q_TempC.Close;
    DM.Q_TempC.SQL.Clear;
    DM.Q_TempC.SQL.Add(SQL_S);
    DM.Q_TempC.OPEN;
    while not DM.Q_TempC.Eof do
    begin

      Q_DETAIL.APPEND;
      Q_DETAIL.FieldByName('Formname').ASSTRING := DM.Q_TempC.FIELDBYNAME('Formname').ASSTRING;
      Q_DETAIL.FieldByName('_INSERT').ASSTRING := DM.Q_TempC.FIELDBYNAME('_INSERT').ASSTRING;
      Q_DETAIL.FieldByName('_DELETE').ASSTRING := DM.Q_TempC.FIELDBYNAME('_DELETE').ASSTRING;
      Q_DETAIL.FieldByName('_EDIT').ASSTRING := DM.Q_TempC.FIELDBYNAME('_EDIT').ASSTRING;
      Q_DETAIL.FieldByName('_FIND').ASSTRING := DM.Q_TempC.FIELDBYNAME('_FIND').ASSTRING;
      Q_DETAIL.FieldByName('_OTHER').ASSTRING := DM.Q_TempC.FIELDBYNAME('_OTHER').ASSTRING;
      Q_DETAIL.FieldByName('_view').ASSTRING := DM.Q_TempC.FIELDBYNAME('_view').ASSTRING;
      Q_DETAIL.FieldByName('_Print').ASSTRING := DM.Q_TempC.FIELDBYNAME('_print').ASSTRING;
      Q_DETAIL.FieldByName('_editprint').ASSTRING := DM.Q_TempC.FIELDBYNAME('_editprint').ASSTRING;
      Q_DETAIL.FieldByName('_aduit').ASSTRING := DM.Q_TempC.FIELDBYNAME('_aduit').ASSTRING;
      Q_DETAIL.UpdateBatch(ARALL);
      ///////////////////////
      DM.Q_TempC.NEXT;
    end;
    DM.Q_TempA.next;
  end;

end;

procedure TF_UserFace_set.Q_mainBeforeInsert(DataSet: TDataSet);
begin
  inherited;
  if UserCNID = '' then Abort;
  LAST_ORDER := Q_MAIN.FIELDBYNAME('OrderNo').ASINTEGER;
end;

procedure TF_UserFace_set.Q_mainAfterInsert(DataSet: TDataSet);
begin
  inherited;
  //CREATEGUID(MY_GUID);
  //Q_MAIN.FIELDBYNAME('SID').ASSTRING := GUIDTOSTRING(MY_GUID);
  Q_main.FieldByName('CNID').AsString := Usercnid;
  Q_MAIN.FIELDBYNAME('OrderNo').ASINTEGER := LAST_ORDER + 1;
end;

procedure TF_UserFace_set.Q_detailBeforeInsert(DataSet: TDataSet);
begin
  inherited;
  LAST_ORDER := Q_detail.FIELDBYNAME('OrderNo').ASINTEGER;
end;

procedure TF_UserFace_set.Q_detailAfterInsert(DataSet: TDataSet);
//var
  //MY_GUID: TGUID;
begin
  inherited;

  //CREATEGUID(MY_GUID);
  //Q_DETAIL.FIELDBYNAME('SID').ASSTRING := GUIDTOSTRING(MY_GUID);
  Q_Detail.FieldByName('CNID').ASSTRING := Q_MAIN.FIELDBYNAME('Sid').ASSTRING;
  Q_detail.FIELDBYNAME('OrderNo').ASINTEGER := LAST_ORDER + 1;

end;

procedure TF_UserFace_set.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Q_DETAIL.UpdateBatch(ARALL);
  Q_MAIN.UpdateBatch(ARALL);
  inherited;

end;

procedure TF_UserFace_set.FormShow(Sender: TObject);
begin
  inherited;
  UserCNID := '';
  EDIT1.Text := LOGIN_CODE;
  Edit1Change(SENDER);
  //EDIT1.Enabled := Upcase(LOGIN_CODE)= 'SYSTEM';
 // BTN_COPY.enabled := Upcase(LOGIN_CODE) = 'SYSTEM';
  //DBGRIDEH1.ReadOnly := not (Upcase(LOGIN_CODE) = 'SYSTEM');
 // DBGRIDEH2.ReadOnly := not (Upcase(LOGIN_CODE) = 'SYSTEM');
  Q_DETAIL.Open;
end;

procedure TF_UserFace_set.DBGridEh1Exit(Sender: TObject);
begin
  inherited;
  Q_MAIN.UpdateBatch(ARALL);
end;

procedure TF_UserFace_set.DBGridEh2Exit(Sender: TObject);
begin
  inherited;
  Q_DETAIL.UpdateBatch(ARALL)
end;

procedure TF_UserFace_set.DBGridEh2Columns1EditButtonClick(Sender: TObject;
  var Handled: Boolean);
begin
  inherited;
  Application.CreateForm(TF_Form_Select, F_Form_Select);
  F_Form_Select.ShowModal;
  Q_DETAIL.EDIT;
  Q_DETAIL.FIELDBYNAME('Formname').ASSTRING := F_Form_Select.RESULT_FORM;
  F_Form_Select.RELEASE;
end;

procedure TF_UserFace_set.DBGridEh1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumnEh;
  State: TGridDrawState);
begin
  inherited;
  MYDBGridEHDrawColumnCelL(DBGRIDEH1, Rect, Datacol, Column, State);
end;

procedure TF_UserFace_set.DBGridEh2DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumnEh;
  State: TGridDrawState);
begin
  inherited;
  MYDBGridEHDrawColumnCelL(DBGRIDEH2, Rect, Datacol, Column, State);
end;

initialization
  RegisterClass(TF_UserFace_set);
end.

⌨️ 快捷键说明

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