📄 operatoradd.pas
字号:
unit OperatorAdd;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, Buttons;
type
TFrm_OperatorAdd = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Bevel1: TBevel;
Bevel2: TBevel;
Edt_Id: TEdit;
Edt_gname: TEdit;
Edt_Passwd: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
ckbx_Card: TCheckBox;
ckbx_system: TCheckBox;
ckbx_report: TCheckBox;
Label4: TLabel;
Label5: TLabel;
Bevel3: TBevel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
edt_Tel: TEdit;
cmbBX_Sex: TComboBox;
procedure FormActivate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
procedure ValidCheck(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_OperatorAdd: TFrm_OperatorAdd;
implementation
uses sys_dm, sys_global, operator ;
{$R *.DFM}
var
checkFlag: char;
oldid: string ;
procedure TFrm_OperatorAdd.FormActivate(Sender: TObject);
begin
// 若为增加
if M_mode = 'a' then
begin
ckbx_system.Checked := true ;
ckbx_Card.Checked := true ;
ckbx_report.Checked := true ;
end;
// 若为修改
if M_mode = 'e' then
with frm_sys_dm.qr_tmp1 do
begin
oldid := Fieldbyname('Id').AsString ;
Edt_Id.text := Fieldbyname('Id').AsString ;
Edt_gname.text := Fieldbyname('gname').AsString ;
cmbBX_Sex.Text := Fieldbyname('sex').AsString ;
Edt_tel.text := Fieldbyname('tel').AsString ;
Edt_Passwd.text := Fieldbyname('Passwd').AsString ;
if fieldbyname('R_system').asstring = '1' then
ckbx_system.Checked := true
else
ckbx_system.Checked := false ;
if fieldbyname('R_Card').asstring = '1' then
ckbx_Card.Checked := true
else
ckbx_Card.Checked := false ;
if fieldbyname('R_report').asstring = '1' then
ckbx_report.Checked := true
else
ckbx_report.Checked := false ;
if UpperCase(Edt_Id.text) = 'SYS' then
begin
edt_id.Enabled := false ;
edt_gName.Enabled := false ;
edt_passwd.SetFocus ;
edt_passwd.SelLength := 0;
end;
end;
end;
procedure TFrm_OperatorAdd.ValidCheck(Sender: TObject);
begin
Edt_Id.text := trim(Edt_Id.text);
Edt_gname.text := trim(Edt_gname.text);
cmbBX_Sex.Text := trim(cmbBX_Sex.Text) ;
Edt_Passwd.text := trim(Edt_Passwd.text);
if Edt_Id.text = '' then begin
MessageBox(handle, ' 要有编号! ','错误提示', mb_ok+mb_iconstop);
edt_id.SetFocus ;
checkFlag := '0' ;
exit;
end;
if Edt_gname.text = '' then begin
MessageBox(handle, ' 要有姓名! ','错误提示', mb_ok+mb_iconstop);
edt_gname.SetFocus ;
checkFlag := '0' ;
exit;
end;
end;
procedure TFrm_OperatorAdd.BitBtn1Click(Sender: TObject);
begin
checkFlag := '1' ;
ValidCheck(sender);
if checkFlag='0' then exit; // 若检查通不过
if M_mode = 'a' then
with frm_sys_dm.qr_tmp2 do
begin
close;
sql.clear;
sql.add('insert into operator');
sql.add('(id,gname,sex,tel,passwd,r_system,r_card,r_report)');
sql.add('values (:id,:gname,:sex,:tel,:passwd,:r_system,:r_card,:r_report)');
Parameters.parambyname('id').value := edt_id.text ;
Parameters.parambyname('gname').value := edt_gname.text ;
Parameters.parambyname('sex').value := cmbBX_Sex.Text ;
Parameters.parambyname('tel').value := edt_tel.text ;
Parameters.parambyname('passwd').value := edt_passwd.text ;
if ckbx_system.Checked then
Parameters.parambyname('R_system').value := '1'
else
Parameters.parambyname('R_system').value := '0' ;
if ckbx_Card.Checked then
Parameters.parambyname('R_Card').value := '1'
else
Parameters.parambyname('R_Card').value := '0' ;
if ckbx_report.Checked then
Parameters.parambyname('R_report').value := '1'
else
Parameters.parambyname('R_report').value := '0' ;
try
execsql;
except
messagebox(handle, '电脑出错,未能删除该条记录!','错误提示',mb_ok+mb_iconstop);
edt_gname.SetFocus ;
exit;
end;
end;
// 修改一条记录
if M_mode = 'e' then
with frm_sys_dm.qr_tmp2 do
begin
close;
sql.clear;
sql.add('update operator');
sql.add('set id=:newid,gname=:gname,sex=:sex,tel=:tel,passwd=:passwd,R_system=:R_system,R_card=:R_card,R_report=:R_report');
sql.add('where id=:oldid');
Parameters.parambyname('newid').value := edt_id.text ;
Parameters.parambyname('gname').value := edt_gname.text ;
Parameters.parambyname('sex').value := cmbBX_Sex.Text ;
Parameters.parambyname('tel').value := edt_tel.text ;
Parameters.parambyname('passwd').value := edt_passwd.text ;
Parameters.parambyname('oldid').value := oldid ;
if ckbx_system.Checked then
Parameters.parambyname('R_system').value := '1'
else
Parameters.parambyname('R_system').value := '0' ;
if ckbx_Card.Checked then
Parameters.parambyname('R_Card').value := '1'
else
Parameters.parambyname('R_Card').value := '0' ;
if ckbx_report.Checked then
Parameters.parambyname('R_report').value := '1'
else
Parameters.parambyname('R_report').value := '0' ;
try
execsql;
except
messagebox(handle, '电脑出错,未能更改该条记录!','错误提示',mb_ok+mb_iconstop);
edt_gname.SetFocus ;
exit;
end;
end;
with frm_sys_dm.qr_tmp1 do // 对增加和修改重新显示
begin
close;
open;
locate('id',edt_Id.text,[]); // 定位于增加或修改的记录
end;
close;
end;
procedure TFrm_OperatorAdd.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
frm_sys_dm.qr_tmp2.close;
end;
procedure TFrm_OperatorAdd.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
vk_return:
begin
if ((activecontrol is tcombobox) and ((ssalt in shift) or (activecontrol as tcombobox).droppeddown)) then
exit;
SelectNext(ActiveControl As Twincontrol,true,true);
key:=0;
end;
vk_up,vk_down:
begin
if (ssAlt in shift) or ((ActiveControl is Tcombobox)and((ActiveControl as Tcombobox).droppeddown)) then
exit;
SelectNext(ActiveControl As Twincontrol,key=vk_down,true);
key:=0;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -