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

📄 mc_fczycx.~pas

📁 1、系统环境要求:所有程序均在Windows98/XP操作系统下测试运行。 2、建议用户在系统上安装DELPHI7.0企业版。 3、如果数据库为SQL Server数据库
💻 ~PAS
字号:
unit MC_FCZYCX;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Db, Grids, DBGrids, DBTables, DBCtrls, Mask, ExtCtrls,
  TeeProcs, TeEngine, Chart, Buttons, Series;

type
  TFCZYCX = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    DBLookupComboBox1: TDBLookupComboBox;
    Table1: TTable;
    Table1BDEDesigner: TStringField;
    Table1BDEDesigner2: TStringField;
    Table1BDEDesigner3: TStringField;
    Table1BDEDesigner4: TStringField;
    Table1BDEDesigner5: TIntegerField;
    Table1BDEDesigner6: TStringField;
    Table1BDEDesigner7: TMemoField;
    Table1BDEDesigner8: TBlobField;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Table2: TTable;
    Table2BDEDesigner: TStringField;
    Table2BDEDesigner2: TStringField;
    Table2BDEDesigner3: TStringField;
    Table2BDEDesigner4: TStringField;
    Table2BDEDesigner5: TIntegerField;
    Table2BDEDesigner6: TStringField;
    Table2BDEDesigner7: TStringField;
    Chart1: TChart;
    Series1: TPieSeries;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    DataSource2: TDataSource;
    Query1: TQuery;
    BitBtn3: TBitBtn;
    Label1: TLabel;
    ComboBox1: TComboBox;
    StringGrid1: TStringGrid;
    Label2: TLabel;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure StringGrid1DblClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    a,b,c:Integer;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FCZYCX: TFCZYCX;

implementation

{$R *.DFM}

procedure TFCZYCX.FormClose(Sender: TObject; var Action: TCloseAction);
begin
     FCZYCX.Release;
     FCZYCX:=Nil;
end;

procedure TFCZYCX.FormShow(Sender: TObject);
begin
     DBLookupComboBox1.KeyValue:=Table1.FieldByName('小区名').AsString;
     ComboBox1.ItemIndex:=0;
     StringGrid1.Cells[1,0]:='编号';
     StringGrid1.Cells[2,0]:='大楼名';
     StringGrid1.Cells[3,0]:='负责人';
end;

procedure TFCZYCX.DBGrid1DblClick(Sender: TObject);
var a,b:integer;
begin
     if Table2.RecordCount<>0 then
        begin
             For a:=1 to StringGrid1.RowCount-1 do
             begin
                  if StringGrid1.Cells[1,a]=Table2.FieldByName('大楼编号').AsString then
                     Exit;
             end;
             For a:=1 to StringGrid1.RowCount-1 do
             begin
                  if Length(StringGrid1.Cells[1,a])=0 then
                     begin
                          B:=a;
                          Break;
                     end
                  else
                     b:=0;
             end;
             //showMessage(InttoStr(B));
             if b=0 then
             begin
                  StringGrid1.RowCount:=StringGrid1.RowCount+1;
                  StringGrid1.Cells[1,StringGrid1.RowCount-1]:=Table2.FieldByName('大楼编号').AsString;
                  StringGrid1.Cells[2,StringGrid1.RowCount-1]:=Table2.FieldByName('大楼名称').AsString;
                  StringGrid1.Cells[3,StringGrid1.RowCount-1]:=Table2.FieldByName('负责人').AsString;
             end
             else
             begin
                  StringGrid1.Cells[1,b]:=Table2.FieldByName('大楼编号').AsString;
                  StringGrid1.Cells[2,b]:=Table2.FieldByName('大楼名称').AsString;
                  StringGrid1.Cells[3,b]:=Table2.FieldByName('负责人').AsString;
             end;
        end;
end;

procedure TFCZYCX.StringGrid1DblClick(Sender: TObject);
var a,b: Integer;
begin
     b:=StringGrid1.Row;
     if StringGrid1.RowCount<>2 then
     begin
          For a:=b to StringGrid1.RowCount-2 do
          begin
               STringGrid1.Cells[1,a]:=StringGrid1.Cells[1,a+1];
               STringGrid1.Cells[2,a]:=StringGrid1.Cells[2,a+1];
               STringGrid1.Cells[3,a]:=StringGrid1.Cells[3,a+1];
          end;
          StringGrid1.RowCount:=stringGrid1.RowCount-1;
     end;
end;

procedure TFCZYCX.BitBtn1Click(Sender: TObject);
var a,b,C: Integer;
    ZT: array of String;
begin
//'〖房产资源比例图〗'
//'〖房屋出租比例图〗'
//'〖投诉状态比例图〗'
    if Length(StringGrid1.Cells[1,1])<>0 then
    case ComboBox1.ItemIndex of
         0: begin
                 Series1.Clear;
                 Label2.Caption:='男女人口各占总人口的百分比';
                 Query1.Close;
                 Query1.SQL.Clear;
                 Query1.SQL.Add('Select Count(人口编号) From 人口信息');
                 Query1.SQL.Add('Where 房间代号 in (Select 房间编号 From 房屋信息表 where 大楼编号=:A');
                 Query1.ParamByName('A').AsString:=StringGrid1.Cells[1,1];
                 For b:=1 to StringGrid1.RowCount-1 do
                 begin
                      Query1.SQL.Add('or 大楼编号 = '''+StringGrid1.Cells[1,b]+'''');
                 end;
                 Query1.SQL.Add(')');
                 Query1.SQL.Add(' And 性别=''男''');
                 Query1.Open;
                 Series1.AddPie(Query1.Fields[0].AsInteger,'男性人口数',clRed);
                 //-------------------------------------------------------------
                 Query1.Close;
                 Query1.SQL.Clear;
                 Query1.SQL.Add('Select Count(人口编号) From 人口信息');
                 Query1.SQL.Add('Where 房间代号 in (Select 房间编号 From 房屋信息表 where 大楼编号=:A');
                 Query1.ParamByName('A').AsString:=StringGrid1.Cells[1,1];
                 For b:=1 to StringGrid1.RowCount-1 do
                 begin
                      Query1.SQL.Add('or 大楼编号 = '''+StringGrid1.Cells[1,b]+'''');
                 end;
                 Query1.SQL.Add(')');
                 Query1.SQL.Add(' And 性别=''女''');
                 Query1.Open;
                 Series1.AddPie(Query1.Fields[0].AsInteger,'女性人口数',clBlue);
            end;
         1: begin
                 Label2.caption:='现签约住户数、现空闲房屋数各占总房数的百分比';
                 Series1.Clear;
                 Query1.Close;
                 Query1.SQL.Clear;
                 Query1.SQL.Add('Select Count(业主代号) From 业主信息表');
                 Query1.SQL.Add('Where 业主代号 in ( Select 房间编号 From 房屋信息表 Where 大楼编号=:A');
                 Query1.ParamByName('A').AsString:=StringGrid1.Cells[1,1];
                 For b:=1 to StringGrid1.RowCount-1 do
                 begin
                      Query1.SQL.Add('or 大楼编号 = '''+StringGrid1.Cells[1,b]+'''');
                 end;
                 Query1.SQL.Add(')');
                 Query1.Open;
                 C:=Query1.Fields[0].AsInteger;
                 Series1.AddPie(Query1.Fields[0].AsInteger,'已签约房屋',ClBlue);
                 //-------------------------------------------------------------
                 Query1.Close;
                 Query1.SQL.Clear;
                 Query1.SQL.Add('Select Count(房间编号) From 房屋信息表');
                 Query1.SQL.Add('Where 大楼编号=:A');
                 Query1.ParamByName('A').AsString:=StringGrid1.Cells[1,1];
                 For b:=1 to StringGrid1.RowCount-1 do
                 begin
                      Query1.SQL.Add('or 大楼编号 = '''+StringGrid1.Cells[1,b]+'''');
                 end;
                 Query1.Open;
                 Series1.AddPie(Query1.Fields[0].AsInteger-c,'未签约房屋',ClRed);
            end;
         2: begin
                 Label2.Caption:='已出租房屋数量、空闲可出租房屋数量各占总出租房屋数的百分比';
                 Series1.Clear;
                 Query1.Close;
                 Query1.SQL.clear;
                 Query1.SQL.Add('Select Count(房间代号) From 房租费用表');
                 Query1.SQL.Add('where 房间代号 in ( Select 房间编号 From 房屋信息表 Where 大楼编号=:A');
                 Query1.ParamByName('A').AsString:=StringGrid1.Cells[1,1];
                 For B:=1 to StringGrid1.RowCount-1 do
                 begin
                      Query1.SQL.Add('or 大楼编号 = '''+StringGrid1.Cells[1,b]+'''');
                 end;
                 Query1.SQL.Add(')');
                 Query1.Open;
                 C:=Query1.FieldS[0].AsInteger;
                 Series1.AddPie(C,'已出租数',ClRed);
                 //-------------------------------------------------------------
                 Query1.Close;
                 Query1.SQL.Clear;
                 Query1.SQL.Add('Select Count(房间编号) From 房屋出租信息表');
                 Query1.SQL.Add('where 房间编号 in (Select 房间编号 From 房屋信息表 Where 大楼编号=:A');
                 Query1.ParamByName('A').AsString:=StringGrid1.Cells[1,1];
                 For B:=1 to StringGrid1.RowCount-1 do
                 begin
                      Query1.SQL.Add('or 大楼编号 = '''+StringGrid1.Cells[1,b]+'''');
                 end;
                 Query1.SQL.Add(')');
                 Query1.Open;
                 Series1.AddPie(Query1.Fields[0].AsInteger-c,'空闲房屋数',clBlue);
            end;
         3: begin
                 Label2.Caption:='各个状态占总投诉数的百分比';
                 Query1.Close;
                 Query1.SQL.Clear;
                 Query1.SQL.Add('Select Distinct 状况描述 From 投诉信息表');
                 Query1.Open;
                 SetLength(ZT,Query1.RecordCount);
                 For c:=0 to Query1.RecordCount-1 do
                 begin
                      ZT[c]:=Query1.Fields[0].AsString;
                      Query1.Next;
                 end;
                 a:=Query1.RecordCount;
                 For c:=0 to a-1 do
                 begin
                      Query1.Close;
                      Query1.SQL.Clear;
                      Query1.SQL.Add('Select Count(投诉编号) From 投诉信息表 where 状况描述='''+ZT[C]+'''');
                      Query1.Open;
                      Series1.AddPie(Query1.Fields[0].AsInteger,'状态为['+ZT[C]+']',clteecolor);
                 end;
            end;
end;

end;

procedure TFCZYCX.BitBtn2Click(Sender: TObject);
begin
     Close;
end;

end.

⌨️ 快捷键说明

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