📄 opercode.pas
字号:
unit OperCode;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Mask, DBCtrls, Grids, DBGrids;
type
TfrmOperCode = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
lbPass: TLabel;
cmdAdd: TBitBtn;
cmdModify: TBitBtn;
cmdSave: TBitBtn;
txtWorkNo: TEdit;
txtPass: TEdit;
GroupBox2: TGroupBox;
dgOper: TDBGrid;
Label3: TLabel;
cmbLimit: TComboBox;
cmdExit: TButton;
cmdDel: TButton;
cmdQuery: TButton;
Label4: TLabel;
txtName: TEdit;
procedure cmdQueryClick(Sender: TObject);
procedure cmdExitClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure cmdAddClick(Sender: TObject);
procedure cmdSaveClick(Sender: TObject);
procedure cmdModifyClick(Sender: TObject);
procedure dgOperCellClick(Column: TColumn);
procedure cmdDelClick(Sender: TObject);
procedure txtWorkNoKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtNameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cmbLimitKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtPassKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
procedure OperLimit;
public
{ Public declarations }
end;
var
frmOperCode: TfrmOperCode;
implementation
uses dmPawn, Msg;
{$R *.DFM}
var
EnterTimes:integer;
QueryOpenMark:Boolean;
procedure TfrmOperCode.OperLimit;
begin
with cmbLimit.Items do
begin
Add('系统操作员');
Add('系统管理员');
end;
cmbLimit.ItemIndex :=0;
end;
procedure TfrmOperCode.cmdQueryClick(Sender: TObject);
var
Sql:string;
begin
if cmdAdd.Enabled=False then
cmdAdd.Enabled:=True;
if cmdSave.Enabled=True then
cmdSave.Enabled:=False;
if cmdModify.Enabled=False then
cmdModify.Enabled:=True;
if lbPass.Visible=True then
lbPass.Visible:=False;
if txtPass.Visible=True then
txtPass.Visible:=False;
if txtWorkNo.ReadOnly=True then
txtWorkNo.ReadOnly:=False;
dgOper.DataSource:=dmPawnFrm.dsQOper;
Sql:='select * from OperCode_Tbl where True ';
if txtWorkNo.Text<>'' then
begin
Sql:=Sql+ 'and WorkNo=:WorkNo ';
end;
with dmPawnFrm do
begin
dqOper.Close;
dqOper.SQL.Clear;
dqOper.SQL.Add(Sql);
if txtWorkNo.Text<>'' then
begin
dqOper.ParamByName('WorkNo').asstring:=trim(txtWorkNo.text);
end;
dqOper.Open;
if QueryOpenMark=False then
begin
QueryOpenMark:=True;
end;
end;
end;
procedure TfrmOperCode.cmdExitClick(Sender: TObject);
begin
close;
end;
procedure TfrmOperCode.FormShow(Sender: TObject);
begin
cmdSave.Enabled:=False;
OperLimit;
dmPawnFrm.dqOper.Close;
if QueryOpenMark=True then
begin
QueryOpenMark:=False;
end;
end;
procedure TfrmOperCode.cmdAddClick(Sender: TObject);
begin
txtWorkNo.Text:='';
txtName.Text:='';
txtPass.Text:='';
if txtWorkNo.ReadOnly=True then
txtWorkNo.ReadOnly:=False;
if lbPass.Visible=False then
lbPass.Visible:=True;
if txtPass.Visible=False then
txtPass.Visible:=True;
if cmdModify.Enabled=True then
self.cmdModify.Enabled:=False;
if cmdSave.Enabled=False then
cmdSave.Enabled:=True;
txtWorkNo.SetFocus ;
end;
procedure TfrmOperCode.cmdSaveClick(Sender: TObject);
begin
if lbPass.Visible=True then
lbPass.Visible:=False;
if txtPass.Visible=True then
txtPass.Visible:=False;
if txtWorkNo.Text='' then
begin
messagedlg(Msg.MsgOperCode,mtWarning,[mbYes],0);
exit;
end;
if txtName.Text='' then
begin
messagedlg(Msg.MsgOperName,mtWarning,[mbYes],0);
exit;
end;
if txtPass.Text='' then
begin
messagedlg(Msg.MsgOperPass,mtWarning,[mbYes],0);
exit;
end;
if cmdAdd.Enabled=False then //是修改
begin
with dmPawnFrm do
begin
tblOperCode.Open;
tblOperCode.SetKey;
tblOperCode.FieldByName('WorkNo').Asstring:=trim(txtWorkNo.Text);
if tblOperCode.GotoKey then
begin
tblOperCode.DisableControls ;
tblOperCode.Edit;
tblOperCodeName.Value:=trim(txtName.text);
tblOperCodePassword.Value:=trim(txtPass.text);
tblOperCodeLimit.Value:=trim(cmbLimit.text);
tblOperCode.Post;
tblOperCode.EnableControls ;
end
else
messagedlg(Msg.MsgNoOper,mtWarning,[mbYes],0);
tblOperCode.Close;
end;
cmdAdd.Enabled:=True;
end;
if cmdModify.Enabled=False then //是新增
begin
with dmPawnFrm do
begin
tblOperCode.Open;
tblOperCode.Insert;
tblOperCode.DisableControls ;
tblOperCodeWorkNo.Value:=trim(txtWorkNo.Text);
tblOperCodeName.Value:=trim(txtName.text);
tblOperCodePassword.Value:=trim(txtPass.text);
tblOperCodeLimit.Value:=trim(cmbLimit.text);
tblOperCode.Post;
tblOperCode.EnableControls ;
tblOperCode.Close;
end;
cmdModify.Enabled:=True;
end;
dgOper.DataSource:=dmPawnFrm.dsOperCode;
dmPawnFrm.tblOperCode.Open;
cmdSave.Enabled:=False;
end;
procedure TfrmOperCode.cmdModifyClick(Sender: TObject);
begin
if lbPass.Visible=False then
lbPass.Visible:=True;
if txtPass.Visible=False then
txtPass.Visible:=True;
if txtWorkNo.ReadOnly=False then
txtWorkNo.ReadOnly:=True;
if cmdAdd.Enabled=True then
cmdAdd.Enabled:=False;
if cmdSave.Enabled=False then
cmdSave.Enabled:=True;
txtName.SetFocus ;
end;
procedure TfrmOperCode.dgOperCellClick(Column: TColumn);
begin
if QueryOpenMark=True then
begin
if dgOper.Columns[0].Field.IsNull then
txtName.Text:=''
else
txtName.Text:=dgOper.Columns[0].Field.Value;
if dgOper.Columns[1].Field.IsNull then
txtWorkNo.Text:=''
else
txtWorkNo.Text:=dgOper.Columns[1].Field.Value;
if dgOper.Columns[2].Field.IsNull then
txtPass.Text:=''
else
txtPass.Text:=dgOper.Columns[2].Field.Value;
if dgOper.Columns[3].Field.IsNull then
cmbLimit.Text:=''
else
cmbLimit.Text:=dgOper.Columns[3].Field.Value;
end
else
begin
txtName.Text:='';
txtWorkNo.Text:='';
txtPass.Text:='';
cmbLimit.ItemIndex:=0;
txtWorkNo.SetFocus;
end;
end;
procedure TfrmOperCode.cmdDelClick(Sender: TObject);
begin
if cmdAdd.Enabled=False then
cmdAdd.Enabled:=True;
if txtWorkNo.Text='' then
begin
messagedlg(Msg.MsgOperWorkNo,mtWarning,[mbYes],0);
exit;
end;
with dmPawnFrm do
begin
tblOperCode.Open;
tblOperCode.SetKey;
tblOperCode.FieldByName('WorkNo').Asstring:=trim(txtWorkNo.Text);
if tblOperCode.GotoKey then
begin
tblOperCode.Delete;
txtWorkNo.Text:='';
txtName.Text:='';
end;
tblOperCode.Close;
end;
dgOper.DataSource:=dmPawnFrm.dsOperCode;
dmPawnFrm.tblOperCode.Open;
end;
procedure TfrmOperCode.txtWorkNoKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then
txtName.SetFocus;
end;
procedure TfrmOperCode.txtNameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then
cmbLimit.SetFocus ;
end;
procedure TfrmOperCode.cmbLimitKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if EnterTimes=0 then
begin
EnterTimes:=EnterTimes+1;
if key=VK_RETURN then
begin
if SendMessage((Sender as TComBoBox).handle,CB_GetDroppedState,0,0)
=0 then
PostMessage((Sender as TComBoBox).handle,CB_SHOWDROPDOWN,1,0);
end;
end
else
begin
EnterTimes:=0;
if txtPass.Visible=True then
txtPass.SetFocus
else
cmdAdd.SetFocus ;
end;
end;
procedure TfrmOperCode.txtPassKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then
cmdSave.SetFocus;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -