📄 adduser.pas
字号:
unit AddUser;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm3 = class(TForm)
AddBBtn: TBitBtn;
ExitBBtn: TBitBtn;
Label1: TLabel;
NameEdit: TEdit;
Label2: TLabel;
NumberEdit: TEdit;
Label3: TLabel;
DepartmentBox: TComboBox;
ChangeBBtn: TBitBtn;
BitBtn3: TBitBtn;
procedure FormShow(Sender: TObject);
procedure NumberEditKeyPress(Sender: TObject; var Key: Char);
procedure ExitBBtnClick(Sender: TObject);
procedure AddBBtnClick(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure ChangeBBtnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
number,name,department:string;
function RepeatNumber(Num:string):boolean;//检查数据库中是否存在相同号码,存在则为true。
end;
var
Form3: TForm3;
implementation
uses main;
{$R *.dfm}
procedure TForm3.FormShow(Sender: TObject);
var
i:integer;
begin
with Form1.BookQuery do
begin
SQL.Clear;
SQL.Add('select * from Department');
open;
if RecordCount<>0 then
begin
first;
for i:=0 to RecordCount-1 do
begin
DepartmentBox.Items.Add(trim(FieldByName('DepartmentName').AsString));
next;
end;
end;
close; //关闭BookQuery
end;
DepartmentBox.SetFocus;
if changebbtn.Visible then
begin
//========数据库========================================
form1.ADOTable_Edit.TableName:='yujing';
form1.ADOTable_Edit.Active:=true;
form1.ADOTable_Edit.Locate('id',strtoid(form1.treeview1.Selected.Text),[]);
nameedit.text:=trim(form1.ADOTable_Edit.fieldbyname('Pname').Value);
numberedit.Text:=trim(form1.ADOTable_Edit.fieldbyname('Mphone').Value);
DepartmentBox.Text:=trim(form1.ADOTable_Edit.fieldbyname('Department').Value);
form1.ADOTable_Edit.Active:=false;
name:=nameedit.text;
number:=numberedit.Text;
Department:=DepartmentBox.Text;
end;
end;
procedure TForm3.NumberEditKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9','+',#08]) then
key:=chr(0);
end;
procedure TForm3.ExitBBtnClick(Sender: TObject);
begin
nameedit.Clear;
numberedit.Clear;
Form1.treeview1.Items.Item[0].Selected:=true;
DepartmentBox.Clear;
close;
end;
function TForm3.RepeatNumber(Num:string):boolean;//检查数据库中是否存在相同号码,存在则为true。
var
i:integer;
begin
result:=false;
with Form1.BookQuery do
begin
SQL.Clear;
SQL.Add('select * from yujing');
open;
if RecordCount<>0 then
begin
first;
for i:=0 to RecordCount-1 do
begin
if (FieldByName('Mphone').AsString = trim(Num)) then
begin
close; //关闭BookQuery
result:=true;
break;
end else
next;
end;
end;
close; //关闭BookQuery
end;
end;
procedure TForm3.AddBBtnClick(Sender: TObject);
begin
//=======检查输入是否为空===============================
if trim(numberedit.Text)='' then
begin
messagebox(handle,'号码为空,请填写号码!','注意',MB_OK+MB_ICONERROR);
numberedit.SetFocus;
exit;
end;
//=======检查输入号码是否超出===========================
if length(trim(numberedit.Text))>15 then
begin
messagebox(handle,'号码长度超出,请重新填写!'+#13#10+'填写号码请不要超过15位!','注意',MB_OK+MB_ICONERROR);
numberedit.SetFocus;
exit;
end;
//=======检查数据库中是否存在相同信息===================
if RepeatNumber(numberedit.Text) then
begin
messagebox(handle,'此号码已存在,请输入新号码!','注意',MB_ok+MB_ICONWARNING);
numberedit.SetFocus;
exit;
end;
//===========增加部门==========如果列表中已经存在则不添加
if DepartmentBox.Items.IndexOf(trim(DepartmentBox.Text))=-1 then
begin
if trim(DepartmentBox.Text)='' then
DepartmentBox.Text:='\';
with Form1.ADOCommand_ADD do
begin
try
//======存储过程添加部门信息================
Parameters.AddParameter.Name:='DID';
Parameters.AddParameter.Name:='DepartmentName';
CommandText:='exec P_Department @DID=:DID,@DepartmentName=:DepartmentName';
Parameters.ParamByName('DID').Value:=DepartmentBox.Items.Count;
Parameters.ParamByName('DepartmentName').Value:=trim(DepartmentBox.Text);
Execute;
DepartmentBox.Items.Add(trim(DepartmentBox.Text));
except
showmessage('添加部门信息失败!');
DepartmentBox.Clear;
Form3.Close;
end;
end;
end;
//======存储过程存储数据======================
with Form1.ADOCommand_ADD do
begin
try
Parameters.Clear;
Parameters.AddParameter.Name:='Pname';
Parameters.AddParameter.Name:='Mphone';
Parameters.AddParameter.Name:='Department';
CommandText:='exec p_yujing @Pname=:Pname,@Mphone=:Mphone,@Department=:Department';
Parameters.ParamByName('Pname').Value:=trim(nameedit.Text);
Parameters.ParamByName('Mphone').Value:=trim(numberedit.Text);
Parameters.ParamByName('Department').Value:=trim(DepartmentBox.Text);
Execute;
except
showmessage('保存失败,请检查数据库连接或重启软件!');
DepartmentBox.Clear;
Form3.Close;
end;
end;
Form1.ListCreate;
//========保存成功是否继续============================
if messagebox(handle,'保存成功,是否继续添加联系人?','保存成功',MB_YESNO+MB_ICONQUESTION)=IDYES then
begin
nameedit.Clear;
numberedit.Clear;
nameedit.SetFocus;
end else
begin
nameedit.Clear;
numberedit.Clear;
DepartmentBox.Clear;
close;
end;
end;
procedure TForm3.BitBtn3Click(Sender: TObject);
var
i:integer;
begin
if trim(DepartmentBox.Text)='' then exit;
i:=DepartmentBox.Items.IndexOf(trim(DepartmentBox.Text));
if i<>-1 then
begin
DepartmentBox.Items.Delete(i);
with Form1.ADOCommand_ADD do
begin
//======先删除部门信息======================
try
Parameters.Clear;
CommandText:='delete from department';
Execute;
//======存储过程添加部门信息================
Parameters.AddParameter.Name:='DID';
Parameters.AddParameter.Name:='DepartmentName';
if DepartmentBox.Items.Count<>0 then
begin
for i:=0 to DepartmentBox.Items.Count-1 do
begin
CommandText:='exec P_Department @DID=:DID,@DepartmentName=:DepartmentName';
Parameters.ParamByName('DID').Value:=i;
Parameters.ParamByName('DepartmentName').Value:=DepartmentBox.Items.Strings[i];
Execute;
end;
end;
except
end;
end;
end;
Form1.ListCreate;
end;
procedure TForm3.ChangeBBtnClick(Sender: TObject);
begin
if (trim(numberedit.Text)=number) and
(trim(nameedit.Text)=name) and
(trim(DepartmentBox.Items.Text)=department) then close else
begin
//=======检查输入是否为空===============================
if trim(numberedit.Text)='' then
begin
messagebox(handle,'号码为空,请填写号码!','注意',MB_OK+MB_ICONERROR);
numberedit.SetFocus;
exit;
end;
//=======检查输入号码是否超出===========================
if length(trim(numberedit.Text))>15 then
begin
messagebox(handle,'号码长度超出,请重新填写!'+#13#10+'填写号码请不要超过15位!','注意',MB_OK+MB_ICONERROR);
numberedit.SetFocus;
exit;
end;
if not (trim(numberedit.Text)=number) then
begin
//=======检查数据库中是否存在相同信息===================
if RepeatNumber(numberedit.Text) then
begin
messagebox(handle,'此号码已存在,请输入新号码!','注意',MB_ok+MB_ICONWARNING);
numberedit.SetFocus;
exit;
end;
end;
//===========增加部门==========如果列表中已经存在则不添加
if DepartmentBox.Items.IndexOf(trim(DepartmentBox.Text))=-1 then
begin
if trim(DepartmentBox.Text)='' then
DepartmentBox.Text:='\';
with Form1.ADOCommand_ADD do
begin
try
//======存储过程添加部门信息================
Parameters.AddParameter.Name:='DID';
Parameters.AddParameter.Name:='DepartmentName';
CommandText:='exec P_Department @DID=:DID,@DepartmentName=:DepartmentName';
Parameters.ParamByName('DID').Value:=DepartmentBox.Items.Count;
Parameters.ParamByName('DepartmentName').Value:=trim(DepartmentBox.Text);
Execute;
DepartmentBox.Items.Add(trim(DepartmentBox.Text));
except
showmessage('添加部门信息失败!');
DepartmentBox.Clear;
Form3.Close;
end;
end;
end;
//========修改后存入数据库==============================
form1.ADOTable_Edit.TableName:='yujing';
form1.ADOTable_Edit.Active:=true;
form1.ADOTable_Edit.Locate('id',strtoid(form1.treeview1.Selected.Text),[]);
form1.ADOTable_Edit.Edit;
form1.ADOTable_Edit.fieldbyname('Pname').Value:=trim(nameedit.text);
form1.ADOTable_Edit.fieldbyname('Mphone').Value:=trim(numberedit.Text);
form1.ADOTable_Edit.fieldbyname('Department').Value:=trim(DepartmentBox.Text);
form1.ADOTable_Edit.Post;
form1.ADOTable_Edit.Active:=false;
//========================================================
DepartmentBox.Clear;
Form1.ListCreate;
close;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -