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

📄 unitmain.pas

📁 delphi做的名片管理软件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit UnitMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, ImgList, ToolWin, ActnMan, ActnCtrls, Menus,
  Buttons, ComCtrls, StdCtrls,TreeUtils, ExtCtrls, DBCtrls, Mask, jpeg,
  ExtDlgs,UnitPageCut, Excel2000, OleServer, WinSkinStore, WinSkinData,
  GridsEh, DBGridEh, PrViewEh, PrnDbgeh, OleCtrls, AgentObjects_TLB;

type
  TMainFrm = class(TForm)
    ImageList1: TImageList;
    MainMenu1: TMainMenu;
    dksgfds1: TMenuItem;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    S1: TMenuItem;
    A1: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    PageControl1: TPageControl;
    N8: TMenuItem;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    PopupMenu1: TPopupMenu;
    add1: TMenuItem;
    edit9: TMenuItem;
    del1: TMenuItem;
    addchild1: TMenuItem;
    N9: TMenuItem;
    DBNavigator1: TDBNavigator;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit6: TDBEdit;
    DBEdit8: TDBEdit;
    DBEdit1: TDBEdit;
    Label9: TLabel;
    ComboBox2: TComboBox;
    PageControl2: TPageControl;
    TabSheet3: TTabSheet;
    TreeView1: TTreeView;
    OpenPictureDialog1: TOpenPictureDialog;
    OpenDialog1: TOpenDialog;
    SavePictureDialog1: TSavePictureDialog;
    SaveDialog1: TSaveDialog;
    PrintDialog1: TPrintDialog;
    newplan1: TMenuItem;
    Label11: TLabel;
    DBEdit12: TDBEdit;
    DBEdit13: TDBEdit;
    Label12: TLabel;
    Label13: TLabel;
    DBEdit14: TDBEdit;
    DBEdit15: TDBEdit;
    Label14: TLabel;
    Label15: TLabel;
    DBEdit16: TDBEdit;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    DBEdit17: TDBEdit;
    DBEdit18: TDBEdit;
    DBEdit19: TDBEdit;
    DBEdit20: TDBEdit;
    SpeedButton7: TSpeedButton;
    DBEdit21: TDBEdit;
    BtnFirst: TButton;
    BtnUp: TButton;
    BtnNext: TButton;
    BtnLast: TButton;
    LabIndex: TLabel;
    Label22: TLabel;
    LabTotal: TLabel;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    N11: TMenuItem;
    N12: TMenuItem;
    Label21: TLabel;
    Edit1: TEdit;
    Label24: TLabel;
    DBMemo1: TDBMemo;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    Edit2: TEdit;
    SpeedButton8: TSpeedButton;
    SpeedButton9: TSpeedButton;
    Label10: TLabel;
    DBEdit24: TDBEdit;
    DBEdit25: TDBEdit;
    DBEdit26: TDBEdit;
    DBEdit27: TDBEdit;
    Label16: TLabel;
    Label23: TLabel;
    Label25: TLabel;
    DBComboBox1: TDBComboBox;
    DBComboBox2: TDBComboBox;
    DBComboBox3: TDBComboBox;
    DBComboBox4: TDBComboBox;
    Edit3: TEdit;
    SkinData1: TSkinData;
    SkinStore1: TSkinStore;
    DBGridEh1: TDBGridEh;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton4: TSpeedButton;
    DBEdit2: TDBEdit;
    SpeedButton3: TSpeedButton;
    PrintDBGridEh1: TPrintDBGridEh;
    MyAgent: TAgent;
    N10: TMenuItem;
    SpeedButton5: TSpeedButton;
   
    procedure A1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure add1Click(Sender: TObject);
    procedure edit9Click(Sender: TObject);
    procedure addchild1Click(Sender: TObject);
    procedure del1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TreeView1Edited(Sender: TObject; Node: TTreeNode;
      var S: String);
    procedure TreeView1DblClick(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure newplan1Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure BtnFirstClick(Sender: TObject);
    procedure BtnUpClick(Sender: TObject);
    procedure BtnNextClick(Sender: TObject);
    procedure BtnLastClick(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N12Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure N13Click(Sender: TObject);
    procedure N16Click(Sender: TObject);
    procedure S1Click(Sender: TObject);
    procedure SpeedButton8Click(Sender: TObject);
    procedure N15Click(Sender: TObject);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    procedure DBGridEh1DblClick(Sender: TObject);
    procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
    procedure DBGridEh1TitleBtnClick(Sender: TObject; ACol: Integer;
      Column: TColumnEh);
    procedure DBGridEh1GetFooterParams(Sender: TObject; DataCol,
      Row: Integer; Column: TColumnEh; AFont: TFont;
      var Background: TColor; var Alignment: TAlignment;
      State: TGridDrawState; var Text: String);
    procedure DBGridEh1DrawFooterCell(Sender: TObject; DataCol,
      Row: Integer; Column: TColumnEh; Rect: TRect; State: TGridDrawState);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure DBEdit6KeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormShow(Sender: TObject);
    procedure N10Click(Sender: TObject);
    
  private
    { Private declarations }
      function rscount(sqlstr: string):integer;
      function getStatus(PID:string):Boolean;
      function FindAs(condition:string):string;
  public
    { Public declarations }
    TreeUtil: TTreeUtils;
    UnitPageCut: TUnitPageCut;
    procedure PageCut(pageIndex:integer;pageSize:integer);
    procedure DBGridFill(sqlstr:string);
    procedure DBNavigaterFill(sqlstr:string);
    procedure AddGroupNode(NodeName:string);
    procedure MyPeedy(myAction:integer);
  end;

var
  MainFrm: TMainFrm;
  condition:string='';  //查询的筛选条件。
  pageSize:integer=20;
  strpath:string;
  Peedy: IagentCtlCharacterEx;
  Request1: IagentCtlRequest;
implementation
uses
  UnitDataModule,UnitLogin, UnitHelp,TreeFillThrd,
  UnitAddInfo,UnitEdit,UnitPass, UnitPlan, UnitExcel,UnitAdd;

{$R *.dfm}

//------------------------------------------------
function TMainFrm.FindAs(condition:string):string;
begin
Result:='';
    with DataModule1.ADOQuery1 do
    begin
        Close;
        SQL.Clear;
        SQL.add('select Caption from PersonInfo where status=0 and ID='+condition);
        Open;
        first
    end;
    Result:=DataModule1.ADOQuery1.fieldByName('Caption').AsString;
end;
procedure TMainFrm.A1Click(Sender: TObject);
begin
    AddInfoFrm:=TAddInfoFrm.Create(self);
    AddInfoFrm.ShowModal;
    AddInfoFrm.Free;
end;

procedure TMainFrm.N2Click(Sender: TObject);
begin
    Application.terminate; //退出系统
    MyPeedy(1);
end;

procedure TMainFrm.N1Click(Sender: TObject);
begin
    LoginFrm:=TLoginFrm.Create(self);
    LoginFrm.ShowModal;
    LoginFrm.Free;
end;

procedure TMainFrm.N7Click(Sender: TObject);
begin
     HelpFrm:=THelpFrm.Create(self);
     HelpFrm.ShowModal;
     HelpFrm.Free;
end;

procedure TMainFrm.add1Click(Sender: TObject);
begin
    TreeUtil.AddNode('新组');
end;

procedure TMainFrm.edit9Click(Sender: TObject);
begin
     TreeView1.Selected.EditText;
end;

procedure TMainFrm.addchild1Click(Sender: TObject);
begin
     AddGroupNode('新组');
end;

procedure TMainFrm.del1Click(Sender: TObject);
begin
 if self.TreeView1.Selected.IsFirstNode then
  begin
      showmessage('不能删除我的名片册');
      exit;
  end;
if MessageBox(handle, PChar('你确认要删除"' + TreeView1.Selected.Text + '"和它的子项吗?'),
    '提示', MB_ICONQUESTION + MB_YESNO) = IDYES then
    TreeUtil.DeleteTree(TreeView1.Selected);
    //****PersonInfo delete it too

end;

procedure TMainFrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    TreeUtil.Free;
    MyPeedy(1);
    Application.terminate;
end;

procedure TMainFrm.TreeView1Edited(Sender: TObject; Node: TTreeNode;
  var S: String);
begin
    TreeUtil.ModifyNodeCaption(S, Node);
end;
//dbclickTreeview
procedure TMainFrm.TreeView1DblClick(Sender: TObject);
var
   status:string;
   Nod: TNodeData;
begin
//node parent
  if TreeView1.Selected.IsFirstNode then
  begin
     PageControl1.ActivePageIndex:=0;
    //转到分页查询
     condition:='status=1';
     self.PageCut(1,pageSize);
     exit;
 end;
  status:='';
  with DataModule1.ADOQuery1 do //
  begin
    Close;
    SQL.Clear;
    SQL.add('select status from PersonInfo where ID='+IntToStr(TreeUtil.getSelNodeIndex));
    open;
  end;
  status:=DataModule1.ADOQuery1.FieldByName('status').AsString;
  //--------------------------------------------------------------
 if status='0' then
 begin
    PageControl1.ActivePageIndex:=0;
    if TreeView1.Selected.HasChildren then
    begin
      condition:='status=1 and PID='+IntToStr(TreeUtil.getSelNodeIndex);
      PageCut(1,pageSize);//分页查询
    end;
    exit;
 end;
  //--------------personinfo right  个人信息 ------------------
  if (not TreeView1.Selected.HasChildren) and (status='1') then
  begin
    try
      PageControl1.ActivePageIndex:=1;
      DBNavigaterFill('select * from PersonInfo where ID='+IntToStr(TreeUtil.getSelNodeIndex));
      Nod := TreeUtil.getTreeNodeData(TreeView1.Selected.Parent);
      Edit1.Text:= Nod.Caption;
      //self.FindAs(DataModule1.ADOQuery2.FieldByName('PID').AsString);
    except
        exit;
    end;
  end;
 end;
 //selfProcedure
 procedure TMainFrm.DBNavigaterFill(sqlstr:string);
 begin
    with DataModule1.ADOQuery2 do
    begin
        Close;
        SQL.Clear;
        SQL.add(sqlstr);
        open;
        first
    end;
    if DataModule1.ADOQuery2.RecordCount>0 then
    begin
      DBNavigator1.DataSource:=DataModule1.DataSource2;
    end else
    begin
      Showmessage('you check record is 0');
    end;
 end;

//nbdelete
procedure TMainFrm.Button2Click(Sender: TObject);
begin
  if DBNavigator1.DataSource <> nil  then
  begin
    DBNavigator1.BtnClick(nbDelete);
    //Treeutil.FillTree;
  end;
end;
//edit
procedure TMainFrm.Button3Click(Sender: TObject);
begin
   if DBNavigator1.DataSource <> nil then
   begin
    DBEdit2.DataSource.Edit;
    DBEdit2.Text:=DBEdit1.Text;
    DBNavigator1.BtnClick(nbEdit);
    DataModule1.ADOQuery2.Post;
     //Treeutil.FillTree;
  end;
end;
//cancle
procedure TMainFrm.Button4Click(Sender: TObject);
begin
   DBNavigator1.BtnClick(nbCancel);
end;
//nbrefresh
procedure TMainFrm.newplan1Click(Sender: TObject);
begin
    PlanFrm:=TPlanFrm.Create(self);
    PlanFrm.ShowModal;
    PlanFrm.Free;
end;

procedure TMainFrm.SpeedButton1Click(Sender: TObject);
begin
      
       ExcelFrm:= TExcelFrm.Create(self);
     if (IntToStr(self.PageControl1.ActivePageIndex)='1') and (DBNavigator1.DataSource <> nil) then
        ExcelFrm.PersonExcel('');

     if (IntToStr(PageControl1.ActivePageIndex)='0') and (DBGridEh1.DataSource<>nil) then
     begin
        //ExcelFrm.CopyDbDataToExcel([DBGridEh1]);
         PrintDBGridEh1.DBGridEh := DBGridEh1;
         PrintDBGridEh1.SetSubstitutes(['%[Today]',DateToStr(Now)]);
         PrintDBGridEh1.Preview;
     end;
     ExcelFrm.Free;
end;

//-------------------condition check--------------------
procedure TMainFrm.SpeedButton7Click(Sender: TObject);
var condition1:String;
begin
try
   
    if self.ComboBox2.Text='查询条件' then
    begin
      showmessage('请选择查询条件');
      exit;
    end;

    if self.Edit2.Text=''then
    begin
      showmessage('请输入查询条件');
      exit;
    end;
    condition1:=trim(self.Edit2.Text);
    case self.ComboBox2.ItemIndex of  (*4*)
      0:
        condition:='status=1 and pname like "%'+condition1+'%"';
      1:
        condition:='status=1 and company like "%'+condition1+'%"';
      2:
         condition:='status=1 and industry like "%'+condition1+'%"';
      3:
        condition:='status=1 and area like "%'+condition1+'%"';
      4:
        condition:='status=1 and duty like "%'+condition1+'%"';
     end;
     self.PageCut(1,20);
     PageControl1.ActivePageIndex:=0;
  except
  on e:exception do
      exit;
  end;
  exit;
end;
//-----------------分页记录总数------------------
function TMainFrm.rscount(sqlstr: string):integer;
begin
    Result:=0;
    with DataModule1.ADOQuery1 do //查询数据库来判断用户合法性
    begin
        Close;
        SQL.Clear;
        SQL.add(sqlstr);
        open;
        First;
    end;
    Result:=DataModule1.ADOQuery1.FieldValues['totalcount'];
end;

procedure TMainFrm.DBGridFill(sqlstr:string);
begin
    with DataModule1.ADOQuery1 do
    begin
        Close;
        SQL.Clear;
        SQL.add(sqlstr);
        open;
        first;

⌨️ 快捷键说明

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