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

📄 customer.pas.~1~

📁 asp.net2.0控件treeview绑定数据以及全选操作
💻 ~1~
字号:
unit customer;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DBTables, DB, Grids, DBGrids, IdGlobal, ComCtrls,
  ADODB;


type
  TfrmCustomer = class(TForm)
    DBGrid1: TDBGrid;
    GroupBox1: TGroupBox;
    SortAsc: TRadioButton;
    SortDesc: TRadioButton;
    GroupBox2: TGroupBox;
    id: TRadioButton;
    name: TRadioButton;
    enrolltime: TRadioButton;
    level: TRadioButton;
    GroupBox3: TGroupBox;
    btnAdd: TButton;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    UserID: TEdit;
    UserName: TEdit;
    birthday: TDateTimePicker;
    gender: TComboBox;
    Label1: TLabel;
    CardNum: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label13: TLabel;
    joinTime: TDateTimePicker;
    arrearage: TEdit;
    btnClear: TButton;
    Label6: TLabel;
    Label10: TLabel;
    tel: TEdit;
    address: TEdit;
    Label9: TLabel;
    note: TEdit;
    btnModify: TButton;
    btnDelete: TButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnAddClick(Sender: TObject);
    procedure SortAscClick(Sender: TObject);
    procedure SortDescClick(Sender: TObject);
    procedure idClick(Sender: TObject);
    procedure nameClick(Sender: TObject);
    procedure enrolltimeClick(Sender: TObject);
    procedure levelClick(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure btnClearClick(Sender: TObject);
    procedure btnDeleteClick(Sender: TObject);
    procedure btnModifyClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
    //判断输入是否为金额
    function isMoney(s:string):boolean;

    //判断输入是否为电话号码
    function isTelephone(s:string):boolean;

  public
    { Public declarations }
  end;

var
  frmCustomer: TfrmCustomer;

implementation

uses dataModule, modifyCustomer,delCustomer;

{$R *.dfm}

function TfrmCustomer.isMoney(s: string): boolean;
var
   i:integer;
begin
   i:=1;
   if length(s)=0 then
   begin
      result:=false;
      exit;
   end;
   while i<=length(s) do
   begin
      if (isNumeric(s[i])=false) and (s[i]<>'.')then
      begin
         result:=false;
         exit;
      end;
      i:=i+1;
   end;
   result:=true;
end;

function TfrmCustomer.isTelephone(s: string): boolean;
var
   i:integer;
begin
   if length(s)=0 then
   begin
      result:=true;
      exit;
   end;
   i:=1;
   while i<=length(s) do
   begin
      if isNumeric(s[i])=false then
      begin
         result:=false;
         exit;
      end;
      i:=i+1;
   end;
end;

procedure TfrmCustomer.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   dm.QueryLeader.Close;
   self.free;
end;

procedure TfrmCustomer.btnAddClick(Sender: TObject);
var
        maxNo, temp : integer;
begin
        // 添加一个用户
        try
            //检查用户名是否为空
            if( UserName.text = '') then
            begin
                messageDlg('"姓名"不能为空,请重新输入!',mtWarning,[mbOk],0);
                activeControl:=UserName;
                abort;
            end

            //检查用户名是否过长
      {      else if(length(UserName.Text) > 8)then
            begin
                messageDlg('"用户姓名"太长,请重新输入!',mtWarning,[mbOk],0);
                activeControl:=UserName;
                abort;
            end
       }
            //检查生日是否合法
            else if(birthday.Date>=joinTime.Date) then
            begin
                messageDlg('"生日"输入错误,请重新输入!',mtWarning,[mbOk],0);
                activeControl:=birthDay;
                abort;
            end

            //检查联系电话
            else if(length(tel.Text)>12 ) or (isTelephone(tel.Text)=false) then
            begin
                messageDlg('"联系电话"输入错误,请重新输入!',mtWarning,[mbOk],0);
                activeControl:=tel;
                abort;
            end

            //检查住址
            else if(length(address.Text) > 20 ) then
            begin
                messageDlg('"住址"输入过长,请重新输入!',mtWarning,[mbOk],0);
                activeControl:=address;
                abort;
            end

            //检查每小时收费
            else if(ismoney(arrearage.text) = false) then
            begin
                messageDlg('"收费"输入错误,请重新输入!',mtWarning,[mbOk],0);
                activeControl:=arrearage;
                abort;
            end

            //检查备注
            else if length(note.Text)>50 then
            begin
                messageDlg('"备注"输入过长,请重新输入!',mtWarning,[mbOk],0);
                activeControl:=note;
                abort;
            end;
            //

            with dm.TLeader do
            begin
                open;
                append;
                maxNo :=  strToInt(UserID.text)  ;
                fieldByName('编号').AsInteger := maxNo;
                maxNo := maxNo+1;
                UserID.text := intToStr(maxNo);
                fieldByName('姓名').AsString  := UserName.text;
                fieldByName('性别').AsString:=gender.Text;
                fieldByName('生日').AsDateTime:=birthday.Date;
                fieldByName('身份证号码').AsString  := CardNum.text;
                fieldByName('级别').AsString:='普通';
                fieldByName('电话').AsString:=tel.Text;
                fieldByName('地址').AsString:=address.Text;
                fieldByName('任职时间').AsDateTime:=joinTime.Date;
                fieldByName('每小时收费').AsString:=arrearage.Text;
                fieldByName('备注').AsString:=note.Text;

                post;
                close;
            end;
        except
                on ex:EConvertError do
                begin
                    messageDlg('输入有误,请重试!',mtWarning,[mbOk],0);
                end;
        end;{end of try}

        // 更新表格使它同步显示添加内容
        with dm.QueryLeader do
        begin
                close;
                sql.Clear;
                sql.Add('select * from leader');
                open;
        end;

        // 显示添加成功消息
        messageDlg('新导游添加成功!',mtWarning,[mbOk],0);

        // 设置对话框焦点
        activeControl:=UserName;
end;

procedure TfrmCustomer.SortAscClick(Sender: TObject);
var
    context : string;
begin
    if( id.Checked = true )
        then context := '编号'
    else if ( name.Checked = true )
        then context := '姓名'
    else if ( enrolltime.Checked )
        then context := '任职时间'
    else if ( level.checked )
        then context := '级别';

    //改变查询语句
    dm.QueryLeader.close;
    dm.QueryLeader.SQL.Clear;
    dm.QueryLeader.SQL.Add('select * from leader order by '+context+' asc');

    //重新查询
    try
        dm.QueryLeader.Open;
    except
        dm.QueryLeader.ExecSQL;
    end;

end;

procedure TfrmCustomer.SortDescClick(Sender: TObject);
var
    context : string;
begin
    if( id.Checked = true )
        then context := '编号'
    else if ( name.Checked = true )
        then context := '姓名'
    else if ( enrolltime.Checked )
        then context := '任职时间'
    else if ( level.checked )
        then context := '级别';

    //改变查询语句
    dm.QueryLeader.close;
    dm.QueryLeader.SQL.Clear;
    dm.QueryLeader.SQL.Add('select * from leader order by '+context+' desc');

    //重新查询
    try
        dm.QueryLeader.Open;
    except
        dm.QueryLeader.ExecSQL;
    end;
end;

procedure TfrmCustomer.idClick(Sender: TObject);
var
    sorttype : string;
begin
    //确定排序方式
    if ( sortasc.Checked )
        then
        sorttype := 'asc'
    else
        sorttype := 'desc';

    //更新表格

    //改变查询语句
    dm.QueryLeader.close;
    dm.QueryLeader.SQL.Clear;
    dm.QueryLeader.SQL.Add('select * from leader order by 编号 ' + sorttype);

    //重新查询
    try
        dm.QueryLeader.Open;
    except
        dm.QueryLeader.ExecSQL;
    end;
end;

procedure TfrmCustomer.nameClick(Sender: TObject);
var
    sorttype : string;
begin
    //确定排序方式
    if ( sortasc.Checked )
        then
        sorttype := 'asc'
    else
        sorttype := 'desc';

    //更新表格

    //改变查询语句
    dm.QueryLeader.close;
    dm.QueryLeader.SQL.Clear;
    dm.QueryLeader.SQL.Add('select * from leader order by 姓名 ' + sorttype);

    //重新查询
    try
        dm.QueryLeader.Open;
    except
        dm.QueryLeader.ExecSQL;
    end;
end;

procedure TfrmCustomer.enrolltimeClick(Sender: TObject);
var
    sorttype : string;
begin
    //确定排序方式
    if ( sortasc.Checked )
        then
        sorttype := 'asc'
    else
        sorttype := 'desc';

    //更新表格

    //改变查询语句
    dm.QueryLeader.close;
    dm.QueryLeader.SQL.Clear;
    dm.QueryLeader.SQL.Add('select * from leader order by 任职时间 ' + sorttype);

    //重新查询
    try
        dm.QueryLeader.Open;
    except
        dm.QueryLeader.ExecSQL;
    end;
end;

procedure TfrmCustomer.levelClick(Sender: TObject);
var
    sorttype : string;
begin
    //确定排序方式
    if ( sortasc.Checked )
        then
        sorttype := 'asc'
    else
        sorttype := 'desc';

    //更新表格

    //改变查询语句
    dm.QueryLeader.close;
    dm.QueryLeader.SQL.Clear;
    dm.QueryLeader.SQL.Add('select * from leader order by 级别 ' + sorttype);

    //重新查询
    try
        dm.QueryLeader.Open;
    except
        dm.QueryLeader.ExecSQL;
    end;
end;

procedure TfrmCustomer.DBGrid1CellClick(Column: TColumn);
begin
//    messageDlg('hehe',mtWarning,[mbOk],0);

end;

procedure TfrmCustomer.btnClearClick(Sender: TObject);
begin
    UserName.Text := '';
//    UserID.Text := '';
    gender.ItemIndex := 0;
    birthday.DateTime := now;
    joinTime.DateTime := now;
    CardNum.Text := '';
    arrearage.text := '';
    tel.text := '';
    address.text := '';
    note.text := '';
end;

procedure TfrmCustomer.btnDeleteClick(Sender: TObject);
begin
    //
    frmDelCustomer := TfrmDelCustomer.Create(self);
    frmDelCustomer.ShowModal;
    //更新表格
    dm.QueryLeader.Close;
    dm.QueryLeader.Open;
end;

procedure TfrmCustomer.btnModifyClick(Sender: TObject);
begin
    //
    frmModifyCustomer := TfrmModifyCustomer.Create(self);
    frmModifyCustomer.ShowModal;
    //更新表格
    dm.QueryLeader.Close;
    dm.QueryLeader.Open;
end;

procedure TfrmCustomer.FormShow(Sender: TObject);
var
   maxNo, tmp:integer;
begin
   birthday.Date:=strToDate('1980-1-1');
   joinTime.Date:=now;

   try

   {获取新添加用户的编号}
  with dm.TLeader do
   begin
      open;
      first;
      maxNo:=fieldByName('编号').AsInteger;
      while not eof do
      begin
         tmp:=fieldByName('编号').AsInteger;
         if maxNo<tmp then maxNo:=tmp;
         next;
      end;
      close;
   end;


   UserID.Text:=intToStr(maxNo+1);
   activeControl:=UserName;

   except
    on E: Exception do
      messageDlg(' try form show  出错',mtWarning,[mbOk],0);
   end;{end of try}

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -