⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adduser.pas

📁 用delphi开发的短信息预警系统
💻 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 + -