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

📄 realtyl26a.pas

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

interface

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

type
    Tf_RealtyL26A = class(TForm)
    Button6: TButton;
    Button2: TButton;
    Label1: TLabel;
    L1: TLabel;
    L2: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit8: TEdit;
    edit7: TComboBox;
    procedure FormCreate(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Button6Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
      bOK:bool;
      sParent:string;
  end;

var
  f_RealtyL26A: Tf_RealtyL26A;


implementation

uses data, main, RealtyL26;

{$R *.dfm}

//初始化
procedure Tf_RealtyL26A.FormCreate(Sender: TObject);
var
    i:integer;
    s:string;
    query:TADOQuery;
begin
    query:=TADOQuery.Create(nil);
    query.Connection:=datamoduleado.ADOConnection1;

    query.SQL.Add('select * from 辅助资料 where 类别='''+'组织机构类别'+'''');
    query.Open;
    while not query.Eof do
    begin
        edit7.Items.Add(query.fieldbyname('名称').value);
        query.Next;
    end;

    if f_RealtyL26.TreeView1.selected.Text='所有组织机构' then sParent:='公司'
    else sParent:= f_RealtyL26.TreeView1.selected.Text;

    if f_RealtyL26.bMod = false then exit;

    Edit1.Text:= f_RealtyL26.listview1.selected.caption;
    Edit2.Text:= f_RealtyL26.listview1.selected.subitems[0];
    Edit3.Text:= f_RealtyL26.listview1.selected.subitems[1];
    Edit4.Text:= f_RealtyL26.listview1.selected.subitems[2];
    Edit5.Text:= f_RealtyL26.listview1.selected.subitems[3];
    Edit6.Text:= f_RealtyL26.listview1.selected.subitems[4];
    Edit7.ItemIndex:=Edit7.Items.IndexOf(f_RealtyL26.listview1.selected.subitems[5]);
    Edit8.Text:= f_RealtyL26.listview1.selected.subitems[6];

    query.SQL.Clear;
    query.SQL.Add('select * from 组织机构 where 编号='''+Edit1.Text+'''');
    query.Open;
    if query.RecordCount>0 then sParent:= query.fieldbyname('所属机构').value;

    query.Close;
    query.free;
end;

//Tab
procedure Tf_RealtyL26A.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_RealtyL26A.Button6Click(Sender: TObject);
begin
    Close;
end;


procedure Tf_RealtyL26A.Button2Click(Sender: TObject);
var
    Query,query1:TADOQuery;
    s,s1,s2:string;
    i,i1:integer;
    tmpNode: TTreeNode;
    bIn:bool;
begin
    if Edit1.Text='' then
    begin
        showmessage('请输入编号');
        Edit1.SetFocus;
        exit;
    end;

    if Edit2.Text='' then
    begin
        showmessage('请输入名称');
        Edit2.SetFocus;
        exit;
    end;

    if Edit7.Text='' then
    begin
        showmessage('请输入组织机构类别');
        Edit7.SetFocus;
        exit;
    end;

    if Edit3.Text='' then Edit3.Text:='-';
    if Edit4.Text='' then Edit4.Text:='-';
    if Edit5.Text='' then Edit5.Text:='-';
    if Edit6.Text='' then Edit6.Text:='-';
    if Edit8.Text='' then Edit8.Text:='-';


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

    //新增
    if f_RealtyL26.bMod=false then
    begin
        Query.SQL.Add('select * from 组织机构 where 编号='''+Edit1.Text+'''');
        Query.Open ;
        if query.RecordCount>0 then
        begin
            showmessage('编号重复');
            Edit1.SetFocus;
            query.close;
            query.free;
            exit;
        end;

        query.SQL.Clear ;
        Query.SQL.Add('select * from 组织机构 where 名称='''+Edit2.Text+'''');
        Query.Open ;
        if query.RecordCount>0 then
        begin
            showmessage('名称重复');
            Edit2.SetFocus;
            query.close;
            query.free;
            exit;
        end;


        s:=sParent;
        if s='公司' then s:='所有组织机构';

        for i:=0 to f_RealtyL26.TreeView1.Items.Count-1 do
        begin
            if f_RealtyL26.TreeView1.Items[i].Text = s then
            begin
                tmpNode:=f_RealtyL26.treeview1.Items[i];
                f_RealtyL26.treeview1.Items.AddChild(tmpNode, Edit2.text);
                break;
            end;
        end;

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

            s2:=Query.FieldByName('名称').Value;

            query.SQL.Clear ;
            Query.SQL.Add('select top 1 * from 组织机构 where 所属机构 ='''+s2+''' order by stampt desc');
            Query.Open ;
            if query.RecordCount = 0 then  s1:=s1+'001'
            else
            begin
                i1:=1+(3*i);
                s2:=Copy(Query.FieldByName('stampt').Value, i1, 3);

                i1:=strtoint(s2)+1;

                if i1<10 then s1 := s1 + '00'+inttostr(i1)
                else if (i1 > 9) and (i1<100) then s1 := s1 + '0'+inttostr(i1)
                else if i1>99 then s1:= inttostr(i1);
        end;

            inc(i);
        end
        else
        begin
            query.SQL.Clear ;
            Query.SQL.Add('select top 1 * from 组织机构 where 所属机构 ='''+sParent+''' order by stampt desc');
            Query.Open ;
            if query.RecordCount = 0 then
            begin
                s1:=s1+'001';
            end
            else
            begin
                s2:=Query.FieldByName('stampt').Value;

                i1:=strtoint(s2)+1;

                if i1<10 then s1 := s1 + '00'+inttostr(i1)
                else if (i1 > 9) and (i1<100) then s1 := s1 + '0'+inttostr(i1)
                else if i1>99 then s1:= inttostr(i1);
            end;

            i:=1;
        end;

        s := 'insert into 组织机构(编号,名称,邮编,地址,电话,传真,组织机构类别,说明,';
        s := s+'所属机构,stampt,level1,使用) values(:s1,:s2,:s3,:s4,:s5,:s6,:s7,:s8,:s9,:s10,:s11,:s12)';
        
        query.sql.Clear ;
        query.sql.add(s);
        query.Parameters.ParamByName('s1').Value:=Edit1.Text;
        query.Parameters.ParamByName('s2').Value:=Edit2.Text;
        query.Parameters.ParamByName('s3').Value:=Edit3.Text;
        query.Parameters.ParamByName('s4').Value:=Edit4.Text;
        query.Parameters.ParamByName('s5').Value:=Edit5.Text;
        query.Parameters.ParamByName('s6').Value:=Edit6.Text;
        query.Parameters.ParamByName('s7').Value:=Edit7.Text;
        query.Parameters.ParamByName('s8').Value:=Edit8.Text;
        query.Parameters.ParamByName('s9').Value:=sParent;
        query.Parameters.ParamByName('s10').Value:=s1;
        query.Parameters.ParamByName('s11').Value:=i;
        query.Parameters.ParamByName('s12').Value:='N';
        
        DataModuleADO.ADOConnection1.BeginTrans;
        query.ExecSQL;
        DataModuleADO.ADOConnection1.CommitTrans;

        query.Close ;
        query.Free ;


        with f_RealtyL26.listview1.Items.Add do
        begin
            Caption:=Edit1.Text;
            SubItems.Add(Edit2.Text);
            SubItems.Add(Edit3.Text);
            SubItems.Add(Edit4.Text);
            SubItems.Add(Edit5.Text);
            SubItems.Add(Edit6.Text);
            SubItems.Add(Edit7.Text);
            SubItems.Add(Edit8.Text);
        end;


        Edit1.Text:='';
        Edit2.Text:='';
        Edit3.Text:='';
        Edit4.Text:='';
        Edit5.Text:='';
        Edit6.Text:='';
        Edit7.ItemIndex:=Edit7.Items.IndexOf('');
        Edit8.Text:='';
        Edit1.SetFocus;
    end;



    if f_RealtyL26.bMod=true then
    begin
        if Edit1.Text<>f_RealtyL26.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('编号重复');
                Edit1.SetFocus;
                query.close;
                query.free;
                exit;
            end;
        end;

        if Edit2.Text<>f_RealtyL26.listview1.selected.subitems[0] then
        begin
            query.SQL.Clear ;
            Query.SQL.Add('select * from 组织机构 where 名称='''+Edit2.Text+'''');
            Query.Open ;
            if query.RecordCount>0 then
            begin
                showmessage('名称重复');
                Edit2.SetFocus;
                query.close;
                query.free;
                exit;
            end;
        end;

        s:='update 组织机构 set 编号='''+Edit1.Text;
        s:=s+''',名称='''+Edit2.Text;
        s:=s+''',邮编='''+Edit3.Text;
        s:=s+''',地址='''+Edit4.Text;
        s:=s+''',电话='''+Edit5.Text;
        s:=s+''',传真='''+sParent;
        s:=s+''',组织机构类别='''+Edit7.Text;
        s:=s+''',说明='''+Edit8.Text;
        s:=s+''' where 名称='''+f_RealtyL26.listview1.selected.subitems[0]+'''';
        DataModuleADO.ADOConnection1.BeginTrans;
        query1.sql.Clear ;
        Query1.SQL.Text:=s;
        query1.ExecSQL;
        DataModuleADO.ADOConnection1.CommitTrans;

        query.SQL.Clear ;
        Query.SQL.Add('select * from 组织机构 where 所属机构 ='''+sParent+'''');
        Query.Open ;
        while  not query.Eof do
        begin
            DataModuleADO.ADOConnection1.BeginTrans;
            query1.sql.Clear ;
            Query1.SQL.Text:='update 组织机构 set 所属机构='''+Edit2.Text+''' where 所属机构='''+f_RealtyL26.listview1.selected.subitems[0]+'''';
            query1.ExecSQL;
            DataModuleADO.ADOConnection1.CommitTrans;

            query.Next;
        end;
        query.Close ;
        query.Free ;
        query1.Close ;
        query1.Free ;

        for i:=0 to f_RealtyL26.TreeView1.Items.Count-1 do
        begin
            if f_RealtyL26.TreeView1.Items[i].Text = f_RealtyL26.ListView1.Selected.SubItems[0] then
            begin
                f_RealtyL26.TreeView1.Items[i].Text:=Edit2.text;
                break;
            end;
        end;

        f_RealtyL26.ListView1.Selected.Caption:=Edit1.Text;
        f_RealtyL26.ListView1.Selected.SubItems[0]:=Edit2.Text;
        f_RealtyL26.ListView1.Selected.SubItems[1]:=Edit3.Text;
        f_RealtyL26.ListView1.Selected.SubItems[2]:=Edit4.Text;
        f_RealtyL26.ListView1.Selected.SubItems[3]:=Edit5.Text;
        f_RealtyL26.ListView1.Selected.SubItems[4]:=Edit6.Text;
        f_RealtyL26.ListView1.Selected.SubItems[5]:=Edit7.Text;
        f_RealtyL26.ListView1.Selected.SubItems[6]:=Edit8.Text;

        close;
    end;
end;

end.

⌨️ 快捷键说明

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