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

📄 apputil.~pas

📁 delphi开发的抄表数据管理系统
💻 ~PAS
📖 第 1 页 / 共 3 页
字号:
end;

//procedure TDataAnalyseForm.SpeedButton6Click(Sender: TObject);
procedure viewReport();
var
    i,k,j:integer;
    temp,QuNoStr:string;
    eclApp,WorkBook,sheet:Variant;{声明为OLE Automation对象}
begin
    try
    eclApp:=CreateOleObject('Excel.Application');
    except
      ShowMessage('您的机器里未安装Microsoft Excel.');
      Exit;
    end;
        screen.Cursors[crMyCursor]:=LoadCursorFromFile('bgwork.ani');
        screen.Cursor :=crMyCursor;
        WorkBook:=eclApp.WorkBooks.Add(extractfilepath(application.ExeName)+'数据分析结果汇总.xls');
        eclApp.displayAlerts:=false;
        eclApp.ScreenUpdating:=false;
        eclApp.ScreenUpdating:=true;
        WorkBook.Sheets[1].cells[1,1].value:='数据分析结果汇总';
        WorkBook.Sheets[1].cells[2,1].value:=formatdatetime('yyyy-mm-dd hh:nn:ss',now);
        DataModule1.adoquery5.Connection:=DataModule1.ADOConnection1;
        DataModule1.adoquery5.SQL.Clear;
        DataModule1.adoquery5.Close;
        datamodule1.ADOQuery5.Filtered:=false;
        datamodule1.ADOQuery5.SQL.Add('select distinct 区号 from temp order by 区号');
        DataModule1.adoquery5.Prepared;
        DataModule1.adoquery5.open;
        for i:=1 to DataModule1.adoquery5.RecordCount do
        begin
            QuNoStr:=trim(DataModule1.adoquery5.fieldbyname('区号').AsString);
            //******区号
            WorkBook.Sheets[1].cells[i+6,1].value:=QuNoStr;
            //******正常(电池正常)
            DataModule1.adoquery6.Connection:=DataModule1.ADOConnection1;
            DataModule1.adoquery6.SQL.Clear;
            DataModule1.adoquery6.Close;
            datamodule1.ADOQuery6.Filtered:=false;
            datamodule1.ADOQuery6.SQL.Add('SELECT COUNT(*) AS num FROM temp WHERE (区号 ='''+QuNoStr+''') AND (问题标记 = ''000'') AND (故障标记 = ''000'') AND (电池电压 = ''正常'')');
            DataModule1.adoquery6.Prepared;
            DataModule1.adoquery6.open;
            WorkBook.Sheets[1].cells[i+6,2].value:=inttostr(DataModule1.adoquery6.fieldbyname('num').AsInteger);
            //******正常(电池低压"102")
            DataModule1.adoquery6.Connection:=DataModule1.ADOConnection1;
            DataModule1.adoquery6.SQL.Clear;
            DataModule1.adoquery6.Close;
            datamodule1.ADOQuery6.Filtered:=false;
            datamodule1.ADOQuery6.SQL.Add('SELECT COUNT(*) AS num FROM temp WHERE (区号 ='''+QuNoStr+''') AND (问题标记 = ''000'') AND (故障标记 = ''102'') AND (电池电压 = ''低压'')');
            DataModule1.adoquery6.Prepared;
            DataModule1.adoquery6.open;
            WorkBook.Sheets[1].cells[i+6,3].value:=inttostr(DataModule1.adoquery6.fieldbyname('num').AsInteger);
            //********************
            WorkBook.Sheets[1].cells[i+6,4].value:=inttostr(strtoint(WorkBook.Sheets[1].cells[i+6,2])+strtoint(WorkBook.Sheets[1].cells[i+6,3]));
            //********************
            //******设备故障(103)
            DataModule1.adoquery6.Connection:=DataModule1.ADOConnection1;
            DataModule1.adoquery6.SQL.Clear;
            DataModule1.adoquery6.Close;
            datamodule1.ADOQuery6.Filtered:=false;
            datamodule1.ADOQuery6.SQL.Add('SELECT COUNT(*) AS num FROM temp WHERE (区号 ='''+QuNoStr+''') AND (问题标记=''000'' and 故障标记 = ''103'')');
            DataModule1.adoquery6.Prepared;
            DataModule1.adoquery6.open;
            WorkBook.Sheets[1].cells[i+6,5].value:=inttostr(DataModule1.adoquery6.fieldbyname('num').AsInteger);

            DataModule1.adoquery6.Connection:=DataModule1.ADOConnection1;
            DataModule1.adoquery6.SQL.Clear;
            DataModule1.adoquery6.Close;
            datamodule1.ADOQuery6.Filtered:=false;
            datamodule1.ADOQuery6.SQL.Add('SELECT count(*) as num FROM temp where (区号='''+QuNoStr+''') and (故障标记=''111'')');
            DataModule1.adoquery6.Prepared;
            DataModule1.adoquery6.open;
            WorkBook.Sheets[1].cells[i+6,6].value:=inttostr(DataModule1.adoquery6.fieldbyname('num').AsInteger);
            //********************
            WorkBook.Sheets[1].cells[i+6,7].value:=inttostr(strtoint(WorkBook.Sheets[1].cells[i+6,5])+strtoint(WorkBook.Sheets[1].cells[i+6,6]));
            //********************
            //*********停转时间(101)***********
            DataModule1.adoquery6.Connection:=DataModule1.ADOConnection1;
            DataModule1.adoquery6.SQL.Clear;
            DataModule1.adoquery6.Close;
            datamodule1.ADOQuery6.Filtered:=false;
            datamodule1.ADOQuery6.SQL.Add('SELECT count(*) as num FROM temp where (区号='''+QuNoStr+''') and (问题标记=''000'' and 故障标记=''000'') and 停转时间>=''48''');
            DataModule1.adoquery6.Prepared;
            DataModule1.adoquery6.open;
            WorkBook.Sheets[1].cells[i+6,8].value:=inttostr(DataModule1.adoquery6.fieldbyname('num').AsInteger);
            //******机械表(114)
            DataModule1.adoquery6.Connection:=DataModule1.ADOConnection1;
            DataModule1.adoquery6.SQL.Clear;
            DataModule1.adoquery6.Close;
            datamodule1.ADOQuery6.Filtered:=false;
            datamodule1.ADOQuery6.SQL.Add('SELECT COUNT(*) AS num FROM temp WHERE (区号 ='''+QuNoStr+''') AND (问题标记 = ''114'')');
            DataModule1.adoquery6.Prepared;
            DataModule1.adoquery6.open;
            WorkBook.Sheets[1].cells[i+6,9].value:=inttostr(DataModule1.adoquery6.fieldbyname('num').AsInteger);
            //******丢失(106)
            DataModule1.adoquery6.Connection:=DataModule1.ADOConnection1;
            DataModule1.adoquery6.SQL.Clear;
            DataModule1.adoquery6.Close;
            datamodule1.ADOQuery6.Filtered:=false;
            datamodule1.ADOQuery6.SQL.Add('SELECT COUNT(*) AS num FROM temp WHERE (区号 ='''+QuNoStr+''') AND (问题标记 = ''106'')');
            DataModule1.adoquery6.Prepared;
            DataModule1.adoquery6.open;
            WorkBook.Sheets[1].cells[i+6,10].value:=inttostr(DataModule1.adoquery6.fieldbyname('num').AsInteger);
            //********************
            WorkBook.Sheets[1].cells[i+6,11].value:=inttostr(strtoint(WorkBook.Sheets[1].cells[i+6,8])+strtoint(WorkBook.Sheets[1].cells[i+6,9])+strtoint(WorkBook.Sheets[1].cells[i+6,10]));
            WorkBook.Sheets[1].cells[i+6,12].value:=inttostr(strtoint(WorkBook.Sheets[1].cells[i+6,7])+strtoint(WorkBook.Sheets[1].cells[i+6,11]));
            //********************
            //******井塌(108)
            DataModule1.adoquery6.Connection:=DataModule1.ADOConnection1;
            DataModule1.adoquery6.SQL.Clear;
            DataModule1.adoquery6.Close;
            datamodule1.ADOQuery6.Filtered:=false;
            datamodule1.ADOQuery6.SQL.Add('SELECT COUNT(*) AS num FROM temp WHERE (区号 ='''+QuNoStr+''') AND (问题标记 = ''108'')');
            DataModule1.adoquery6.Prepared;
            DataModule1.adoquery6.open;
            WorkBook.Sheets[1].cells[i+6,13].value:=inttostr(DataModule1.adoquery6.fieldbyname('num').AsInteger);
            //******压井(110)
            DataModule1.adoquery6.Connection:=DataModule1.ADOConnection1;
            DataModule1.adoquery6.SQL.Clear;
            DataModule1.adoquery6.Close;
            datamodule1.ADOQuery6.Filtered:=false;
            datamodule1.ADOQuery6.SQL.Add('SELECT COUNT(*) AS num FROM temp WHERE (区号 ='''+QuNoStr+''') AND (问题标记 = ''110'')');
            DataModule1.adoquery6.Prepared;
            DataModule1.adoquery6.open;
            WorkBook.Sheets[1].cells[i+6,14].value:=inttostr(DataModule1.adoquery6.fieldbyname('num').AsInteger);
            //******锁门(109)
            DataModule1.adoquery6.Connection:=DataModule1.ADOConnection1;
            DataModule1.adoquery6.SQL.Clear;
            DataModule1.adoquery6.Close;
            datamodule1.ADOQuery6.Filtered:=false;
            datamodule1.ADOQuery6.SQL.Add('SELECT COUNT(*) AS num FROM temp WHERE (区号 ='''+QuNoStr+''') AND (问题标记 = ''109'')');
            DataModule1.adoquery6.Prepared;
            DataModule1.adoquery6.open;
            WorkBook.Sheets[1].cells[i+6,15].value:=inttostr(DataModule1.adoquery6.fieldbyname('num').AsInteger);
            //******表污(107)
            DataModule1.adoquery6.Connection:=DataModule1.ADOConnection1;
            DataModule1.adoquery6.SQL.Clear;
            DataModule1.adoquery6.Close;
            datamodule1.ADOQuery6.Filtered:=false;
            datamodule1.ADOQuery6.SQL.Add('SELECT COUNT(*) AS num FROM temp WHERE (区号 ='''+QuNoStr+''') AND (问题标记 = ''107'')');
            DataModule1.adoquery6.Prepared;
            DataModule1.adoquery6.open;
            WorkBook.Sheets[1].cells[i+6,16].value:=inttostr(DataModule1.adoquery6.fieldbyname('num').AsInteger);
            //********************
            WorkBook.Sheets[1].cells[i+6,17].value:=inttostr(strtoint(WorkBook.Sheets[1].cells[i+6,13])+strtoint(WorkBook.Sheets[1].cells[i+6,14])+strtoint(WorkBook.Sheets[1].cells[i+6,15])+strtoint(WorkBook.Sheets[1].cells[i+6,16]));
            WorkBook.Sheets[1].cells[i+6,18].value:=inttostr(strtoint(WorkBook.Sheets[1].cells[i+6,4])+strtoint(WorkBook.Sheets[1].cells[i+6,12])+strtoint(WorkBook.Sheets[1].cells[i+6,17]));
            //********************
            DataModule1.adoquery5.Next;
        end;
        k:=DataModule1.adoquery5.RecordCount;
        for j:=2 to 18 do
        begin
            WorkBook.Sheets[1].cells[k+7,j]:=0;
        end;
        for i:=k-1 downto 0 do
        begin
            WorkBook.Sheets[1].cells[k+7,1]:='合计';
            WorkBook.Sheets[1].cells[k+7,2]:=inttostr(strtoint(WorkBook.Sheets[1].cells[k+7,2])+strtoint(WorkBook.Sheets[1].cells[i+7,2]));
            WorkBook.Sheets[1].cells[k+7,3]:=inttostr(strtoint(WorkBook.Sheets[1].cells[k+7,3])+strtoint(WorkBook.Sheets[1].cells[i+7,3]));
            WorkBook.Sheets[1].cells[k+7,4]:=inttostr(strtoint(WorkBook.Sheets[1].cells[k+7,4])+strtoint(WorkBook.Sheets[1].cells[i+7,4]));
            WorkBook.Sheets[1].cells[k+7,5]:=inttostr(strtoint(WorkBook.Sheets[1].cells[k+7,5])+strtoint(WorkBook.Sheets[1].cells[i+7,5]));
            WorkBook.Sheets[1].cells[k+7,6]:=inttostr(strtoint(WorkBook.Sheets[1].cells[k+7,6])+strtoint(WorkBook.Sheets[1].cells[i+7,6]));
            WorkBook.Sheets[1].cells[k+7,7]:=inttostr(strtoint(WorkBook.Sheets[1].cells[k+7,7])+strtoint(WorkBook.Sheets[1].cells[i+7,7]));
            WorkBook.Sheets[1].cells[k+7,9]:=inttostr(strtoint(WorkBook.Sheets[1].cells[k+7,9])+strtoint(WorkBook.Sheets[1].cells[i+7,9]));
            WorkBook.Sheets[1].cells[k+7,10]:=inttostr(strtoint(WorkBook.Sheets[1].cells[k+7,10])+strtoint(WorkBook.Sheets[1].cells[i+7,10]));
            WorkBook.Sheets[1].cells[k+7,11]:=inttostr(strtoint(WorkBook.Sheets[1].cells[k+7,11])+strtoint(WorkBook.Sheets[1].cells[i+7,11]));
            WorkBook.Sheets[1].cells[k+7,12]:=inttostr(strtoint(WorkBook.Sheets[1].cells[k+7,12])+strtoint(WorkBook.Sheets[1].cells[i+7,12]));
            WorkBook.Sheets[1].cells[k+7,13]:=inttostr(strtoint(WorkBook.Sheets[1].cells[k+7,13])+strtoint(WorkBook.Sheets[1].cells[i+7,13]));
            WorkBook.Sheets[1].cells[k+7,14]:=inttostr(strtoint(WorkBook.Sheets[1].cells[k+7,14])+strtoint(WorkBook.Sheets[1].cells[i+7,14]));
            WorkBook.Sheets[1].cells[k+7,15]:=inttostr(strtoint(WorkBook.Sheets[1].cells[k+7,15])+strtoint(WorkBook.Sheets[1].cells[i+7,15]));
            WorkBook.Sheets[1].cells[k+7,16]:=inttostr(strtoint(WorkBook.Sheets[1].cells[k+7,16])+strtoint(WorkBook.Sheets[1].cells[i+7,16]));
            WorkBook.Sheets[1].cells[k+7,17]:=inttostr(strtoint(WorkBook.Sheets[1].cells[k+7,17])+strtoint(WorkBook.Sheets[1].cells[i+7,17]));
            WorkBook.Sheets[1].cells[k+7,18]:=inttostr(strtoint(WorkBook.Sheets[1].cells[k+7,18])+strtoint(WorkBook.Sheets[1].cells[i+7,18]));
        end;
        Screen.Cursors[crMyCursor]:=crdefault;
        Screen.Cursor:=crdefault;
        eclApp.Visible := True;
        eclApp:=Unassigned;
end;

end.

⌨️ 快捷键说明

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