realtyc35.pas

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

PAS
439
字号
unit RealtyC35;

interface

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

type
    Tf_RealtyC35 = class(TForm)
    GroupBox1: TGroupBox;
    ListView1: TListView;
    TreeView1: TTreeView;
    Label1: TLabel;
    Button1: TButton;
    Button3: TButton;
    Button2: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Label3: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label4: TLabel;
    Edit3: TEdit;
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ListView1CustomDrawItem(Sender: TCustomListView;
      Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure TreeView1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure TreeView1CustomDrawItem(Sender: TCustomTreeView;
      Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);

    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
     bMod:bool;
     sTable:string;
     cols:integer;
  end;

var
  f_RealtyC35: Tf_RealtyC35;

implementation
uses data, main,RealtyC351,RealtyPrint1;
{$R *.dfm}

//初始化
procedure Tf_RealtyC35.FormCreate(Sender: TObject);
begin
    getStructure(TreeView1);
end;


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



//Tab
procedure Tf_RealtyC35.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if key=13 then
        Begin
            key:=0;
            perform(WM_NEXTDLGCTL,0,0);
        end
    else if key=VK_ESCAPE then close;
end;

//释放窗体*********************************
procedure Tf_RealtyC35.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    Action := caFree;
end;


//高亮**********************************
procedure Tf_RealtyC35.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_RealtyC35.TreeView1Click(Sender: TObject);
Var
    query,query1,query2,query11:TADOQuery;
    nLevel:integer;
    s,s1,s2,s3,s4,stemp,stemp1,stemp11,stemp2:string;
begin
    listview1.Items.Clear;

    nLevel:=treeview1.Selected.Level;

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

    if nLevel=0 then
    begin
        s:='select * from 房间抄表 where 房间仪表 like ''%'+Edit1.text;
        s:=s+'%'' order by 编号 asc';

        query.SQL.Clear;
        Query.SQL.Add(s);
        Query.Open ;
        while not Query.Eof do
        begin
            s:='select * from 房间 where 编号='''+query.fieldbyname('房间').Value;
            s:=s+''' and 名称 like ''%'+edit2.Text+'%''';

            query2.SQL.Clear;
            Query2.SQL.Add(s);
            Query2.Open ;
            if query2.RecordCount>0 then
            begin
                s:='select * from 管理区 where  编号='''+Query2.FieldByName('管理区').Value;
                s:=s+''' and 名称 like ''%'+edit3.Text+'%''';

                query1.SQL.Clear;
                query1.SQL.Add('select * from 房间仪表 where 编号='''+query.fieldbyname('房间仪表').Value+'''');
                query1.open;
                if query1.RecordCount>0 then stemp:=query1.fieldbyname('仪表种类').value;

                query2.SQL.Clear;
                Query2.SQL.Add(s);
                Query2.Open ;
                if query2.RecordCount>0 then
                begin
                    with ListView1.Items.Add do
                    begin
                        Caption:=mainform.getName('房间',Query.FieldByName('房间').Value);
                        SubItems.Add(stemp);
                        //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);
                        SubItems.Add(Query2.FieldByName('名称').Value);
                        SubItems.Add(Query.FieldByName('编号').Value);
                        SubItems.Add(Query.FieldByName('抄表月份').Value);
                    end;
                end;
            end;

            query.Next;
        end;
    end;

    if nLevel>0 then
    begin
        s:='select * from 组织机构 where 名称 = '''+treeview1.Selected.Text+'''';

        query.SQL.Clear;
        Query.SQL.Add(s);
        Query.Open ;
        if query.RecordCount>0 then
        begin
            s1:=Query.FieldByName('stampt').Value;

            s:='select * from 组织机构 where 组织机构类别='''+'管理处';
            s:=s+''' and stampt like '''+s1+'%''';

            query1.SQL.Clear;
            Query1.SQL.Add(s);
            Query1.Open ;
            while not Query1.Eof do
            begin
                s:='select * from 房间抄表 where 编号 like ''%'+Edit1.text;
                s:=s+'%'' order by 编号 asc';

                query.SQL.Clear;
                Query.SQL.Add(s);
                Query.Open ;
                while not Query.Eof do
                begin
                    s:='select * from 房间 where 编号 ='''+query.fieldbyname('房间').Value;
                    s:=s+''' and 管理处 ='''+query1.fieldbyname('编号').Value;
                    s:=s+''' and 名称 like ''%'+edit2.Text+'%''';

                    query2.SQL.Clear;
                    Query2.SQL.Add(s);
                    Query2.Open ;
                    if query2.RecordCount>0 then
                    begin
                        s:='select * from 管理区 where  编号='''+Query2.FieldByName('管理区').Value;
                        s:=s+''' and 名称 like ''%'+edit3.Text+'%''';

                        query11.SQL.Clear;
                        query11.SQL.Add('select * from 房间仪表 where 编号='''+query.fieldbyname('房间仪表').Value+'''');
                        query11.open;
                        if query11.RecordCount>0 then stemp:=query11.fieldbyname('仪表种类').value;

                        query2.SQL.Clear;
                        Query2.SQL.Add(s);
                        Query2.Open ;
                        if query2.RecordCount>0 then
                        begin
                            with ListView1.Items.Add do
                            begin
                                Caption:=mainform.getName('房间',Query.FieldByName('房间').Value);
                                SubItems.Add(stemp);
                                //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);
                                SubItems.Add(Query2.FieldByName('名称').Value);
                                SubItems.Add(Query.FieldByName('编号').Value);
                            end;
                        end;
                    end;
                    query.Next;
                end;

                query1.Next;
            end;
        end;
    end;



    query.close;
    query.Free;
    query1.close;
    query1.Free;
    query11.close;
    query11.Free;

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


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


procedure Tf_RealtyC35.Button3Click(Sender: TObject);
Var
    query:TADOQuery;
    bExist:bool;
    i:integer;
begin
    mainform.t1:=mainform.getNum(treeview1.Selected.Text);
    bMod:=false;
    f_RealtyC351:=Tf_RealtyC351.create(self);
    f_RealtyC351.showmodal;
end;

procedure Tf_RealtyC35.Button2Click(Sender: TObject);

begin
    bMod:=true;
    f_RealtyC351:=Tf_RealtyC351.create(self);
    f_RealtyC351.showmodal;
end;

procedure Tf_RealtyC35.Button4Click(Sender: TObject);
var
    Query:TADOQuery;
    s,s1:string;
begin
    If ListView1.SelCount=0 Then exit;


    s:='select * from 房间抄表 where 编号='''+listview1.Selected.SubItems[8];
    s:=s+''' and 审核='''+'Y';
    s:=s+'''';

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

    query.SQL.Clear;
    query.SQL.Add(s);
    query.Open;
    if query.RecordCount>0 then
    begin
        showmessage('已经审核。');
        exit;
    end;

    

    if(Application.MessageBox(PChar('确认要删除所选记录吗?') ,'提示',Mb_OKCANCEL+Mb_IconInformation)=1) then
    begin
        Query:=TADOQuery.Create(nil);
        Query.Connection:=DataModuleADO.ADOConnection1;
        DataModuleADO.ADOConnection1.BeginTrans;
        Query.SQL.Text:='delete from 房间抄表 where 编号='''+listview1.Selected.SubItems[8]+'''';
        query.ExecSQL;
        DataModuleADO.ADOConnection1.CommitTrans;
        query.Close;
        query.Free;
        ListView1.Selected.Delete;
        if listview1.Items.Count > 0 then ListView1.Items.Item[0].Selected := True;
    end;
end;

procedure Tf_RealtyC35.Button6Click(Sender: TObject);
begin
    CLOSE;
end;

procedure Tf_RealtyC35.Button7Click(Sender: TObject);
var
    Query:TADOQuery;
    s,s1:string;
begin
    If ListView1.SelCount=0 Then exit;


    s:='select * from 房间抄表 where 编号='''+listview1.Selected.SubItems[8];
    s:=s+''' and 审核='''+'Y'+'''';

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

    query.SQL.Clear;
    query.SQL.Add(s);
    query.Open;
    if query.RecordCount>0 then
    begin
        showmessage('已经审核。');
        exit;
    end;

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


    s:='update 房间抄表 set 审核='''+'Y';
    s:=s+''' where 编号='''+listview1.Selected.SubItems[8]+'''';


    DataModuleADO.ADOConnection1.BeginTrans;
    Query.SQL.Text:=s;
    query.ExecSQL;
    DataModuleADO.ADOConnection1.CommitTrans;

    showmessage('审核成功。');

    Query.Close;
    Query.Free;

end;

procedure Tf_RealtyC35.Button5Click(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,列9,列10,';
        s:=s+'列11)';
        s:=s+'values(:s1,:s2,:s3,:s4,:s5,:s6,:s7,:s8,:s9,:s10,';
        s:=s+':s11)';

        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];
        query.Parameters.ParamByName('s9').Value:=listview1.Items.Item[i].SubItems[7];
        query.Parameters.ParamByName('s10').Value:=listview1.Items.Item[i].SubItems[8];
        query.Parameters.ParamByName('s11').Value:=listview1.Items.Item[i].SubItems[9];
   


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

    query.Close;
    query.Free;

    sFilep:='RealtyC35.fr3';

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

end;

end.

⌨️ 快捷键说明

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