📄 userman.pas
字号:
unit userMan;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, Buttons, ExtCtrls, DB, DBTables,GlobalUnit,
ADODB,FrmMain;
type
TFuserMan = class(TForm)
Panel1: TPanel;
Label4: TLabel;
Label3: TLabel;
Label2: TLabel;
Label1: TLabel;
GroupBox1: TGroupBox;
addBitBtn: TBitBtn;
delBitBtn: TBitBtn;
modBitBtn: TBitBtn;
savBitBtn: TBitBtn;
canBitBtn: TBitBtn;
exiBitBtn: TBitBtn;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
userDBGrid: TDBGrid;
userDataSource: TDataSource;
addQuery: TQuery;
delQuery: TQuery;
modQuery: TQuery;
useraddQuery: TQuery;
usermodQuery: TQuery;
Label5: TLabel;
ComboBox1: TComboBox;
userTable: TTable;
Database1: TDatabase;
Label6: TLabel;
ComboBox2unit: TComboBox;
procedure FormCreate(Sender: TObject);
procedure addBitBtnClick(Sender: TObject);
procedure delBitBtnClick(Sender: TObject);
procedure modBitBtnClick(Sender: TObject);
procedure savBitBtnClick(Sender: TObject);
procedure canBitBtnClick(Sender: TObject);
procedure exiBitBtnClick(Sender: TObject);
procedure userTableAfterScroll(DataSet: TDataSet);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function getunitindex(unit_id:integer):integer;
var
FuserMan: TFuserMan;
newormod: string;
usercode: string; //就是user_id
unit_index:integer;//当前单位在列表中的排位
implementation
{$R *.dfm}
procedure TFuserMan.FormCreate(Sender: TObject);
begin
edit1.Enabled :=false;
edit2.Enabled :=false;
edit3.Enabled :=false;
edit4.Enabled :=false;
ComboBox2unit.Enabled :=false;
ComboBox1.Enabled :=false;
usertable.Close;
usertable.Open;
end;
procedure TFuserMan.addBitBtnClick(Sender: TObject);
begin //增加用户
newormod:='insert';
edit1.Enabled :=true;
edit2.Enabled :=true;
edit3.Enabled :=true;
edit4.Enabled :=true;
ComboBox2unit.Enabled:=true;
ComboBox1.Enabled :=true;
ComboBox1.ItemIndex:=0;
edit1.Text :='';
edit2.Text :='';
edit3.Text :='';
edit4.Text :='';
ComboBox2unit.ItemIndex:=getunitindex(g_unit_id);
ComboBox2unit.SetFocus ;
delbitbtn.Enabled :=false;
modbitbtn.Enabled :=false;
end;
procedure TFuserMan.delBitBtnClick(Sender: TObject);
begin //删除
if usertable.IsEmpty then
begin
application.MessageBox('没有用户信息可供删除!','删除用户信息时出错',MB_OK+MB_ICONEXCLAMATION);
Exit;
end;
if MessageDlg('确实要删除这条用户信息?',mtInformation,[mbYes,mbNo],0)=mrYes then
begin
Database1.StartTransaction;
DelQuery.ParamByName('user_id').AsString :=usercode;
try
DelQuery.ExecSQL;
except
Database1.Rollback;
Application.MessageBox('删除用户信息出错!','系统错误',MB_OK+MB_ICONERROR);
Exit;
end;
Database1.Commit;
usertable.Close;
usertable.Open;
end;
end;
procedure TFuserMan.modBitBtnClick(Sender: TObject);
begin
newormod:='modify';
edit1.Enabled :=false;
edit2.Enabled :=true;
edit3.Enabled :=true;
edit4.Enabled :=true;
ComboBox2unit.Enabled :=false;
ComboBox1.Enabled :=true;
edit2.SetFocus ;
addbitbtn.Enabled :=false;
delbitbtn.Enabled :=false;
end;
procedure TFuserMan.savBitBtnClick(Sender: TObject);
begin //保存
if edit1.Text ='' then
begin
showmessage('必须输入用户编号!');
edit1.SetFocus ;
exit;
end;
if edit2.Text ='' then
begin
showmessage('必须输入姓名!');
edit2.SetFocus ;
exit;
end;
if edit3.Text <>edit4.Text then
begin
showmessage('密码不一致!');
edit3.Text :='';
edit4.Text :='';
edit3.SetFocus ;
exit;
end;
if newormod='insert' then
begin
useraddquery.ParamByName('user_id').AsString :=edit1.Text ;
useraddquery.ParamByName('unit_id').AsInteger :=unit_id_group[ComboBox2unit.ItemIndex].unit_id;
useraddquery.Close;
useraddquery.Open;
if not useraddquery.IsEmpty then
begin
showmessage('已经有重复的工号,输入错误!');
edit1.Text :='';
edit1.SetFocus ;
exit;
end;
addquery.ParamByName('user_id').AsString :=edit1.Text ;
addquery.ParamByName('unit_id').AsInteger :=unit_id_group[ComboBox2unit.ItemIndex].unit_id;
addquery.ParamByName('name').AsString :=edit2.Text ;
addquery.ParamByName('password').AsString :=edit3.Text ;
addquery.ParamByName('privilege').AsInteger:=ComboBox1.ItemIndex;
try
addquery.ExecSQL ;
except
showmessage('添加用户时出错!');
exit;
end;
end;
if newormod='modify' then
begin
{
usermodquery.ParamByName('user_id').AsString :=edit1.Text ;
usermodquery.Close;
usermodquery.Open;
if not usermodquery.IsEmpty then
begin
showmessage('已经有重复的工号,输入错误!');
edit1.SetFocus ;
exit;
end;
}
modquery.ParamByName('user_id').AsString:=usercode;
modquery.ParamByName('privilege').AsInteger :=ComboBox1.ItemIndex ;
modquery.ParamByName('name').AsString :=edit2.Text ;
modquery.ParamByName('password').AsString :=edit3.Text ;
try
modquery.ExecSQL ;
except
showmessage('修改用户时出错!');
exit;
end;
end;
usertable.Close;
usertable.Open;
edit1.Enabled :=false;
edit2.Enabled :=false;
edit3.Enabled :=false;
edit4.Enabled :=false;
ComboBox2unit.Enabled :=false;
ComboBox1.Enabled :=false;
addbitbtn.Enabled :=true;
delbitbtn.Enabled :=true;
modbitbtn.Enabled :=true;
end;
procedure TFuserMan.canBitBtnClick(Sender: TObject);
begin //取消
addbitbtn.Enabled :=true;
delbitbtn.Enabled :=true;
modbitbtn.Enabled :=true;
edit1.Enabled :=false;
edit2.Enabled :=false;
edit3.Enabled :=false;
edit4.Enabled :=false;
ComboBox2unit.Enabled :=false;
ComboBox1.Enabled :=false;
end;
procedure TFuserMan.exiBitBtnClick(Sender: TObject);
begin
close;
end;
procedure TFuserMan.userTableAfterScroll(DataSet: TDataSet);
begin
unit_index:= getunitindex(userTable.fieldbyname('unit_id').AsInteger);
usercode :=userTable.fieldbyname('user_id').AsString;
ComboBox2unit.ItemIndex:=unit_index;
edit1.Text :=userTable.fieldbyname('user_id').AsString ;
edit2.Text :=userTable.fieldbyname('name').AsString ;
edit3.Text :=userTable.fieldbyname('password').AsString;
edit4.Text :=edit3.Text ;
ComboBox1.ItemIndex:=userTable.fieldbyname('privilege').AsInteger;
end;
procedure TFuserMan.FormShow(Sender: TObject);
var
i:integer;
begin
ComboBox2unit.Items.Clear;
for i:=0 to unit_id_Cnt-1 do
begin
ComboBox2unit.Items.Add(unit_id_group[i].strName);
end;
ComboBox2unit.ItemIndex:=unit_index;
end;
function getunitindex(unit_id:integer):integer;
var
unitindex:integer;
i:integer;
begin
///////////////////////////////////////////
unitindex:=0;
for i:=0 to unit_id_Cnt-1 do
begin
if unit_id_group[i].unit_id=unit_id then
begin
unitindex:=i;
break;
end;
end;
result:= unitindex;
//////////////////////////////////////////
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -