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

📄 main.pas

📁 提供产品的售后管理,客户资料管理,维修服务管理等功能
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  with Listview1.Items.Add do
  begin
    Caption :=ADOQuery1.FieldValues['ID'];
    SubItems.Add(ADOQuery1.FieldValues['Name']);
    SubItems.Add(ADOQuery1.FieldValues['Phone']);
    Subitems.Add(ADOQuery1.FieldValues['Fax']);
    Subitems.Add(ADOQuery1.FieldValues['Mobile']);
    Subitems.Add(ADOQuery1.FieldValues['addr']);
    Subitems.Add(ADOQuery1.FieldValues['BuyDate']);
    Subitems.Add(ADOQuery1.FieldValues['OverRun']);
    if ADOQuery1.FieldValues['TB']=0 then
      Subitems.Add('否')
        else
          subitems.Add('是');
   subitems.Add(ADOQuery1.FieldValues['BuyAmount']);
   subitems.Add(ADOQuery1.FieldValues['CPU']);
   subitems.Add(ADOQuery1.FieldValues['Memory']);
   subitems.Add(ADOQuery1.FieldValues['HD']);
   subitems.Add(ADOQuery1.FieldValues['displaycard']);
   subitems.Add(ADOQuery1.FieldValues['sound']);
   subitems.Add(ADOQuery1.FieldValues['mainboard']);
   subitems.Add(ADOQuery1.FieldValues['box']);
   subitems.Add(ADOQuery1.FieldValues['display']);
   subitems.Add(ADOQuery1.FieldValues['power']);
   subitems.Add(ADOQuery1.FieldValues['floppy']);
   subitems.Add(ADOQuery1.FieldValues['cdrom']);
   subitems.Add(ADOQuery1.FieldValues['mouse']);
   subitems.Add(ADOQuery1.FieldValues['keyboard']);
   subitems.Add(ADOQuery1.FieldValues['soundbox']);
   subitems.Add(ADOQuery1.FieldValues['network']);
   subitems.Add(ADOQuery1.FieldValues['modem']);
   subitems.Add(ADOQuery1.FieldValues['print']);
   subitems.Add(ADOQuery1.FieldValues['other']);
   subitems.Add(ADOQuery1.FieldValues['memo'])
  end;
end;

procedure TFrmMain.Timer1Timer(Sender: TObject);
//用来显示当前系统的日期、时间、星期。
const
    Week:array[1..7] of string=('星期天','星期一','星期二','星期三',
                                '星期四','星期五','星期六');
begin
    Paneldatetime.Caption :='【'+dateToStr(Date)+'】  【'+TimeToStr(Time)+'】  【'
                      + Week[DayOfWeek(Now)]+'】';

end;

procedure TFrmMain.BtnSearchClick(Sender: TObject);
begin
DBConnection;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
if (CmbSearchName.ItemIndex<>2) and (CmbSearchName.ItemIndex <>3) then
  ADOQuery1.SQL.Text :='select * from userinfo where '+TempSearchName+''+CmbOperator.Text+'"'+Edittj.Text+'"'
  else
    ADOQuery1.SQL.Text :='select * from userinfo where '+TempSearchName+''+CmbOperator.Text+'#'+Edittj.Text+'#';  //查询日期格式要加上 # 号
ADOQuery1.Open ;
ADOQuery1.First ;
Listview1.Clear;
 while not ADOQuery1.Eof do
    begin
        ReadDate;
  ADOQuery1.Next;
  end;
ADOQuery1.Close;
end;

procedure TFrmMain.CmbSearchNameChange(Sender: TObject);
begin
case CmbSearchName.ItemIndex of
  0:TempSearchName:='name';
  1:TempSearchName:='addr';
  2:TempSearchName:='buydate';
  3:TempSearchName:='overrun';
  4:TempSearchName:='buyamount';
  5:TempSearchName:='CPU';
  6:TempSearchName:='Memory';
  7:TempSearchName:='hd';
  8:TempSearchName:='displaycard';
  9:TempSearchName:='sound';
  10:TempSearchName:='mainboard';
  11:TempSearchName:='box';
  12:TempSearchName:='display';
  13:TempSearchName:='power';
  14:TempSearchName:='Floppy';
  15:TempSearchName:='cdrom';
  16:TempSearchName:='mouse';
  17:TempSearchName:='keyboard';
  18:TempSearchName:='soundbox';
  19:TempSearchName:='network';
  20:TempSearchName:='modem';
  21:TempSearchName:='printer'
end;
end;

{根据条件设置 listview 行的颜色以未区别~~~~~~~~~}
procedure TFrmMain.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin

  if strtodate(item.SubItems.Strings[6])<now then
    begin
      ListView1.Canvas.Brush.Color := clSkyBlue;
      listview1.Canvas.Font.Color :=clblue;
    end;

  if item.SubItems.Strings[7]='是' then
  begin
    ListView1.Canvas.Brush.Color := clRed;
    Listview1.Canvas.Font.Color:=clYellow;
  end;
end;

procedure TFrmMain.N13Click(Sender: TObject);
begin
PanelData.Visible :=True;
DBConnection;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text :='select * from Userinfo where overrun >=now order by id';
ADOQuery1.Open ;
Listview1.Clear;
 while not ADOQuery1.Eof do
    begin
      ReadDate;
      ADOQuery1.Next;
    end;
ADOQuery1.Close;
lblAmount.Caption :='共有 ['+inttoStr(listview1.Items.Count)+'] 项' ;
end;

procedure TFrmMain.N15Click(Sender: TObject);
begin
PanelData.Visible :=True;
DBConnection;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text :='select * from Userinfo where overrun <=now order by id';
ADOQuery1.Open ;
Listview1.Clear;
 while not ADOQuery1.Eof do
    begin
      ReadDate;
      ADOQuery1.Next;
    end;
ADOQuery1.Close;
lblAmount.Caption :='共有 ['+inttoStr(listview1.Items.Count)+'] 项' ;
end;

procedure TFrmMain.CheckRegCode;   //检测注册代码是否正确
const
  my_key = 5741;
var
  RegCode:ansistring;
begin
DBConnection;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text :='select * from reg';
ADOQuery1.Open;
if ADOQuery1.FieldValues['incname']<>null then
  Tempinc:=ADOQuery1.FieldValues['incname']
  else
    tempInc:='未注册软件';
if ADOQuery1.FieldValues['regcode']<> null then
  TempRegCode:=ADOQuery1.FieldValues['regcode']
  else
    TempRegCode:='未注册软件';
RegCode:=Encrypt(Tempinc,my_key);
if Tempregcode<>regcode then checkreg:=0 else checkreg:=1;
end;

procedure TFrmMain.SubZZClick(Sender: TObject);
begin
shellExecute(GetDesktopWindow,'Open',PChar('mailto:luozs168@163.net?subject='+ '对【电脑公司客户管理系统】意见和建议'),
              nil,
              nil,
              SW_ShowNormal);
end;

procedure TFrmMain.ListView1DblClick(Sender: TObject);
begin
if listview1.Selected <> nil then
begin
  with frmInputinfo do
    begin
      with Listview1.Selected do
        begin
          // 客户信息
          Euser.Text := SubItems[0];
          Ephone.Text :=SubItems[1];
          EFax.Text :=SubItems[2];
          EMobile.Text :=SubItems[3];
          Eaddr.Text :=SubItems[4];
          DateBuy.Date :=StrToDate(SubItems[5]);
          DateBao.Date :=StrToDate(SubItems[6]);
          if SubItems[7]='是' then
             CmbQuality.ItemIndex :=1
             else
               CmbQuality.ItemIndex :=0;
          EAmount.Text :=SubItems[8];

        // 电脑配置信息
          ECPU.Text :=SubItems[9];
          EMemory.Text :=SubItems[10];
          EHD.Text :=SubItems[11];
          Edisplaycard.Text :=SubItems[12];
          ESound.Text :=SubItems[13];
          EMainBoard.Text :=SubItems[14];
          EBox.Text :=SubItems[15];
          EDisplay.Text :=SubItems[16];
          Epower.Text :=SubItems[17];
          EFloppy.Text :=SubItems[18];
          ECDROM.Text :=SubItems[19];
          EMouse.Text :=SubItems[20];
          EKeyBoard.Text :=SubItems[21];
          ESoundBox.Text :=SubItems[22];
          ENetWork.Text :=SubItems[23];
          EModem.Text :=SubItems[24];
          EPrint.Text :=SubItems[25];
          EOther.Text :=SubItems[26];
          Memo.Text :=SubItems[27];
        end;
    end;
  frmInputInfo.BtnAdd.Visible :=False;
  frmInputInfo.BtnModify.Visible :=True;
  frminputinfo.ShowModal ;
end;
end;

procedure TFrmMain.BtnDelClick(Sender: TObject);
begin
if listview1.Selected =nil then exit;
if messagebox(handle,
              Pchar('你确定要删除该项信息吗?删除后资料是不可恢复的!'),
              Pchar('确定删除'),
              mb_YesNo+MB_ICONQUESTION	)=IDYes then
  begin
    DBConnection;
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Text :='delete from userinfo where id='+listview1.Selected.Caption+'';
    ADOQuery1.ExecSQL;
    listview1.Selected.Delete;
  end;
end;

procedure TFrmMain.SubHelpClick(Sender: TObject);
begin
shellExecute(GetDesktopWindow,'Open',PChar('help.chm'),
              nil,
              nil,
              SW_ShowNormal);
end;

//-----------------------------
//  删除所有的数据
//-----------------------------
procedure TFrmMain.DelAllData;
begin
  DBConnection;
  ADOConnection1.Execute('delete * from inc');
  ADOConnection1.Execute('delete * from login');
  ADOConnection1.Execute('delete * from UserInfo');
end;

procedure TFrmMain.BtnDelAllClick(Sender: TObject);
begin
if messagebox(handle,'此项操作将清空除注册信息与系统默认用户以'+#13#10+#13#10
                    +'外的所有数据。而且,数据被删除后是不可恢'+#13#10+#13#10
                    +'复的?你确定要删除吗?',
                    '数据删除确认',
                    MB_YESNO+MB_ICONQUESTION)=IDYes then
  begin
    DelAllData;  //删除所有的数据
    WriteDefUser; //在删除所有的数据以后,写入系统的 默认账号 与 密码
    ADOConnection1.Close;
  end;
end;

procedure TFrmMain.WriteDefUser;
begin
//在删除所有的数据以后,写入系统的 默认账号 与 密码
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text :='Select * from login';
ADOQuery1.Open;
ADOQuery1.Edit;
ADOQuery1.FieldByName('user').AsString :='超级用户';
ADOQuery1.FieldByName('Pwd').AsString :='123';
ADOQuery1.FieldByName('level').AsInteger :=0;
ADOQuery1.Post;
ADOQuery1.Close;
end;

procedure TFrmMain.SubOverRunClick(Sender: TObject);
begin
if messagebox(handle,
              Pchar('你确定要删除己过保的客户(除特别客户外)的数据吗?删除后资料是不可恢复的!'),
              Pchar('删除己过保用户数据'),
              mb_YesNo+MB_ICONQUESTION	)=IDYes then
  begin
    DBConnection;
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Text :='delete from userinfo where overrun <=now and TB<>"1"';
    ADOQuery1.ExecSQL;
    showmessage('数据己经成功删除!');
    ADOConnection1.Close;
  end;
end;



function CompressDB(Afile,APwd:string):boolean;
{数据库压缩函数}
var
  DaoVar: OLEVariant;
begin
  try
  DaoVar := CreateOleObject('dao.DBEngine.36');
  if FileExists('db.tmp') then deletefile('db.tmp');
    DaoVar.CompactDatabase(afile,'db.tmp',';pwd='+apwd+'',0,';pwd='+apwd+'');
  if deletefile(afile) then RenameFile('db.tmp',Afile);
  except
    result:=False;
  end;
end;

procedure TFrmMain.SubCompressClick(Sender: TObject);
var
  DataPath,pwd:string;
begin
  DataPath:=ExtractFilePath(Application.ExeName)+'\data\mgr.db';
  pwd:='◇入侵◇';
  if ADOConnection1.Connected then ADOConnection1.Close ;
  if compressDB(DataPath,pwd) then
      ShowMessage('数据库压缩成功!')
      else
        if Messagebox(handle,'数据压缩时发生错误,请关闭程序'+#13#10+#13#10
                         +'后重启动程序再进行压缩,你确认要退出程序吗?',
                         '压缩错误',MB_YESNO+MB_ICONQUESTION)=IDYES then
           FrmMain.Close;

end;
end.

⌨️ 快捷键说明

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