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

📄 realtyc331.pas

📁 物业管理系统系统特点 一、 实现集中式管理 系统将集团公司、各分公司、各物业管理处连接到一起
💻 PAS
字号:
unit RealtyC331;

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_RealtyC331 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Edit3: TEdit;
    Label4: TLabel;
    Edit4: TEdit;
    Label5: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Edit5: TEdit;
    Edit6: TEdit;
    DateTimePicker1: TDateTimePicker;
    Label6: TLabel;
    ComboBox1: TComboBox;
    Label14: TLabel;
    CheckBox1: TCheckBox;
    Button5: TButton;
    Button7: TButton;
    Edit7: TEdit;
    Button1: TButton;
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure NN6Click(Sender: TObject);
    procedure ToolButton10Click(Sender: TObject);
    procedure GetID;
    procedure FormCreate(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);

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


var
  f_RealtyC331: Tf_RealtyC331;
implementation
uses data, main,RealtyC33,RealtyA14,Car4s931;
{$R *.dfm}
//Initial******************************
procedure Tf_RealtyC331.FormCreate(Sender: TObject);
Var
    query,query1:TADOQuery;
    stemp:string;
begin
    datetimepicker1.Date:=date;
    query:=TADOQuery.Create(nil);
    query.Connection:=DataModuleADO.ADOConnection1;
    query1:=TADOQuery.Create(nil);
    query1.Connection:=DataModuleADO.ADOConnection1; 

    query.SQL.clear;
    query.sql.add('select distinct 名称 from 仪表种类');
    query.Open;
    while not query.eof do
    begin
        combobox1.Items.Add(query.fieldbyname('名称').Value);
        query.Next;
    end;


    if f_RealtyC33.bMod=false then
    begin
        GetID;
    end;


    if f_RealtyC33.bMod then
    begin
        query.SQL.Clear;
        query.SQL.Add('select * from 房间仪表 where 编号='''+f_RealtyC33.ListView1.Selected.Caption+'''');
        query.Open;
        if query.RecordCount>0 then
        begin
            query1.sql.Clear;
            query1.SQL.add('select * from 房间 where 编号='''+query.fieldbyname('房间').Value+'''');
            query1.Open;
            if query1.RecordCount>0 then  stemp:=query1.fieldbyname('编号').Value+'--'+query1.fieldbyname('名称').Value;

            edit1.Text:=query.fieldbyname('编号').Value;
            combobox1.ItemIndex:=combobox1.Items.IndexOf(query.fieldbyname('仪表种类').Value);
            edit7.text:=stemp;

            edit2.Text:=query.fieldbyname('损耗率').Value;
            edit3.Text:=query.fieldbyname('倍率').Value;
            edit4.Text:=query.fieldbyname('回程').Value;
            datetimepicker1.Date:=strtodate(query.fieldbyname('上次读数日期').Value);
            edit5.Text:=query.fieldbyname('上次读数').Value;
            edit6.Text:=query.fieldbyname('备注').Value;
            if query.fieldbyname('是否主表').Value<>'N' then checkbox1.Checked:=true
            else checkbox1.Checked:=false;
        end;
    end;
    
    query1.Close;
    query1.free;
    query.Close;
    query.free;
end;

procedure Tf_RealtyC331.GetID;
Var
    query:TADOQuery;
    s:string;
    i:integer;
begin
    query:=TADOQuery.Create(nil);
    query.Connection:=DataModuleADO.ADOConnection1;

    s := 'select top 1 * from 房间仪表 ORDER BY  编号 DESC';

    Query.SQL.Add(s);
    Query.Open ;
    if query.recordcount > 0 then
    begin
        s:= Query.Fieldbyname('编号').AsString;
        s:= Copy(S, 1, 7);
        i:= strtoint(s)+1;
        if i<10 then edit1.text := '000000'+inttostr(i)
        else if (i > 9) and (i<100) then edit1.text := '00000'+inttostr(i)
        else if (i > 99) and (i<1000) then edit1.text := '0000'+inttostr(i)
        else if (i > 999) and (i<10000) then edit1.text := '000'+inttostr(i)
        else if (i > 9999) and (i<100000) then edit1.text := '00'+inttostr(i)
        else if (i > 99999) and (i<1000000) then edit1.text := '0'+inttostr(i)
        else if i>999999 then edit1.text := inttostr(i);
    end
    else  edit1.text := '0000001';

    query.Close;
    query.free;
end;
//Tab****************************************
procedure Tf_RealtyC331.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;

//FreeForm**********************************
procedure Tf_RealtyC331.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    Action := caFree;
end;

//Close*************************************
procedure Tf_RealtyC331.NN6Click(Sender: TObject);
begin
    close;
end;

procedure Tf_RealtyC331.ToolButton10Click(Sender: TObject);
begin
    NN6Click(Sender);
end;

procedure Tf_RealtyC331.Button7Click(Sender: TObject);
Var
    query,query1:TADOQuery;
    s,s1,s2,stemp,stemp1,stemp2,r1:string;
    i,j:integer;
    b:bool;
begin
    query:=TADOQuery.Create(nil);
    query.Connection:=DataModuleADO.ADOConnection1;
    query1:=TADOQuery.Create(nil);
    query1.Connection:=DataModuleADO.ADOConnection1;

    s2:=mainform.getNum(edit7.text);



    if edit1.Text='' then
    begin
        showmessage('编号不能为空!');
        edit1.SetFocus;
        exit;
    end;

    if combobox1.Text='' then
    begin
        showmessage('仪表种类不能为空!');
        combobox1.SetFocus;
        exit;
    end;

    if edit7.Text='' then
    begin
        showmessage('房间不能为空!');
        edit7.SetFocus;
        exit;
    end;

    if edit3.Text='' then
    begin
        showmessage('倍率不能为空!');
        edit3.SetFocus;
        exit;
    end;

    if edit4.Text='' then
    begin
        showmessage('回程不能为空!');
        edit4.SetFocus;
        exit;
    end;

    edit2.Text:=mainform.StdDou2(edit2.Text);
    edit3.Text:=mainform.StdDou2(edit3.Text);
    edit4.Text:=mainform.StdDou2(edit4.Text);
    edit5.Text:=mainform.StdDou2(edit5.Text);

    if edit6.Text='' then edit6.Text:='-';
    if checkbox1.Checked then s1:='Y' else s1:='N';

    query.sql.Clear;
    query.SQL.Add('select * from 房间 where 编号='''+s2+'''');
    query.Open;
    if query.RecordCount>0 then r1:=query.fieldbyname('管理处').value;

    if f_RealtyC33.bMod=true then
    begin
        if edit1.Text<>f_RealtyC33.listview1.selected.Caption then
        begin
            query.sql.clear;
            query.SQL.add('select * from 房间仪表 where 编号='''+edit1.text+'''');
            query.open;
            if query.RecordCount>0 then
            begin
                showmessage('此记录已存在');
                exit;
            end;
        end;

        {b:=false;
        if (f_RealtyC33.ListView1.Selected.Subitems[0]=combobox1.Text) and (f_RealtyC33.ListView1.Selected.Subitems[1]=s2) then b:=true;

        if b=false then
        begin
            showmessage('此记录已存在');
            exit;
        end;   }

        s:='update 房间仪表 set 编号='''+edit1.Text;
        s:=s+''',仪表种类='''+combobox1.Text;
        s:=s+''',房间='''+s2;
        s:=s+''',损耗率='+edit2.Text;
        s:=s+',倍率='+edit3.Text;
        s:=s+',回程='+edit4.Text;
        s:=s+',上次读数='+edit5.text;
        s:=s+',上次读数日期='''+datetostr(datetimepicker1.Date);
        s:=s+''',备注='''+edit6.Text;
        s:=s+''',是否主表='''+s1;
        s:=s+''' where 编号='''+f_RealtyC33.ListView1.Selected.Caption+'''';

        query.SQL.Clear;
        query.sql.Add(s);
        DataModuleADO.ADOConnection1.BeginTrans;
        query.ExecSQL;
        DataModuleADO.ADOConnection1.CommitTrans;

        s:='select * from 房间仪表 where 编号 ='''+edit1.Text;
        s:=s+'''';
        query.SQL.Clear;
        Query.SQL.Add(s);
        Query.Open ;
        if query.RecordCount>0 then
        begin
            query1.sql.clear;
            query1.SQL.add('select * from 房间 where 编号='''+query.fieldbyname('房间').Value+'''');
            query1.Open;
            if query1.RecordCount>0 then
            begin
                stemp1:=query1.fieldbyname('管理区').Value;
            end;

            with f_RealtyC33.ListView1.selected do
            begin
                Caption:=query.fieldbyname('编号').Value;
                SubItems[0]:=Query.FieldByName('仪表种类').Value;
                SubItems[1]:=mainform.getName('房间',query.fieldbyname('编号').Value);
                SubItems[2]:=Query.FieldByName('倍率').Value;
                SubItems[3]:=Query.FieldByName('回程').Value;
                SubItems[4]:=Query.FieldByName('损耗率').Value;
                SubItems[5]:=Query.FieldByName('上次读数').Value;
                SubItems[6]:=Query.FieldByName('备注').Value;
                SubItems[7]:=mainform.getName('管理区',stemp1);
            end;
            query.Next;
        end;
        query1.close;
        query1.Free;
        query.close;
        query.Free;
        close;
    end
    else
    begin
        query.sql.clear;
        query.SQL.add('select * from 房间仪表 where 编号='''+edit1.text+'''');
        query.open;
        if query.RecordCount>0 then
        begin
            showmessage('此记录已存在');
            exit;
        end;

        s:='select * from 房间仪表 where 房间='''+s2;
        s:=s+''' and 仪表种类='''+ combobox1.Text;
        s:=s+'''';

        query.sql.clear;
        query.SQL.add(s);
        query.open;
        if query.RecordCount>0 then
        begin
            showmessage('此记录已存在');
            exit;
        end;

        s:='insert into 房间仪表 (编号,仪表种类,房间,倍率,回程,';
        s:=s+'损耗率,上次读数日期,上次读数,是否主表,';
        s:=s+'备注,总表)';
        s:=s+'values (:s1,:s2,:s3,:s4,:s5,';
        s:=s+':s6,:s7,:s8,:s9,:s10,:s11)';

        query.SQL.Clear;
        query.SQL.Add(s);

        query.Parameters.ParamByName('s1').Value:=edit1.Text;
        query.Parameters.ParamByName('s2').Value:=combobox1.Text;
        query.Parameters.ParamByName('s3').Value:=s2;
        query.Parameters.ParamByName('s4').Value:=strtofloat(edit3.text);
        query.Parameters.ParamByName('s5').Value:=strtofloat(edit4.Text);

        query.Parameters.ParamByName('s6').Value:=strtofloat(edit2.Text);
        query.Parameters.ParamByName('s7').Value:=datetostr(datetimepicker1.date);
        query.Parameters.ParamByName('s8').Value:=strtofloat(edit5.Text);
        query.Parameters.ParamByName('s9').Value:=s1;

        query.Parameters.ParamByName('s10').Value:=edit6.Text;
        query.Parameters.ParamByName('s11').Value:='-';


        DataModuleADO.ADOConnection1.BeginTrans;
        query.ExecSQL;
        DataModuleADO.ADOConnection1.CommitTrans;

        s:='select * from 房间仪表 where 编号 ='''+edit1.Text;
        s:=s+'''';
        query.SQL.Clear;
        Query.SQL.Add(s);
        Query.Open ;
        if query.RecordCount>0 then
        begin
            query1.sql.clear;
            query1.SQL.add('select * from 房间 where 编号='''+query.fieldbyname('房间').Value+'''');
            query1.Open;
            if query1.RecordCount>0 then
            begin
                stemp1:=query1.fieldbyname('管理区').Value;
            end;
            with f_RealtyC33.ListView1.Items.Add do
            begin
                Caption:=query.fieldbyname('编号').Value;
                SubItems.Add(Query.FieldByName('仪表种类').Value);
                SubItems.Add(mainform.getName('房间',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(mainform.getName('管理区',stemp1));
            end;
            query.Next;
        end;

        query1.Close;
        query1.free;
        query.Close;
        query.free;

        if f_RealtyC33.listview1.Items.Count > 0 then f_RealtyC33.ListView1.Items.Item[0].Selected := True;

        getid;
        edit2.text:='';
        edit3.text:='';
        edit4.text:='';
        edit5.text:='';
        edit6.text:='';
        edit7.text:='';
        combobox1.ItemIndex:=combobox1.Items.IndexOf('');
        datetimepicker1.date:=date;
        checkbox1.checked:=false;
    end;


end;

procedure Tf_RealtyC331.Button5Click(Sender: TObject);
begin
    close;
end;

procedure Tf_RealtyC331.Button1Click(Sender: TObject);
var
    query:TADOQuery;
    s:string;
begin
     f_RealtyA14:=Tf_RealtyA14.Create(self);
     f_RealtyA14.ToolButton6.Visible:=true;
     f_RealtyA14.ShowModal;

     if  f_RealtyA14.bOk=true then
     begin
        edit7.Text:=f_RealtyA14.sNum+'--'+f_RealtyA14.sName;
     end; 
end;

end.

⌨️ 快捷键说明

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