📄 yhzczx.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 + -