📄 apputil.~pas
字号:
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 + -