procedure TFrmWeekAnalysisQry.BtnExportToExcelClick(Sender: TObject); var wordApp,WordDoc,WrdSelection:variant; strAdd:string; i,j,iRangeEnd,iStart,iEnd : integer; wdPar,wdRange:OleVariant; oShape, oChart,myCol: OleVariant; SumJHTonCount, SumWCTonCount, PJTS, PJZCSJ, Ys-s-r, DuoJing: Currency; SumJHCarCount, SumWCCarCount: Integer; SumDJ,SumFDJ: Currency;//多经 非多经汇总 begin wordApp := CreateOleObject('Word.Application'); wordApp.Visible := true; wordDoc:=WordApp.Documents.Add(); wordDoc.select; wrdSelection := WordApp.selection; strAdd:='%s年第%d周战略装车点生产经营分析'; strAdd:= Format(strAdd, [FormatDateTime('YYYY', Date), WeekofYear(Date)]); wrdSelection.ParagraphFormat.Alignment:=wdAlignParagraphCenter; wrdSelection.Font.bold := true; wrdSelection.Font.Size := 15; //wrdSelection.Font.UnderLine := 1; 下划线 wrdSelection.TypeText(strAdd); wordApp.selection.TypeParagraph;//换行 wrdSelection.Font.bold := false; wrdSelection.Font.Size := 10; wrdSelection.Font.bold := false; wrdSelection.TypeText(FormatDateTime('MM月DD日', DateBegin.Date)+'-'+FormatDateTime('MM月DD日', DateEnd.Date)); wordApp.selection.TypeParagraph;//换行 wrdSelection.TypeText('西安铁路局货运处'); wordApp.selection.TypeParagraph;//换行 wrdSelection.ParagraphFormat.Alignment:=wdAlignParagraphLeft; wrdSelection.Font.bold := true; wrdSelection.TypeText('1、战略装车点主要运营指标完成情况:'); //从新设置字体 wrdSelection.ParagraphFormat.Alignment:=wdAlignParagraphLeft; wrdSelection.Font.bold := false; wrdSelection.Font.Size := 10; wrdSelection.Font.UnderLine := 0; wdPar:=WordApp.ActiveDocument.Paragraphs.Add; wdRange:=wdPar.Range; wdRange := wordApp.ActiveDocument.Content; wdRange.Collapse(wdCollapseEnd); wordDoc.Tables.Add(wdRange,cdsMain.RecordCount+ 2,11); //合并单元格不成功 {iStart:=WordDoc.Tables.Item(1).Cell(1,1).Range.Start; //myCol:= WordDoc.Tables.Item(1).Cell(1,2); //myCol:= WordDoc.Tables.Item(1).Columns.Item(2); //iEnd:=myCol.Cells.Item(myCol.Cells.Count).Range.End; //iEnd:= WordDoc.Tables.Item(1).Cell(2,1).Range.Start; iEnd:= iStart+ 1; wdRange:=WordDoc.Range; wdRange.Start:=iStart; wdRange.End :=iEnd; wdRange.Cells.Merge; } //插入数据 wordDoc.Tables.Item(1).Cell(1,1).Range.Text:= '序号'; wordDoc.Tables.Item(1).Cell(1,2).Range.Text:= '车站'; wordDoc.Tables.Item(1).Cell(1,3).Range.Text:= '品类'; wordDoc.Tables.Item(1).Cell(1,4).Range.Text:= '周计划车数'; wordDoc.Tables.Item(1).Cell(1,5).Range.Text:= '周计划万吨'; wordDoc.Tables.Item(1).Cell(1,6).Range.Text:= '周完成车数'; wordDoc.Tables.Item(1).Cell(1,7).Range.Text:= '周完成万吨'; wordDoc.Tables.Item(1).Cell(1,8).Range.Text:= '平均停时(小时)'; wordDoc.Tables.Item(1).Cell(1,9).Range.Text:= '平均装车时间(小时)'; wordDoc.Tables.Item(1).Cell(1,10).Range.Text:= '运输收入(万元)'; wordDoc.Tables.Item(1).Cell(1,11).Range.Text:= '多经毛利测算(万元)'; cdsMain.First; SumJHTonCount:= 0; SumWCTonCount:= 0; PJTS:= 0; PJZCSJ:= 0; Ys-s-r:= 0; SumJHCarCount:= 0; SumWCCarCount:= 0; DuoJing:= 0; for i:= 2 to cdsMain.RecordCount+ 1 do begin wordDoc.Tables.Item(1).Cell(i,1).Range.Text:= cdsMain.FieldByName('ROWNUM').AsString; wordDoc.Tables.Item(1).Cell(i,2).Range.Text:= cdsMain.FieldByName('UPNAME').AsString; wordDoc.Tables.Item(1).Cell(i,3).Range.Text:= cdsMain.FieldByName('PLNAME').AsString; wordDoc.Tables.Item(1).Cell(i,4).Range.Text:= cdsMain.FieldByName('PLANCARCOUNT').AsString; wordDoc.Tables.Item(1).Cell(i,5).Range.Text:= cdsMain.FieldByName('PLANTONCOUNT').AsString; wordDoc.Tables.Item(1).Cell(i,6).Range.Text:= cdsMain.FieldByName('CARCOUNT').AsString; wordDoc.Tables.Item(1).Cell(i,7).Range.Text:= cdsMain.FieldByName('TONCOUNT').AsString; wordDoc.Tables.Item(1).Cell(i,8).Range.Text:= cdsMain.FieldByName('AVGSTOP').AsString; wordDoc.Tables.Item(1).Cell(i,9).Range.Text:= cdsMain.FieldByName('AVGLOAD').AsString; wordDoc.Tables.Item(1).Cell(i,10).Range.Text:= cdsMain.FieldByName('TRANSINCOME').AsString; wordDoc.Tables.Item(1).Cell(i,11).Range.Text:= cdsMain.FieldByName('DUOJING').AsString; SumJHTonCount:= SumJHTonCount+ cdsMain.FieldByName('PLANTONCOUNT').AsCurrency; SumWCTonCount:= SumWCTonCount+ cdsMain.FieldByName('TONCOUNT').AsCurrency; PJTS:= PJTS+ cdsMain.FieldByName('AVGSTOP').AsCurrency; PJZCSJ:= PJZCSJ+ cdsMain.FieldByName('AVGLOAD').AsCurrency; Ys-s-r:= Ys-s-r+ cdsMain.FieldByName('TRANSINCOME').AsCurrency; SumJHCarCount:= SumJHCarCount+ cdsMain.FieldByName('PLANCARCOUNT').AsInteger; SumWCCarCount:= SumWCCarCount+ cdsMain.FieldByName('CARCOUNT').AsInteger; DuoJing:= DuoJing+ cdsMain.FieldByName('DUOJING').AsCurrency; cdsMain.Next; end; Inc(i); wordDoc.Tables.Item(1).Cell(i,2).Range.Text:= '合计'; wordDoc.Tables.Item(1).Cell(i,3).Range.Text:= ''; wordDoc.Tables.Item(1).Cell(i,4).Range.Text:= IntToStr(SumJHCarCount); wordDoc.Tables.Item(1).Cell(i,5).Range.Text:= CurrToStr(SumJHTonCount); wordDoc.Tables.Item(1).Cell(i,6).Range.Text:= IntToStr(SumWCCarCount); wordDoc.Tables.Item(1).Cell(i,7).Range.Text:= CurrToStr(SumWCTonCount); if cdsMain.RecordCount> 0 then begin wordDoc.Tables.Item(1).Cell(i,8).Range.Text:= CurrToStr(PJTS/ cdsMain.RecordCount); wordDoc.Tables.Item(1).Cell(i,9).Range.Text:= CurrToStr(PJZCSJ/ cdsMain.RecordCount); end; wordDoc.Tables.Item(1).Cell(i,10).Range.Text:= CurrToStr(Ys-s-r); wordDoc.Tables.Item(1).Cell(i,10).Range.Text:= CurrToStr(DuoJing);
wordApp.Selection.EndKey(wdStory,EmptyParam); wdPar := wordApp.ActiveDocument.Paragraphs.Add; wdRange := wordApp.activeDocument.Content; wdRange.Collapse(wdCollapseEnd); if SumJHTonCount<= 0 then SumJHTonCount:= SumWCTonCount; //if EdtQJHF.Value<= 0 then EdtQJHF.Value:= SumWCTonCount; //if SumJHCarCount<= 0 then SumJHTonCount:= SumWCCarCount; wrdSelection.TypeText('(1)全局28个战略装车点共装车'+ IntToStr(SumWCCarCount)+'辆,完成计划的'+ GetPercent(SumWCCarCount , SumJHCarCount)+';发送货物' +CurrToStr(SumWCTonCount)+'万吨,完成计划的'+GetPercent(SumWCTonCount , SumJHTonCount)+',占全局货发总量的' +GetPercent(SumWCTonCount , EdtQJHF.Value)+ '。'); wordApp.selection.TypeParagraph;//换行 wrdSelection.ParagraphFormat.Alignment:=wdAlignParagraphCenter; wrdSelection.TypeText('图-6 战略装车点装车数完成情况');
wordApp.Selection.EndKey(wdStory,EmptyParam); wdPar := wordApp.ActiveDocument.Paragraphs.Add; wdRange := wordApp.activeDocument.Content; wdRange.Collapse(wdCollapseEnd);
oShape:= wordApp.Selection.InlineShapes.AddOleObject(ClassType:='MSGraph.Chart.8',FileName:='',LinkToFile :=False,DisplayAsIcon :=False); oChart:= oShape.OleFormat.Object; oChart.Application.DataSheet.Cells.Clear; oChart.ChartArea.Font.Size:= 8; oChart.Application.Update; oChart.ChartType:= 51;// 1是面积图 4是线形图 5是饼图 51是柱状图 //添加行标题 oChart.Application.DataSheet.Cells[2,1].Value:= '计划'; oChart.Application.DataSheet.Cells[3,1].Value:= '实际完成'; //添加列标题 oChart.Application.DataSheet.Cells[1,2].Value:= '上周'; oChart.Application.DataSheet.Cells[1,3].Value:= '本周';
oChart.Application.DataSheet.Cells[2, 2].Value:= LastPlanCarCount; oChart.Application.DataSheet.Cells[2, 3].Value:= SumJHCarCount; oChart.Application.DataSheet.Cells[3, 2].Value:= LastImplCarCount; oChart.Application.DataSheet.Cells[3, 3].Value:= SumWCCarCount; oChart.Application.Update; oChart.Application.Quit;
wordApp.Selection.EndKey(wdStory,EmptyParam); wdPar := wordApp.ActiveDocument.Paragraphs.Add; wdRange := wordApp.activeDocument.Content; wdRange.Collapse(wdCollapseEnd); wrdSelection.TypeText('图-7 战略装车点货物发送量完成情况'); wordApp.Selection.EndKey(wdStory,EmptyParam); wdPar := wordApp.ActiveDocument.Paragraphs.Add; wdRange := wordApp.activeDocument.Content; wdRange.Collapse(wdCollapseEnd);
oShape:= wordApp.Selection.InlineShapes.AddOleObject(ClassType:='MSGraph.Chart.8',FileName:='',LinkToFile :=False,DisplayAsIcon :=False); oChart:= oShape.OleFormat.Object; oChart.Application.DataSheet.Cells.Clear; oChart.ChartArea.Font.Size:= 8; oChart.Application.Update; oChart.ChartType:= 51;// 1是面积图 4是线形图 5是饼图 51是柱状图 //添加行标题 oChart.Application.DataSheet.Cells[2,1].Value:= '计划'; oChart.Application.DataSheet.Cells[3,1].Value:= '实际完成'; //添加列标题 oChart.Application.DataSheet.Cells[1,2].Value:= '上周'; oChart.Application.DataSheet.Cells[1,3].Value:= '本周';
oChart.Application.DataSheet.Cells[2, 2].Value:= LastPlanTonCount; oChart.Application.DataSheet.Cells[2, 3].Value:= SumJHTonCount; oChart.Application.DataSheet.Cells[3, 2].Value:= LastImplTonCount; oChart.Application.DataSheet.Cells[3, 3].Value:= SumWCTonCount; oChart.Application.Update; oChart.Application.Quit;
wordApp.Selection.EndKey(wdStory,EmptyParam); wdPar := wordApp.ActiveDocument.Paragraphs.Add; wdRange := wordApp.activeDocument.Content; wdRange.Collapse(wdCollapseEnd); wrdSelection.TypeText('图-8 战略装车量占货物发送量情况'); wordApp.Selection.EndKey(wdStory,EmptyParam); wdPar := wordApp.ActiveDocument.Paragraphs.Add; wdRange := wordApp.activeDocument.Content; wdRange.Collapse(wdCollapseEnd);
oShape:= wordApp.Selection.InlineShapes.AddOleObject(ClassType:='MSGraph.Chart.8',FileName:='',LinkToFile :=False,DisplayAsIcon :=False); oChart:= oShape.OleFormat.Object; oChart.Application.DataSheet.Cells.Clear; oChart.ChartArea.Font.Size:= 8; oChart.Application.Update; oChart.ChartType:= 5;// 1是面积图 4是线形图 5是饼图 51是柱状图 //添加行标题 oChart.Application.DataSheet.Cells[2,1].Value:= '发送万吨'; //添加列标题 oChart.Application.DataSheet.Cells[1,2].Value:= '战略装车点'; oChart.Application.DataSheet.Cells[1,3].Value:= '其他装车'; oChart.Application.DataSheet.Cells[2, 2].Value:= SumWCTonCount; oChart.Application.DataSheet.Cells[2, 3].Value:= EdtQJHF.Value; oChart.Application.Update; oChart.Application.Quit;
wordApp.Selection.EndKey(wdStory,EmptyParam); wdPar := wordApp.ActiveDocument.Paragraphs.Add; wdRange := wordApp.activeDocument.Content; wdRange.Collapse(wdCollapseEnd); wrdSelection.TypeText('图-9 战略装车量分品类完成情况'); wordApp.Selection.EndKey(wdStory,EmptyParam); wdPar := wordApp.ActiveDocument.Paragraphs.Add; wdRange := wordApp.activeDocument.Content; wdRange.Collapse(wdCollapseEnd);
oShape:= wordApp.Selection.InlineShapes.AddOleObject(ClassType:='MSGraph.Chart.8',FileName:='',LinkToFile :=False,DisplayAsIcon :=False); oChart:= oShape.OleFormat.Object; oChart.Application.DataSheet.Cells.Clear; oChart.ChartArea.Font.Size:= 8; oChart.Application.Update; oChart.ChartType:= 5;// 1是面积图 4是线形图 5是饼图 51是柱状图 //添加行标题 oChart.Application.DataSheet.Cells[2,1].Value:= '发送万吨'; //添加列标题 cdsGroupByPL.First; for i:= 2 to cdsGroupByPL.RecordCount+ 1 do begin oChart.Application.DataSheet.Cells[1,i].Value:= Trim(cdsGroupByPL.FieldByName('PLNAME').AsString); oChart.Application.DataSheet.Cells[2, i].Value:= cdsGroupByPL.FieldByName('TONCOUNT').AsCurrency; cdsGroupByPL.Next; end; oChart.Application.Update; oChart.Application.Quit;
wordApp.Selection.EndKey(wdStory,EmptyParam); wdPar := wordApp.ActiveDocument.Paragraphs.Add; wdRange := wordApp.activeDocument.Content; wdRange.Collapse(wdCollapseEnd); wrdSelection.TypeText(' (2)货车停留时间平均为'+ GetDiv(PJTS,cdsMain.RecordCount)+'小时,较考核目标超'+GetOverloadTime(PJTS,cdsMain.RecordCount,5)+'小时,' +'较全局平均停时减少2.8小时;平均装车作业时间'+ GetDiv(PJZCSJ, cdsMain.RecordCount)+'小时,较考核目标超'+GetOverloadTime(PJZCSJ,cdsMain.RecordCount,2)+'小时。'); wordApp.selection.TypeParagraph;//换行 wrdSelection.TypeText(' (3)路局多经参与经营的12个战略装车点,本周总计完成'+ IntToStr(SumWCCarCount) +'车,比上周'+ IntToStr(Trunc(LastImplCarCount))+'车多装'+ IntToStr(Trunc(SumWCCarCount- LastImplCarCount))+'车,增加了' +GetPercent(SumJHCarCount- LastImplCarCount, LastImplCarCount)+',日均装车'+GetDiv(SumWCTonCount, Trunc(DateEnd.Date-DateBegin.Date+ 1)) +'车。占全局战略装车点发送总量的'+ GetPercent(SumWCCarCount, EdtQJHF.Value)+'。'); wordApp.selection.TypeParagraph;//换行 wrdSelection.TypeText(' 3、毛利分析:本周实现毛利'+ CurrToStr(DuoJing)+'万元,和上周基本持平。'); SumDJ:= 0; SumFDJ:= 0; cdsMain.First; with cdsMain do begin DisableControls; while not Eof do begin if FieldByName('DJCY').AsInteger= 0 then SumDJ:= SumDJ+ FieldByName('TONCOUNT').AsCurrency else SumFDJ:= SumFDJ+ FieldByName('TONCOUNT').AsCurrency; cdsMain.Next; end; EnableControls; end; wordApp.selection.TypeParagraph;//换行 wrdSelection.ParagraphFormat.Alignment:=wdAlignParagraphCenter; wrdSelection.TypeText('图-10 多经参与战略装车情况'); wordApp.Selection.EndKey(wdStory,EmptyParam); wdPar := wordApp.ActiveDocument.Paragraphs.Add; wdRange := wordApp.activeDocument.Content; wdRange.Collapse(wdCollapseEnd);
oShape:= wordApp.Selection.InlineShapes.AddOleObject(ClassType:='MSGraph.Chart.8',FileName:='',LinkToFile :=False,DisplayAsIcon :=False); oChart:= oShape.OleFormat.Object; oChart.Application.DataSheet.Cells.Clear; oChart.ChartArea.Font.Size:= 8; oChart.Application.Update; oChart.ChartType:= 5;// 1是面积图 4是线形图 5是饼图 51是柱状图 //添加行标题 oChart.Application.DataSheet.Cells[2,1].Value:= '发送吨'; //添加列标题 oChart.Application.DataSheet.Cells[1,2].Value:= '多经参与经营发送吨'; oChart.Application.DataSheet.Cells[1,3].Value:= '其他战略装车点发送吨'; oChart.Application.DataSheet.Cells[2, 2].Value:= SumDJ; oChart.Application.DataSheet.Cells[2, 3].Value:= SumFDJ; oChart.Application.Update; oChart.Application.Quit;
wordApp.selection.TypeParagraph;//换行 wrdSelection.ParagraphFormat.Alignment:=wdAlignParagraphCenter; wrdSelection.TypeText('图-11 多经参与战略装车点经营收入(万元)'); wordApp.Selection.EndKey(wdStory,EmptyParam); wdPar := wordApp.ActiveDocument.Paragraphs.Add; wdRange := wordApp.activeDocument.Content; wdRange.Collapse(wdCollapseEnd);
oShape:= wordApp.Selection.InlineShapes.AddOleObject(ClassType:='MSGraph.Chart.8',FileName:='',LinkToFile :=False,DisplayAsIcon :=False); oChart:= oShape.OleFormat.Object; oChart.Application.DataSheet.Cells.Clear; oChart.ChartArea.Font.Size:= 8; oChart.Application.Update; oChart.ChartType:= 51;// 1是面积图 4是线形图 5是饼图 51是柱状图 //添加行标题 oChart.Application.DataSheet.Cells[2,1].Value:= '收入(万元)'; //添加列标题 oChart.Application.DataSheet.Cells[1,2].Value:= '本周'; oChart.Application.DataSheet.Cells[1,3].Value:= '上周'; oChart.Application.DataSheet.Cells[2, 2].Value:= 319.14; oChart.Application.DataSheet.Cells[2, 3].Value:= 314.96; oChart.Application.Update; oChart.Application.Quit;
wordApp.Selection.EndKey(wdStory,EmptyParam); wdPar := wordApp.ActiveDocument.Paragraphs.Add; wdRange := wordApp.activeDocument.Content; wdRange.Collapse(wdCollapseEnd); wrdSelection.TypeText(' (4)装车分析:与上周一样,全局仅有黄陵、安口南两个战略装车点到达日均装运一列的要求,' +'占全局战略装车点总数的7%。周装车少于100车的有梅家坪、白水江、燕子砭、咸阳西4个点。'); wordApp.selection.TypeParagraph;//换行 wrdSelection.TypeText('2.存在问题及分析:'); wordApp.selection.TypeParagraph;//换行 wrdSelection.TypeText(' (1)全局共有14个装车点为完成周装车计划。完成比例在50%以下的有桑树坪、合阳、白水江、燕子砭4个战略装车点,占总数的14%'); wordApp.selection.TypeParagraph;//换行 wrdSelection.TypeText(' 主要原因有四个方面。一是空出来源紧张,不能满足日均装车需求。装运大宗货源煤炭、石油需要的敞车、罐车缺口较大。' +'如牛家梁在请求车5418车的情况下,仅承认了916车;柞水、官渡、三桥也存在此类原因。本周共产生坏车及过期车2104量,' +'修复使用1745车。三是停限装原因,战略装车点请求车兑现率仅为41%。四是货源依旧不足。铁矿石、焦炭市场不好影响装车。'); wordApp.selection.TypeParagraph;//换行 wrdSelection.TypeText(' (2)一是装车速度较慢,影响装车时间,造成平均停时较大,如合阳点专用线装车为漏斗漏煤,装车速度较快,平煤采取刮板刮平后,' +'人工平顶,速度较慢,引起停时较大。二是坏车修复时间长,也是引起停时较大的一个重要原因。'); wordApp.selection.TypeParagraph;//换行 wrdSelection.TypeText('3.战略装车点下周重点工作:'); wordApp.selection.TypeParagraph;//换行 wrdSelection.TypeText(' (1)加大货源组织工作。广泛宣传战略装车点优势,公布资源受理电话、去向、运输品类和开行时间,在货运计划、配空车' +'等方面予以优惠政策,重点做好新建战略装车点瑶曲、安口南的货源组织工作,开发战略装车点新货源,保证装车上量。'); wordApp.selection.TypeParagraph;//换行 wrdSelection.TypeText(' (2)提高承认车兑现率。对组织不力造成承认车落空的进行认真分析,纳入考核并追究管理责任。调度、运输、货运部门要加强协作,' +'落实战略装车点计划、承认、配空、挂运四优先制度。'); wordApp.selection.TypeParagraph;//换行 wrdSelection.TypeText(' (3)大力压缩等待时间。与专用线加强协调,增强战略装车点装车、平顶、加固车门人员力量,压缩撞车后的整理等待时间。'); end;
|
请发表评论