📄 ryqx_p.pas
字号:
unit ryqx_p;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGridEh, ExtCtrls, StdCtrls, Buttons, DB, DBClient;
type
Tf_ryqx = class(TForm)
dbg: TDBGridEh;
pnl2: TPanel;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
rb1: TRadioButton;
rb2: TRadioButton;
chk: TCheckBox;
Panel1: TPanel;
bt1: TSpeedButton;
bt2: TSpeedButton;
bt4: TSpeedButton;
bt3: TSpeedButton;
bt6: TSpeedButton;
bt5: TSpeedButton;
cds: TClientDataSet;
ds: TDataSource;
bt7: TSpeedButton;
cdsrybh: TAutoIncField;
cdsryxm: TStringField;
cdsdlmc: TStringField;
cdsdlmm: TStringField;
cdsryqx: TSmallintField;
cdssybj: TSmallintField;
cdssyzt: TStringField;
procedure enedit;
procedure unedit;
procedure readdata;
procedure bt6Click(Sender: TObject);
procedure cdsCalcFields(DataSet: TDataSet);
procedure bt7Click(Sender: TObject);
procedure bt1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure cdsAfterScroll(DataSet: TDataSet);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure bt2Click(Sender: TObject);
procedure bt3Click(Sender: TObject);
procedure bt4Click(Sender: TObject);
procedure bt5Click(Sender: TObject);
private
sSql:string;
vrt:olevariant;
sts:smallint;
public
{ Public declarations }
end;
var
f_ryqx: Tf_ryqx;
implementation
{$R *.dfm}
uses dm_p,main_p;
procedure Tf_ryqx.readdata;
begin
sSql:='select * from k_tkmcb where dlmc='''+f_main.dlmc+''' or lxbj=0';
dm.skc.AppServer.getdata(sSql,vrt);
cds.Active:=false;
cds.Data:=vrt;
end;
procedure Tf_ryqx.enedit;
begin
bt1.Enabled:=false;
bt2.Enabled:=false;
bt3.Enabled:=false;
bt7.Enabled:=false;
bt4.Enabled:=true;
bt5.Enabled:=true;
dbg.Enabled:=false;
edit1.ReadOnly:=false;
if sts=1 then
begin
edit2.ReadOnly:=false;
edit1.Text:='';
edit2.Text:='';
end;
rb1.Enabled:=true;
rb2.Enabled:=true;
chk.Enabled:=true;
edit1.SetFocus;
end;
procedure Tf_ryqx.unedit;
begin
bt1.Enabled:=true;
bt2.Enabled:=true;
bt3.Enabled:=true;
bt7.Enabled:=true;
bt4.Enabled:=false;
bt5.Enabled:=false;
dbg.Enabled:=true;
edit1.ReadOnly:=true;
edit2.ReadOnly:=true;
rb1.Enabled:=false;
rb2.Enabled:=false;
chk.Enabled:=false;
sts:=0;
end;
procedure Tf_ryqx.bt6Click(Sender: TObject);
begin
close;
end;
procedure Tf_ryqx.cdsCalcFields(DataSet: TDataSet);
begin
if cds.FieldByName('sybj').Asinteger=0 then
cds.FieldByName('syzt').AsString:='正常'
else cds.FieldByName('syzt').AsString:='禁用';
end;
procedure Tf_ryqx.bt7Click(Sender: TObject);
begin
//恢复用户的默认密码为 123456
if cds.IsEmpty then exit;
if application.MessageBox('您确定要将该帐户的密码恢复为123456吗?','提示信息',4+32)<>6 then exit;
dm.skc.AppServer.ExecSqls('update x_yhb set dlmm=''123456'' where dlmc='''+trim(edit2.Text)+'''')
end;
procedure Tf_ryqx.bt1Click(Sender: TObject);
begin
//添加用户
if cds.Active=false then
begin
try
cds.Open;
except
on e:exception do
begin
application.MessageBox(pchar('无法读取数据!'+#13+#13+e.Message),'错误信息',16);
exit;
end;
end;
end;
sts:=1;
enedit;
end;
procedure Tf_ryqx.FormShow(Sender: TObject);
begin
unedit;
try
cds.Open;
except
on e:exception do
begin
application.MessageBox(pchar('无法读取数据!'+#13+#13+e.Message),'错误信息',16);
exit;
end;
end;
end;
procedure Tf_ryqx.FormDestroy(Sender: TObject);
begin
cds.Close;
end;
procedure Tf_ryqx.cdsAfterScroll(DataSet: TDataSet);
begin
if sts>0 then exit;
if cds.IsEmpty then
begin
edit1.Text:='';
edit2.Text:='';
chk.Checked:=false;
rb1.Checked:=false;
rb2.Checked:=false;
exit;
end;
edit1.Text:=cds.fieldbyname('ryxm').AsString;
edit2.Text:=cds.fieldbyname('dlmc').AsString;
rb1.Checked:=cds.FieldByName('ryqx').AsInteger=0;
rb2.Checked:=cds.FieldByName('ryqx').AsInteger=1;
chk.Checked:=cds.FieldByName('sybj').AsInteger=1;
end;
procedure Tf_ryqx.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then edit2.SetFocus;
end;
procedure Tf_ryqx.bt2Click(Sender: TObject);
begin
//修改人员权限等
if cds.IsEmpty then exit;
sts:=2;
enedit;
end;
procedure Tf_ryqx.bt3Click(Sender: TObject);
begin
//删除用户帐户
if cds.IsEmpty then exit;
if application.MessageBox('您确定要删除该帐户吗?','确认信息',4+32)<>6 then exit;
try
cds.Delete;
cds.ApplyUpdates(-1);
except
on e:exception do
begin
application.MessageBox(pchar('无法删除数据!'+#13+#13+e.Message),'错误信息',16);
end;
end;
end;
procedure Tf_ryqx.bt4Click(Sender: TObject);
begin
//保存数据
if trim(edit1.Text)='' then
begin
application.MessageBox('请输入人员姓名!','提示信息',48);
edit1.SetFocus;
exit;
end;
if trim(edit2.Text)='' then
begin
application.MessageBox('请输入该帐户的登录名称!','提示信息',48);
edit2.SetFocus;
exit;
end;
try
if sts=1 then //添加新帐户,需要检查是否有重复的登录名称
begin
dm.skc.AppServer.isreged(trim(edit2.Text),vrt);
if vrt=1 then//已经存在这样的登录名称
begin
application.MessageBox('该登录名称已经存在,请修改!','提示信息',48);
edit2.SetFocus;
exit;
end
else if vrt=0 then//正常,没有重复记录
begin
cds.Append;
cds.FieldByName('ryxm').AsString:=trim(edit1.Text);
cds.FieldByName('dlmc').AsString:=trim(edit2.Text);
cds.FieldByName('dlmm').AsString:='123456';
if rb2.Checked then cds.FieldByName('ryqx').AsInteger:=1 else cds.FieldByName('ryqx').AsInteger:=0;
if chk.Checked then cds.FieldByName('sybj').AsInteger:=1;
cds.Post;
end
else //服务器端程序读取数据时出错
begin
application.MessageBox(pchar('无法读取数据!'),'错误信息',16);
end;
end
else
begin
cds.Edit;
if edit1.Modified then cds.FieldByName('ryxm').AsString:=trim(edit1.Text);
if rb2.Checked then cds.FieldByName('ryqx').AsInteger:=1 else cds.FieldByName('ryqx').AsInteger:=0;
if chk.Checked then cds.FieldByName('sybj').AsInteger:=1;
cds.Post;
end;
cds.ApplyUpdates(-1);
unedit;
cds.Refresh;
except
on e:exception do
begin
application.MessageBox(pchar('无法保存数据!'+#13+#13+e.Message),'错误信息',16);
end;
end;
end;
procedure Tf_ryqx.bt5Click(Sender: TObject);
begin
//取消
unedit;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -