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

📄 yhzczx.pas

📁 服务信息管理系统
💻 PAS
字号:
unit yhzczx;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, StdCtrls, Grids, DBGrids, ImgList, ExtCtrls,
  ComCtrls, ToolWin, Mask, DBCtrls;

type
  Tfrmyhzczx = class(TForm)
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    SaveToolButton: TToolButton;
    CloseToolButton: TToolButton;
    Panel1: TPanel;
    ImageList: TImageList;
    czyTable: TTable;
    Panel2: TPanel;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    deleteToolButton: TToolButton;
    EditToolButton: TToolButton;
    addToolButton: TToolButton;
    QxszToolButton: TToolButton;
    ToolButton6: TToolButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure CloseToolButtonClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure DBGrid1ColEnter(Sender: TObject);
    procedure addToolButtonClick(Sender: TObject);
    procedure Edit4Enter(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure Edit3Exit(Sender: TObject);
    procedure Edit3Enter(Sender: TObject);
    procedure Edit4Exit(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure Edit2Exit(Sender: TObject);
    procedure SaveToolButtonClick(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure Edit4Change(Sender: TObject);
    procedure EditToolButtonClick(Sender: TObject);
    procedure deleteToolButtonClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure QxszToolButtonClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    lsbl_zfcd: Integer; //字符长度变量
    lsbl_czybh: string; //临时操作员编号
    lsbl_save: Boolean; //数据保存状态
    czy_edit: string; //数据编辑状态
  end;

var
  frmyhzczx: Tfrmyhzczx;

implementation
uses yhgnqxsz, mainform;
{$R *.dfm}

procedure Tfrmyhzczx.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
  frmyhzczx := nil;
end;

procedure Tfrmyhzczx.CloseToolButtonClick(Sender: TObject);
begin
  Close;
end;

procedure Tfrmyhzczx.FormShow(Sender: TObject);
begin
  czytable.open;
  czytable.First;
  if not czytable.Eof then
    begin
      Edit1.Text := czytable.FieldValues['czyy_bh'];
      Edit2.Text := czytable.FieldValues['czyy_xm'];
      Edit3.Text := czytable.FieldValues['czyy_mm'];
      Edit4.Text := czytable.FieldValues['czyy_mm'];
    end;
end;

procedure Tfrmyhzczx.DBGrid1ColEnter(Sender: TObject);
begin
  if SaveToolbutton.Enabled = True then
    begin
      case MessageDlg('数据已修改,是否保存修改?', mtConfirmation, mbYesNoCancel, 0) of
        mrYes:
          begin
            saveToolbutton.Click;
            exit;
          end;
        mrCancel:
          begin
            Edit1.setfocus;
            exit;
          end;
      end;
    end;
  Edit1.Enabled := False;
  Edit2.Enabled := False;
  Edit3.Enabled := False;
  Edit4.Enabled := False;
  AddToolButton.Enabled := True;
  EditToolButton.Enabled := True;
  DeleteToolbutton.Enabled := True;
  SaveToolbutton.Enabled := False;
  if not czytable.Eof then
    begin
      lsbl_czybh := czytable.FieldValues['czyy_bh'];
      Edit1.Text := czytable.FieldValues['czyy_bh'];
      Edit2.Text := czytable.FieldValues['czyy_xm'];
      Edit3.Text := czytable.FieldValues['czyy_mm'];
      Edit4.Text := czytable.FieldValues['czyy_mm'];
    end;
  Edit1.Color := cl3DLight;
  Edit2.Color := cl3DLight;
  Edit3.Color := cl3DLight;
  Edit4.Color := cl3DLight;
  Edit1.Font.Color := clGray;
  Edit2.Font.Color := clGray;
  Edit3.Font.Color := clGray;
  Edit4.Font.Color := clGray;
end;

procedure Tfrmyhzczx.addToolButtonClick(Sender: TObject);
begin
  czy_edit := 'Add';
  AddToolButton.Enabled := False;
  EditToolButton.Enabled := False;
  DeleteToolbutton.Enabled := False;
  Edit1.Color := clwindow;
  Edit2.Color := clwindow;
  Edit3.Color := clwindow;
  Edit4.Color := clwindow;
  Edit1.Font.Color := clWindowText;
  Edit2.Font.Color := clWindowText;
  Edit3.Font.Color := clWindowText;
  Edit4.Font.Color := clWindowText;
  Edit1.Text := '';
  Edit2.Text := '';
  Edit3.Text := '          ';
  Edit4.Text := '          ';
  Edit1.Enabled := True;
  Edit2.Enabled := True;
  Edit3.Enabled := True;
  Edit4.Enabled := True;
  Edit1.SetFocus;
end;

procedure Tfrmyhzczx.Edit4Enter(Sender: TObject);
begin
  Edit4.Text := Trim(Edit4.Text);
end;

procedure Tfrmyhzczx.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
    begin
      SelectNext(ActiveControl, True, True);
      Key := #0;
    end;
end;

procedure Tfrmyhzczx.Edit3Exit(Sender: TObject);
begin
  if Length(Edit3.Text) < 10 then
    begin
      lsbl_zfcd := 10 - Length(Edit3.Text);
      Edit3.Text := Edit3.Text + Copy('          ', 1, lsbl_zfcd);
    end
end;

procedure Tfrmyhzczx.Edit3Enter(Sender: TObject);
begin
  Edit3.Text := Trim(Edit3.Text);
end;

procedure Tfrmyhzczx.Edit4Exit(Sender: TObject);
var
  lsbl_zfcd: Integer;
begin
  if Length(Edit4.Text) < 10 then
    begin
      lsbl_zfcd := 10 - Length(Edit4.Text);
      Edit4.Text := Edit4.Text + Copy('          ', 1, lsbl_zfcd);
    end
end;

procedure Tfrmyhzczx.Edit1Exit(Sender: TObject);
begin
  if Edit1.Text = '' then
    begin
      MessageDlg('用户编号不能为空', mtError, [mbOk], 0);
      Edit1.SetFocus;
      exit;
    end
  else
    begin
      lsbl_zfcd := Length(Edit1.Text);
      if lsbl_zfcd < 4 then
        begin
          lsbl_zfcd := 4 - lsbl_zfcd;
          Edit1.Text := Copy('0000', 1, lsbl_zfcd) + Edit1.Text;
        end;
    end;
end;

procedure Tfrmyhzczx.Edit2Exit(Sender: TObject);
begin
  if Edit2.Text = '' then
    begin
      MessageDlg('用户姓名不能为空', mtError, [mbOk], 0);
      Edit2.SetFocus;
    end
end;

procedure Tfrmyhzczx.SaveToolButtonClick(Sender: TObject);
var
  cMessage: string;
begin
  if Edit1.Text = '' then
    begin
      MessageDlg('用户编号不能为空', mtError, [mbOk], 0);
      lsbl_save := False;
      Edit1.SetFocus;
      exit;
    end
  else
    begin
      lsbl_zfcd := Length(Edit1.Text);
      if lsbl_zfcd < 4 then
        begin
          lsbl_zfcd := 4 - lsbl_zfcd;
          Edit1.Text := Copy('0000', 1, lsbl_zfcd) + Edit1.Text;
        end
    end;

  if Edit2.Text = '' then
    begin
      MessageDlg('用户姓名不能为空', mtError, [mbOk], 0);
      lsbl_save := False;
      Edit2.SetFocus;
      exit;
    end;

  if czy_edit = 'Add' then
    begin
      if czytable.FindKey([Edit1.Text]) then
        begin
          cMessage := '已有用户使用此编号' + chr(13) + '用户编号:';
          cMessage := cMessage + czytable.FieldValues['czyy_bh'] + chr(13) + '用户姓名:';
          cMessage := cMessage + czytable.FieldValues['czyy_xm'];
          MessageDlg(cMessage, mtError, [mbOk], 0);
          lsbl_save := False;
          Edit1.SetFocus;
          exit;
        end;
    end;

  if (czy_edit = 'Edit') and (Trim(lsbl_czybh) <> Trim(Edit1.Text)) then
    begin
      if czytable.FindKey([Edit1.Text]) then
        begin
          cMessage := '已有用户使用此编号' + chr(13) + '用户编号:';
          cMessage := cMessage + czytable.FieldValues['czyy_bh'] + chr(13) + '用户姓名:';
          cMessage := cMessage + czytable.FieldValues['czyy_xm'];
          MessageDlg(cMessage, mtError, [mbOk], 0);
          lsbl_save := False;
          Edit1.SetFocus;
          exit;
        end;
    end;

  if Trim(Edit3.Text) <> Trim(Edit4.Text) then
    begin
      MessageDlg('输入的密码不一致', mtError, [mbOk], 0);
      lsbl_save := False;
      exit;
    end;

  with czytable do
    begin
      if czy_edit = 'Add' then
        begin
          try
            insert;
            FieldByName('czyy_bh').AsString := Edit1.Text;
            FieldByName('czyy_xm').AsString := Edit2.Text;
            FieldByName('czyy_mm').AsString := Edit3.Text;
            post;
            SaveToolbutton.Enabled := False;
            lsbl_save := True;
          except
            cancel;
            MessageDlg('保存数据失败', mtError, [mbOk], 0);
            lsbl_save := False;
            exit;
          end;
        end;
      if czy_edit = 'Edit' then
        begin
          try
            if czytable.FindKey([lsbl_czybh]) then
              begin
                Edit;
                FieldByName('czyy_bh').AsString := Edit1.Text;
                FieldByName('czyy_xm').AsString := Edit2.Text;
                FieldByName('czyy_mm').AsString := Edit3.Text;
                post;
                lsbl_save := True;
              end;
            if sys_czybh = lsbl_czybh then
              begin
                sys_czybh := Edit1.Text;
                sys_czyxm := Edit2.Text;
                sysform.mainstatusbar.Panels[1].text := '操作员:' + sys_czyxm;
              end;
          except
            cancel;
            MessageDlg('保存数据失败', mtError, [mbOk], 0);
            lsbl_save := False;
            exit;
          end;
        end;
    end;
  AddToolButton.Enabled := True;
  EditToolButton.Enabled := True;
  DeleteToolbutton.Enabled := True;
  SaveToolbutton.Enabled := False;
  Edit1.Enabled := False;
  Edit2.Enabled := False;
  Edit3.Enabled := False;
  Edit4.Enabled := False;
  lsbl_czybh := czytable.FieldValues['czyy_bh'];
  Edit1.Text := czytable.FieldValues['czyy_bh'];
  Edit2.Text := czytable.FieldValues['czyy_xm'];
  Edit3.Text := czytable.FieldValues['czyy_mm'];
  Edit4.Text := czytable.FieldValues['czyy_mm'];
  Edit1.Color := cl3DLight;
  Edit2.Color := cl3DLight;
  Edit3.Color := cl3DLight;
  Edit4.Color := cl3DLight;
  Edit1.Font.Color := clGray;
  Edit2.Font.Color := clGray;
  Edit3.Font.Color := clGray;
  Edit4.Font.Color := clGray;
end;

procedure Tfrmyhzczx.Edit1Change(Sender: TObject);
begin
  if edit1.Enabled = True then
    SaveToolbutton.Enabled := True;
end;

procedure Tfrmyhzczx.Edit2Change(Sender: TObject);
begin
  if edit2.Enabled = True then
    SaveToolbutton.Enabled := True;
end;

procedure Tfrmyhzczx.Edit3Change(Sender: TObject);
begin
  if edit3.Enabled = True then
    SaveToolbutton.Enabled := True;
end;

procedure Tfrmyhzczx.Edit4Change(Sender: TObject);
begin
  if edit4.Enabled = True then
    SaveToolbutton.Enabled := True;
end;

procedure Tfrmyhzczx.EditToolButtonClick(Sender: TObject);
begin
  czy_edit := 'Edit';
  EditToolbutton.Enabled := False;
  AddToolButton.Enabled := False;
  DeleteToolbutton.Enabled := False;
  Edit3.Color := clwindow;
  Edit4.Color := clwindow;
  Edit3.Font.Color := clWindowText;
  Edit4.Font.Color := clWindowText;
  Edit3.Enabled := True;
  Edit4.Enabled := True;
  if edit1.Text <> '0000' then
    begin
      Edit1.Color := clwindow;
      Edit2.Color := clwindow;
      Edit1.Font.Color := clWindowText;
      Edit2.Font.Color := clWindowText;
      Edit1.Enabled := True;
      Edit2.Enabled := True;
      Edit1.SetFocus;
    end
  else
    begin
      Edit3.SetFocus;
    end;
end;

procedure Tfrmyhzczx.deleteToolButtonClick(Sender: TObject);
var
  cMessage: string;
begin
  if not czytable.Eof then
    begin
      if czytable.FieldValues['czyy_bh'] <> '0000' then
        begin
          cMessage := '确实要删除【' + czytable.FieldValues['czyy_bh'];
          cMessage := cMessage + ' ' + Trim(czytable.FieldValues['czyy_xm']) + '】用户吗';
          if MessageDlg(cMessage, mtConfirmation, [mbYes, mbNo], 0) = mrYes then
            czytable.Delete;
          DbGrid1.OnColEnter(sender);
        end
      else
        begin
          MessageDlg('超级用户不能被删除', mtWarning, [mbOk], 0);
        end;
    end;
end;

procedure Tfrmyhzczx.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  if SaveToolbutton.Enabled = True then
    begin
      case MessageDlg('数据已修改,是否保存修改?', mtConfirmation, mbYesNoCancel, 0) of
        mrYes:
          begin
            saveToolbutton.Click;
            if lsbl_save = False then
              Canclose := False;
          end;
        mrCancel: Canclose := False;
      end;
    end;
end;

procedure Tfrmyhzczx.QxszToolButtonClick(Sender: TObject);
begin
  if not czytable.Eof then
    begin
      frmyhgnsz := Tfrmyhgnsz.Create(Self);
      with frmyhgnsz do
        begin
          Edit4.Text := Trim(czytable.FieldByName('czyy_bh').AsString);
          Edit5.Text := Trim(czytable.FieldByName('czyy_xm').AsString);
          ShowModal;
        end;
    end;
end;

end.

⌨️ 快捷键说明

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