realtyl26.pas

来自「物业管理系统系统特点 一、 实现集中式管理 系统将集团公司、」· PAS 代码 · 共 368 行

PAS
368
字号
unit RealtyL26;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, dbcgrids, Grids, DBGrids, DB, ADODB, StdCtrls, Buttons, ExtCtrls,
  StrUtils, ExtDlgs, ComCtrls, math, Menus, ImgList;

type
    Tf_RealtyL26 = class(TForm)
    TreeView1: TTreeView;
    GroupBox5: TGroupBox;
    ListView1: TListView;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Button1: TButton;
    ToolButton1: TButton;
    ToolButton2: TButton;
    ToolButton3: TButton;
    ToolButton4: TButton;
    ToolButton5: TButton;
    ImageList1: TImageList;
    Button2: TButton;
    procedure ListView1CustomDrawItem(Sender: TCustomListView;
      Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
    procedure FormCreate(Sender: TObject);

    procedure TreeView1Click(Sender: TObject);


    procedure TreeView1CustomDrawItem(Sender: TCustomTreeView;
      Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);

  private
    { Private declarations }
  public
    { Public declarations }
     bMod:bool;
     sName:string;
     tmpNode1,tmpNode2: TTreeNode;
     firstNode: TTreeNode;
     Node: TTreeNode;
     bOK:bool;
  end;
var
  f_RealtyL26: Tf_RealtyL26;


implementation

uses data, main,RealtyL26A,RealtyPrint1;

{$R *.dfm}

//初始化
procedure Tf_RealtyL26.FormCreate(Sender: TObject);
var
    Query:TADOQuery;
    i,ii,iii:integer;
    tmpNode: TTreeNode;
begin
    treeview1.images:=ImageList1;


    FirstNode := treeview1.Items.GetFirstNode;
    Node:=treeview1.Items.AddChild(firstNode,'所有组织机构');
    Node.ImageIndex:=1;

    i:=0;
    Query:=TADOQuery.Create(nil);
    Query.Connection:=DataModuleADO.ADOConnection1;
    Query.SQL.Add('select top 1 * from 组织机构 order by level1 desc');
    Query.Open ;
    if query.RecordCount > 0 then i:=Query.FieldByName('level1').AsInteger;

    if i>0 then
    begin
        for ii:=1 to i do
        begin
            query.SQL.Clear;
            Query.SQL.Add('select * from 组织机构 where level1='+inttostr(ii));
            Query.Open ;
            while not query.Eof do
            begin
                if ii=1 then
                begin
                    treeview1.Items.AddChild(Node, Query.FieldByName('名称').Value);
                end
                else
                begin
                    for iii:=0 to TreeView1.Items.Count-1 do
                    begin
                        if TreeView1.Items[iii].Text = Query.FieldByName('所属机构').Value then
                        begin
                            tmpNode:=treeview1.Items[iii];
                            tmpNode.ImageIndex:=1;
                            treeview1.Items.AddChild(tmpNode, Query.FieldByName('名称').Value);
                            break;
                        end;
                    end;
                end;

                query.Next;
            end;
        end;
    end;

    treeview1.FullExpand;

    query.SQL.Clear;
    Query.SQL.Add('select * from 组织机构 where level1=1');
    Query.Open ;
    while not query.Eof do
    begin
        for iii:=0 to TreeView1.Items.Count-1 do
        begin
            if TreeView1.Items[iii].Text = Query.FieldByName('名称').Value then
            begin
                treeview1.Items[iii].Expanded:=false;
            end;
        end;

        query.Next;
    end;

    Treeview1.Items[0].Selected := True;
    //Treeview1.Items[0].Item[0].Selected := True;
    TreeView1Click(Sender);
end;

procedure Tf_RealtyL26.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
    if   Item.Selected = true then
    begin
          Sender.Canvas.Brush.Color   :=   clMenuHighlight;
          (Sender   as   TListView).Canvas.Font.Color   :=  clWhite;
    end;
end;



procedure Tf_RealtyL26.TreeView1Click(Sender: TObject);
var
    Query:TADOQuery;
    s:string;
begin
    if treeview1.SelectionCount=0 then exit;
    listview1.Items.Clear;

    s:=treeview1.selected.text;

    Query:=TADOQuery.Create(nil);
    Query.Connection:=DataModuleADO.ADOConnection1;

    if s<>'所有组织机构' then
    begin
        Query.SQL.Add('select * from 组织机构 where 名称='''+s+'''');
        Query.Open ;
        if query.RecordCount>0 then s:=Query.FieldByName('stampt').Value;
    end;


    if s='所有组织机构' then
    begin
        s:='select * from 组织机构 where 编号 like ''%'+Edit1.Text;
        s:=s+''' and 名称 like ''%'+Edit2.Text;
        s:=s+'%''';
    end
    else
    begin
        s:='select * from 组织机构 where stampt like '''+s;
        s:=s+'%'' and 编号 like ''%'+Edit1.Text;
        s:=s+'%'' and 名称 like ''%'+Edit2.Text;
        s:=s+'%''';
    end;

    query.SQL.clear;
    Query.SQL.Add(s);
    Query.Open ;
    while not query.eof do
    begin
        with listview1.Items.Add do
        begin
            Caption:=Query.FieldByName('编号').Value;
            SubItems.Add(Query.FieldByName('名称').Value);
            SubItems.Add(Query.FieldByName('邮编').Value);
            SubItems.Add(Query.FieldByName('地址').Value);
            SubItems.Add(Query.FieldByName('电话').Value);
            SubItems.Add(Query.FieldByName('传真').Value);
            SubItems.Add(Query.FieldByName('组织机构类别').Value);
            SubItems.Add(Query.FieldByName('说明').Value);
        end;
        query.Next;
    end;  
    query.Close ;
    query.Free ;

    if listview1.Items.Count>0 then listview1.Items.Item[0].Selected:=true;
end;

procedure Tf_RealtyL26.TreeView1CustomDrawItem(Sender: TCustomTreeView;
  Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
    if Node.Selected=true then
    begin
          Sender.Canvas.Brush.Color   :=   clMenuHighlight;
          (Sender   as   TTreeView).Canvas.Font.Color   :=  clWhite;
    end;
end;

procedure Tf_RealtyL26.ToolButton1Click(Sender: TObject);
begin
    bMod:=false;
    f_RealtyL26A:=Tf_RealtyL26A.Create(self);
    f_RealtyL26A.showmodal;
    if treeview1.Selected.Text<>'所有组织机构' then treeview1.Selected.Expand(true);
end;

procedure Tf_RealtyL26.ToolButton2Click(Sender: TObject);
begin
    if listview1.SelCount=0 then exit;
    bMod:=true;
    f_RealtyL26A:=Tf_RealtyL26A.Create(self);
    f_RealtyL26A.showmodal;
end;

procedure Tf_RealtyL26.ToolButton3Click(Sender: TObject);
var
   Query:TADOQuery;
   node:TTreeNode;
   s,s1:string;
   i:integer;
begin
    if listview1.SelCount=0 then exit;

    if(Application.MessageBox(PChar('确认要删除所选择记录吗?') ,'提示',Mb_OKCANCEL+Mb_IconInformation)=2) then exit;

    s:=listview1.Selected.SubItems[0];

    Query:=TADOQuery.Create(nil);
    Query.Connection := DataModuleADO.ADOConnection1;

    Query.SQL.Add('select * from 组织机构 where 名称 ='''+s+'''');
    Query.Open ;
    if query.RecordCount >0 then
    begin
        s1:= Query.FieldByName('stampt').Value;

        if Query.FieldByName('使用').Value='Y' then
        begin
            showmessage('该组织机构下已经包括使用数据,不能删除。');
            exit;
        end
        else
        begin
            DataModuleADO.ADOConnection1.BeginTrans;
            query.sql.Clear ;
            Query.SQL.Text:='delete from 组织机构 where stampt like '''+s1+'%''';
            query.ExecSQL;
            DataModuleADO.ADOConnection1.CommitTrans;
        end;
    end;

    query.Close ;
    query.Free ;


    for i:=0 to TreeView1.Items.Count-1 do
    begin
        if TreeView1.Items[i].Text = s then
        begin
            node:=TreeView1.Items.Item[i];
            treeview1.Items.Delete(node);
            break;
        end;
    end;

    TreeView1Click(Sender);     
end;

procedure Tf_RealtyL26.ToolButton5Click(Sender: TObject);
begin
    bOK:=false;
    close;
end;

procedure Tf_RealtyL26.Button1Click(Sender: TObject);
begin
    TreeView1Click(Sender);    
end;

procedure Tf_RealtyL26.ToolButton4Click(Sender: TObject);
var
    i:integer;
    Query:TADOQuery;
    s:string;
begin
    Query:=TADOQuery.Create(nil);
    Query.Connection:=DataModuleADO.ADOConnection1;

    DataModuleADO.ADOConnection1.BeginTrans;
    Query.SQL.Text:='delete from temp';
    query.ExecSQL;
    DataModuleADO.ADOConnection1.CommitTrans;

    for i:=0 to listview1.Items.Count-1 do
    begin
        s:= 'insert into temp(列1,列2,列3,列4,列5,列6,列7,列8)';
        s:=s+'values(:s1,:s2,:s3,:s4,:s5,:s6,:s7,:s8)';

        query.sql.Clear ;
        query.sql.add(s);
        query.Parameters.ParamByName('s1').Value:=listview1.Items.Item[i].Caption;
        query.Parameters.ParamByName('s2').Value:=listview1.Items.Item[i].SubItems[0];
        query.Parameters.ParamByName('s3').Value:=listview1.Items.Item[i].SubItems[1];
        query.Parameters.ParamByName('s4').Value:=listview1.Items.Item[i].SubItems[2];
        query.Parameters.ParamByName('s5').Value:=listview1.Items.Item[i].SubItems[3];
        query.Parameters.ParamByName('s6').Value:=listview1.Items.Item[i].SubItems[4];
        query.Parameters.ParamByName('s7').Value:=listview1.Items.Item[i].SubItems[5];
        query.Parameters.ParamByName('s8').Value:=listview1.Items.Item[i].SubItems[6];
        


        DataModuleADO.ADOConnection1.BeginTrans;
        query.execsql;
        DataModuleADO.ADOConnection1.CommitTrans;
    end;

    query.Close;
    query.Free;

    sFilep:='RealtyL26.fr3';

    sTitlep:=Caption;
    sPrintc:='select * from temp';
    f_RealtyPrint1:=Tf_RealtyPrint1.Create(self);
    f_RealtyPrint1.showmodal;
end;

procedure Tf_RealtyL26.Button2Click(Sender: TObject);
begin
    if listview1.SelCount=0 then exit;

    bOk:=true;
    sName:=listview1.selected.subitems[0];
    close;
end;

procedure Tf_RealtyL26.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
    Action := caFree;
end;

end.

⌨️ 快捷键说明

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